FreeBSD で Xorg を設定
 FreeBSD の X Window System は Xorg (x11/xorg) である。かつて使用されていた XFree86 と、その設定ファイル /etc/X11/XF86Config は、現在の FreeBSD では使用しない。
現在の Xorg は、グラフィックスハードウェア、ディスプレイ、入力デバイスを自動構成する。そのため、設定ファイルを作成せずに動作することが多い。自動構成で不都合があるときにだけ、設定ファイルを作成する。
グラフィックスドライバのインストール
Xorg を動作させるには、グラフィックスプロセッサ用のカーネルモジュールが必要である。搭載されているグラフィックスプロセッサを確認するために、次のコマンドを実行する。
pciconf -lv | grep -B3 display
確認した種類に応じて、root 権限で次のようにインストールと設定を行う。
- Intel のグラフィックスの場合
pkg install drm-kmod sysrc kld_list+=i915kms
- AMD のグラフィックスの場合。HD7000 (Tahiti) 以降は amdgpu、それ以前は radeonkms を指定する。
pkg install drm-kmod sysrc kld_list+=amdgpu
- NVIDIA のグラフィックスの場合
pkg install nvidia-drm-kmod sysrc kld_list+=nvidia-drm
- 上記のドライバが対応していない場合。UEFI で起動しているときは scfb、BIOS で起動しているときは vesa を使用する。起動方式は「sysctl machdep.bootmethod」で確認できる。
pkg install xf86-video-scfb
設定を反映するために、システムを再起動する。
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