へっぽこ社会人4年生がプログラミングを頑張る

へっぽこ社会人4年目がプログラミング系統を中心に書きたいことをつらつらと書きます

FreeBSD 11.2-RELEASEにアップデートしたらNVIDIAのドライバが動かなくなった話

これまで、FreeBSD 11.1を使っていたのですが、FreeBSD 11.2がリリースされていたので、アップデートすることにしました。 freebsd-updateコマンドでアップグレードをインストールし、再起動して残りのアップデートのインストールを完了させるつもりでした。

X Window Systemが起動しない!!

この段階では、CUIでログインすることになるだろうなと心構えはありました。 pkgコマンドでアップデートかけたら、今まで通りデスクトップ環境が戻るだろうと思っていました。 再起動後のfreebsd-update installを終え、pkgのアップデートをし、再起動しても、 ログイン画面が表示されず、解決手段を模索しました。 /var/log/messagesを確認したら、

nvidia0: NVRM: rm_init_adapter() failed!

と表示されていたので、Google先生にそのままぶち込んだら、案の定、NVIDIAのドライバが原因だったようです。

解決方法

FreeBSDのバージョンを11.2から11.1にダウングレードしました。

freebsd-update rollback

上記のコマンドを実行して、カーネルのバージョンを前に戻しました。 無事にX Window Systemも起動するようになり、デスクトップ環境を復帰させることができました。

試行錯誤したこと

実のところ、上記の解決手段は、自分の中では最終手段でした。 使えるなら、最新バージョンのカーネルを使いたかったので、試したことを以下に列挙しました。

  • NVIDIAのドライバをpkg経由で再インストール
  • x11/nvidia-driverports経由でビルド
  • NVIDIAのページからFreeBSDのドライバのソースコードをダウンロードしてビルド

FreeBSDのフォーラムに、同じような状況で質問が上がっていて、 ソースコードからビルドしてインストールし直せばいいんじゃないかという趣旨の回答があったので、 portsmakeを試みたのですが、エラーを吐きました。 compat/linux/linux.hというファイルがないよ、というエラーが出ていました。 emulators/linux_base-c6をインストールもしたのですが、エラーが解決しませんでした。 NVIDIAのページからダウンロードしたドライバのコードも同様でした。 埒が明かないので、諦めてバージョンをダウングレードすることにしました。 とりあえず、FreeBSDのバージョンアップは先送りです。