グラフィックボードの双璧の一角をなすNVIDIAですが、FreeBSDで使う場合標準のドライバーは、劇遅そなのが問題です。ですが、NVIDIAがFreeBSD用にもドライバーを用意してくれているので、これをインストールしないでNVIDIAのボードを使うというのはあり得ないでしょう(といいつつ、私も、今までよく知らずに、NVIDIAのボードを差しながら、ドライバーのインストール方法がわからずにオンボードのグラフィック機能を使っていたのですが)。やってみたら結構簡単だったので、ここにまとめておきます。
作業の際は、rootでログインするか、一般ユーザーでログインした後、suでrootユーザーになってください。
まずは、手持ちのNVIDIAボードのドライバーのバージョンをNVIDIAのウェブサイト(http://www.nvidia.co.jp/Download/index.aspx?lang=jp)で調べます。ウェブサイトのデザインなどちょくちょく変わるんでしょうが、現時点だと
製品のタイプ | GeForce (私の場合) |
製品シリーズ | GeForce 10 Series (私の場合) |
製品ファミリー | GeForce GTX 1050 (私の場合) |
オペレーティングシステム | FreeBSD x64 (またはFreeBSD x86) |
言語 | Japanese |
と入力して、その後「検索」ボタンを押します。
FreeBSDでは、nvidia-driver、nvidia-driver-470、nvidia-driver-390、nvidia-driver-340、nvidia-driver-304の5種類のドライバーが用意されています。nvidiaの製品サポートリストから自分のグラボに対応したものを選びます。
NVIDIAのドライバーと関連するパッケージをインストールします。コマンドプロンプトで
# pkg install nvidia-driver nvidia-settings nvidia-xconfig[ENTER]
と打ちます(nvidia-driverは、状況によって。nvidia-driver-470、nvidia-driver-390、nvidia-driver-340、nvidia-driver-304)
起動時にNVIDIAのドライバーを読み込むように、/etc/rc.confに以下の記載を追加します。nvidia-driver/nvidia-driver-470/nvidia-driver-390の場合は、
kld_list="nvidia-modeset"
nvidia-driver-340/nvidia-driver-304の場合は、
kld_lsit="nvidia"
と記載してください。
/usr/local/etc/X11/xorg.conf.dフォルダーにdriver-nvidia.confというファイルを作成して、以下の内容を記述します。
Section "Device"
Identifier "Card0"
Driver "nvidia"
EndSection
Card0かどうかというのは、環境によるので、はっきりしない場合は、
# Xorg -configure[ENTER]
を実行して、作成された/root/xorg.conf.newを見て、判断してください。/root/xorg.conf.newは、用が終わったら削除してください。あってはいけないというわけではないですが、現在はxorgに自動設定させるのを推奨して、xorg.confを使うのを推奨していないようです(ハンドブック 2017/8/29版 5.4.4 コンフィグレーションファイル)。
これで再起動すると、NVIDIAのドライバーが有効になっています。
なお、このページを書くに当たって、以下の記事を参考にしました。
portsのメッセージに結構有用な情報がありますので、訳しておきます。
NVIDIAのドライバーを利用する際は、必ずNVidiaカーネルモジュールをロードしてください。方法は、コマンドプロンプトで
kldload nvidia (または、nvidia-modeset、下記参照)
nvidia_load="YES" (または、nvidia-modeset_load="YES"、下記参照)
このportをFreeBSD AGP GARTドライバーと一緒にビルドした場合は、agp.koカーネルモジュールをインストール/ロードするか、「device agp」を指定してカーネルをコンパイルしてください。nvidia.koは、これに依存するからです。そうしなければ、nvidia.koはロードされないでしょう。同時にX11コンフィギュレーションファイルの「Device」セクションの「Option NvAGP」に正しい値を設定してください。
nvidia_load="YES" (または、nvidia-modeset_load="YES"、下記参照)
リナックス互換サポート付でビルドする場合は、linux.koも利用可能(またはカーネルにコンパイルされている)にしてください。それは、/boot/loader.confでロードすることもできますし、/etc/rc.confに
linux_enable="YES"
カーネルで「options SYSVSHM」を有効にしていて、Xが起動せず、/var/log/Xorg.0ファイルに
(EE) NVIDIA(0): Failed to obtain a shared memory identifier.
バージョン358.09からドライバーのいくつかの重要な機能がnvidia-modeset.koという別のカーネルモジュールに分離されました。X11サーバーが立ち上がらない、または、/var/log/Xorg.0ファイルに
(II) NVIDIA(0): Validated MetaModes:
(II) NVIDIA(0): "NULL"
さらなる情報は、/usr/local/share/doc/NVIDIA_GLX-1.0/READMEを参照してください。
今回のセットアップでの主なモジュールのバージョン | |
---|---|
nvidia-driver | 550.54.14 |
nvidia-driver-470 | 470.161.03_1 |
nvidia-driver-390 | 390.154_1 |
nvidia-driver-340 | 340.108_4 |
nvidia-driver-304 | 304.137_10 |
nvidia-settings | 535.146.02_1 |
nvidia-xconfig | 525.116.04 |
(2016年 9月10日 記
2024年 7月20日 更新)