FreeBSD で Xorg を設定

 

FreeBSD の X Window System は Xorg (x11/xorg) である。かつて使用されていた XFree86 と、その設定ファイル /etc/X11/XF86Config は、現在の FreeBSD では使用しない。

現在の Xorg は、グラフィックスハードウェア、ディスプレイ、入力デバイスを自動構成する。そのため、設定ファイルを作成せずに動作することが多い。自動構成で不都合があるときにだけ、設定ファイルを作成する。

グラフィックスドライバのインストール

Xorg を動作させるには、グラフィックスプロセッサ用のカーネルモジュールが必要である。搭載されているグラフィックスプロセッサを確認するために、次のコマンドを実行する。

pciconf -lv | grep -B3 display

確認した種類に応じて、root 権限で次のようにインストールと設定を行う。

設定を反映するために、システムを再起動する。

Xorg のインストール

root 権限で次のコマンドを実行する。

pkg install xorg

X サーバを利用するユーザは、video グループに所属している必要がある。root 権限で次のコマンドを実行する。username は、実際のユーザ名に置き換える。

pw groupmod video -m username

動作確認

video グループに追加したユーザでログインし、次のコマンドを実行する。

startx

灰色の背景が表示され、マウスカーソルが動き、ウインドウマネージャ twm が起動すれば、Xorg は正常に動作している。終了するときは、twm の背景でマウスの左ボタンを押して表示されるメニューから Exit を選ぶ。

設定ファイル

FreeBSD での Xorg の設定ファイルの配置場所は /usr/local/etc/X11/xorg.conf.d/ である。単一の xorg.conf ではなく、このディレクトリに設定項目ごとのファイルを置く。ファイルは名前順に読み込まれる。

グラフィックスドライバを指定する

複数のドライバが競合して自動選択が期待どおりにならないときは、使用するドライバを指定する。Intel のグラフィックスの場合は、/usr/local/etc/X11/xorg.conf.d/20-driver.conf を次の内容で作成する。

Section "Device"
	Identifier "Card0"
	Driver     "intel"
EndSection

Driver の値は、AMD のグラフィックスでは "amdgpu" または "radeon"、NVIDIA のグラフィックスでは "nvidia"、それ以外では "scfb" または "vesa" とする。

画面の解像度を指定する

Xorg は、ディスプレイから EDID により対応解像度とリフレッシュレートを取得し、適切な組み合わせを選択する。そのため、水平同期周波数や垂直同期周波数を手動で記述する必要はない。

別の解像度を使用するときは、X の起動後に xrandr を使用する。まず、次のコマンドを実行して、出力名と利用可能なモードの一覧を表示する。

xrandr

表示された出力名とモードを指定して、次のコマンドを実行する。

xrandr --output LVDS-1 --mode 1280x720 --rate 60

起動時から特定の解像度を使用するときは、/usr/local/etc/X11/xorg.conf.d/10-monitor.conf を次の内容で作成する。

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	SubSection "Display"
	Modes      "1024x768"
	EndSubSection
EndSection

キーボードとマウスの設定

入力デバイスは libinput により自動的に扱われる。マウスのボタン数やプロトコルを設定ファイルに記述する必要はない。

キーボード配列を指定するときは、/usr/local/etc/X11/xorg.conf.d/00-keyboard.conf を次の内容で作成する。日本語 106/109 キーボードの場合の例である。

Section "InputClass"
	Identifier "Keyboard0"
	MatchIsKeyboard "on"
	Option "XkbLayout" "jp"
	Option "XkbModel" "jp106"
EndSection

自動構成が失敗するときの設定ファイル生成

自動構成で X が起動しないときに限り、Xorg に設定ファイルを生成させる。X が動作していない状態で、root 権限で次のコマンドを実行する。/root/xorg.conf.new が作成される。

cd /root
Xorg -configure

生成された設定ファイルをテストするために、次のコマンドを実行する。

Xorg -config /root/xorg.conf.new

灰色の背景が表示され、マウスカーソルが動けば、この設定ファイルで X サーバは動作している。ウインドウは開かないが、これは正常である。終了するときは、Ctrl + Alt + F2 で別の仮想コンソールに切り替え、root でログインして次のコマンドを実行する。

killall Xorg

テストで問題がなければ、設定ファイルを所定の位置にコピーする。root 権限で次のコマンドを実行する。

mkdir -p /usr/local/etc/X11
cp /root/xorg.conf.new /usr/local/etc/X11/xorg.conf

画面が真っ黒になるときの対処

X の起動直後に画面が真っ黒になるときは、X の初期化処理に xrandr による再検出を加えることで解決することがある。~/.xinitrc に次の行を追加する。

xrandr --auto

起動に失敗する原因は、ログファイル /var/log/Xorg.0.log に記録される。次のコマンドを実行して、EE で始まる行を確認する。

grep EE /var/log/Xorg.0.log