「Uvesafb」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎解像度の定義: 記事を更新)
42行目: 42行目:
 
# cp /usr/lib/modprobe.d/uvesafb.conf /etc/modprobe.d/uvesafb.conf
 
# cp /usr/lib/modprobe.d/uvesafb.conf /etc/modprobe.d/uvesafb.conf
   
そして {{ic|/etc/mkinitcpio.conf}} の FILES セクションのエントリ設定ファイル追加ます:
+
そして {{ic|/etc/mkinitcpio.conf}} の {{ic|HOOKS}} 配列 {{ic|modconf}} が含まれていること確認てください。
 
FILES="/etc/modprobe.d/uvesafb.conf"
 
   
 
変更を有効にするには、initramfs を[[mkinitcpio#イメージ作成とアクティベーション|再生成]] し、システムを再起動します。
 
変更を有効にするには、initramfs を[[mkinitcpio#イメージ作成とアクティベーション|再生成]] し、システムを再起動します。

2024年5月10日 (金) 18:20時点における版

関連記事

他のフレームバッファドライバーと違って、uvesafb は v86d と呼ばれるユーザースペースの仮想化デーモンを必要とします。x86 の上で x86 のコードをエミュレートするのは馬鹿げているようにも見えますが、他のアーキテクチャでフレームバッファコードを使用したいという場合に大事になります (特に x86 以外のアーキテクチャ)。カーネル 2.6.24 では新しいフレームバッファドライバーが追加されました。標準の vesafb よりも多くの機能が存在します:

  1. 遅延時間後の正しいブランクとハードウェアの復帰
  2. システム BIOS のようにカスタム解像度をサポート

vesafb と同じ数だけのハードウェアをサポートします。

インストール

AUR から uvesafb-dkmsAUR パッケージを インストール してください。

設定

フレームバッファ関連のカーネルブートパラメータは全てブートローダーの設定から削除して vesafb フレームバッファがロードされないようにしてください。

$ grep vga /proc/cmdline
$ grep -ir vga /etc/modprobe.d/

上記のコマンドで何も返ってこないようにする必要があります。vga= オプションを記述している場合は、削除してください。

mkinitcpio フック

v86d フックを /etc/mkinitcpio.conf の HOOKS に追加します。これにより、ブート時に uvesafb が引き継ぐことができます。

HOOKS="base udev v86d ..."

解像度の定義

uvesafb の設定は /usr/lib/modprobe.d/uvesafb.conf で定義します:

mode_option のドキュメントは [1] にあります。

パッケージが更新されたときにカスタマイズした設定が上書きされないように、ファイルを /etc/modprobe.d/uvesafb.conf にコピーしてください:

# cp /usr/lib/modprobe.d/uvesafb.conf /etc/modprobe.d/uvesafb.conf

そして /etc/mkinitcpio.confHOOKS 配列に modconf が含まれていることを確認してください。

変更を有効にするには、initramfs を再生成 し、システムを再起動します。

解像度の最適化

次のコマンドを使うことで使用できる解像度を全てリストアップできます:

$ cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes

返ってきたエントリを使って /usr/lib/modprobe.d/uvesafb.conf を修正しましょう。

現在の解像度のチェック

以下のコマンドを使うことで現在のフレームバッファの解像度を表示できます。設定が反映されているかどうか確認するのに使ってください:

$ cat /sys/devices/virtual/graphics/fbcon/subsystem/fb0/virtual_size
$ cat /sys/class/graphics/fb0/virtual_size

カーネルモジュールパラメータ

独自のカーネルをコンパイルする場合は、uvesafb をカーネルにコンパイルし、後で v86d を実行することもできます。この場合、オプションは video=uvesafb:options の形式で カーネルパラメータ として渡すことができます。

トラブルシューティング

Uvesafb cannot reserve memory

vga=xxx カーネルパラメータを削除するのを忘れてないか確認してください -- この設定が残っていると UVESA フレームバッファが標準の VESA フレームバッファで上書きされてしまいます。

もしくは video=vesa:off vga=normalカーネルコマンドライン に追加してみてください。

参照