公開日: 2021年7月4日 / 最終更新日: 2023年4月27日

X Window System

FreeBSD で GUI アプリケーションを利用するために X Window System (以下 X) を導入します。この記事では、NVIDIA GeForce と Intel UHD Graphics それぞれの GPU を搭載したディスプレイアダプタの設定方法を取り上げます。また、ついでにディスプレイマネージャを導入してグラフィカルなログイン画面にしようと思います。

NVIDIA GeForce の場合

供試機器

  • ディスプレイアダプタ: Palit NE6208S019P2-180F (GeForce RTX 2080 SUPER)
  • ディスプレイ: EIZO FlexScan EV2416W

ソフトウェアのインストールと設定

  1. linux カーネルモジュールをロードする。
    # kldload linux64
    % kldstat | grep linux
    14    1 0xffffffff831d0000   35cb0 linux64.ko
    15    1 0xffffffff83206000    4b80 linux_common.ko
    
    これをやっておかないと、次のステップで linux_base のインストールが失敗します。
  2. 必要なソフトウェアをインストールする。
    # pkg install -y linux_base-c7 xorg nvidia-driver nvidia-settings nvidia-xconfig
    
  3. Linux バイナリ互換機能を有効にする。また、nvidia ドライバはカーネルモジュールとして提供されるので、起動時にロードされるようにしておく。
    /etc/rc.conf
    linux_enable="YES"
    kld_list="nvidia"
    
    後のステップで X を起動してみますが、もしブラックアウトして無応答になる場合は kld_list の値を次のように書き換えてみてください。
    kld_list="nvidia-modeset"
    
    この点については nvidia-driver をインストールしたときに表示されるメッセージで触れられています (見逃した!という人は pkg info -D nvidia-driver を実行してみましょう)。
  4. OS を再起動し、X をテストする。

Intel UHD Graphics の場合

供試機器

  • ディスプレイアダプタ: Intel UHD Graphics 620

ソフトウェアのインストールと設定

下記のサイトを参考にしました。英語ですがページの最後に必要最低限の手順がわかりやすくまとめられています。手順は次のとおり。
  1. Xorg と drm-kmod をインストールする。
    # pkg install xorg drm-kmod
    
  2. 起動時にドライバがロードされるようにしておく。
    # sysrc kld_list+="/boot/modules/i915kms.ko"
    kld_list:  -> if_iwm /boot/modules/i915kms.ko
    
    ちなみに、ロードしたいドライバは /boot/modules/i915kms.ko ですが、もともと /boot/kernel/ にも同名のカーネルモジュールがあり、nvidia ドライバのときのように /boot/loader.conf に設定を書くと /boot/kernel/ にあるモジュールがロードされてしまいます。そこで、上記のように sysrc コマンドを使って (あるいは手動で /etc/rc.conf を編集して) ロードしたいモジュールの絶対パスを指定しています。
  3. X を利用するユーザーを video グループに追加する。
    # pw groupmod video -M mijinco
    
  4. OS を再起動し、X をテストする。

X をテスト起動する

では X を起動してみます。コマンドは startx です。
% startx
図 1 のように表示されれば成功です。また、nvidia ドライバの場合は nvidia-settings というツールを使って設定を行うことができます (図 2)。
図 1
図 1
図 2
図 2

フォントをインストールする

ここからはディスプレイアダプタに依存しない共通の話題です。まず X で使用することになりそうなフォントをまとめてインストールします。
# pkg install -y gnu-unifont inconsolata-ttf ja-font-ipa ja-font-migu ja-font-mona-ipa ja-font-mplus-ipa ja-font-std
# cd /usr/ports/japanese/font-ricty/
# make install

※ なお、Ricty をmake installする際にBATCH=yesを付けるとインストールに失敗する (というかフォントキャッシュを更新しても反映されない?) ようです (FreeBSD 13.2-RELEASE にて確認)。いろいろ試した結果、次のようにするのが良さそうです。途中で表示される「Install Ricty-Discord」の確認画面には手動でチェックを入れてください。

# make BATCH=yes; make install

そうしたらフォントキャッシュを更新し、インストールしたフォントが使用可能になっているか確認します。

% fc-cache -v
% fc-list : family | grep Ricty
Ricty
アプリケーションでフォントを利用する方法については下記を参照してください。rxvt-unicode と Emacs で Ricty を使用する例があります。

ディスプレイマネージャ SLiM

DOS のような真っ黒な画面からログインして毎回 startx と打つのもなんですから、ディスプレイマネージャを導入してグラフィカルなログイン画面にします。代表的なディスプレイマネージャには XDM、GDM、SDDM などがありますが、私としては SLiM を使ってゆきたいと思います。ちなみに、この記事を書くにあたり、改めてネットで SLiM について調べところ、まさかのプロジェクト停止状態になっていました (ArchWiki より)。まあ packages/ports に収録されているうちは使い続けようと思います(涙)。
  1. SLiM をインストールする。
    # pkg install slim
    
  2. (もしなければ) ホームディレクトリに .xinitrc を用意する。
    % cp /usr/local/etc/X11/xinit/xinitrc ~/.xinitrc
    % chmod 755 .xinitrc
    
  3. OS 起動時に SLiM が起動するようにする。
    /etc/rc.conf
    dbus_enable="YES"
    slim_enable="YES"
    
    「dbus_enable="YES"」の意味は正直なところよくわからないのですが、これがないとログインしたときに画面がブラックアウトしてしまいます (もしそうなってしまったら Ctrl + Alt + F1 で抜ける)。とにかくこれで OS を再起動すると図 3 のようなログイン画面が表示されます。これで最低限の設定は完了ですが、ついでに壁紙を変えたいという方は手順 4. へどうぞ。
  4. まず、デフォルトのテーマをひな型としてコピーする。テーマの名前は theme1 とか適当につける。
    # cd /usr/local/share/slim/themes/
    # cp -r default/ theme1/
    
  5. 壁紙にしたい画像ファイルを /usr/local/share/slim/themes/theme1/background.jpg に上書きコピーする。
  6. /usr/local/etc/slim.conf の "current_theme" の行を手順 4. で作成したテーマ名にする。
    /usr/local/etc/slim.conf
    current_theme theme1
    
  7. OS を再起動する。
図 3
図 3
図 4
図 4

ウィンドウマネージャを変更しよう

図 1 のスクリーンショットがちょっと殺風景だなと感じたら、ウィンドウマネージャを変えてみましょう。「ウィンドウマネージャ」や「統合デスクトップ環境」などでググると多数ヒットします。有名どころは GNOME、KDE、xfce あたりでしょうか。私は awesome というウィンドウマネージャを使用しています。これについては別記事で。