NVIDIAやnouveauというワードを皆さんもご存知かと思います。
どちらもLinuxにおいて非常によくうまく動作に失敗することが多く,とりあえず最初にGUIを立ち上げる場合はvesaを使うなどが一般的になっています。
私のメインマシンであるHP420のQuadroK2000をちゃんと使えるようにするために詰まったところのメモを書きます。
問題:failed to initialized the NVIDIA kernel module
というエラーが出て,GUIが立ち上がらない
課題1:何も考えずにやると,CUIの画面をnouveauとして認識する。
以前,Gentooを使ってたときは,CUIでは画面を1つしか認識せずにXを起動すると2画面を認識するようになっていましたが,nouveauで認識することでCUIの時点で2画面認識することがあります。ところが,これをよしとするのが罠でした。
カーネルがnouveauのモジュールをロードすることによって,NVIDIAのモジュールを競合のせいでロードできなくなる場合があります。
そうなると,GUIがNVIDIAで立ち上げることができなくなるため非常にパフォーマンスんの悪い状態で無理やり立ち上がったり,立ち上がらなくなったりします。
課題2:nouveauだけでいこうとしてもうまくいかない
NVIDIAは邪悪だ,CUIでもちゃん認識してるnouveauを信じよう。
これも間違いです。
どちらかというと邪悪なのはnouveauです。こいつだけは絶対に信用してはいけません。
無理やりxorg.confを書き換えてnouveauだけでGUIを立ち上げたら640x480の画面が出来上がりました。ほんまきつい。
課題3:NVIDIAが先に立ち上がるnouveauに負ける
問題1を解決せずにいるとnouveauを先に読み込んだ影響でNVIDIAと競合してしまうためGUIを起動することができません。
カーネルの起動パラメーターにnouveauを切るような設定を読み込んだり,個別にnouveauのモジュールをブラックリストに入れるなどの対応を行う必要があります。
今回やったこと
/etc/default/grubの例のところに
nouveau.modeset=0
を追記
あとは,wikiの手順に従って,
sudo nvidia-xconfig
で再起動
make.confとかはそこまで関係なかったようです。
一応元々普通に動いてたのですでに設定済みなだけかもしれません。
カーネルを更新するタイミングで設定がうまくいかなくなってGUIがまともに使えない事態に陥っただけなので。
”NVIDIAは無理だ,諦めよう”
というのは絶対に勿体無いので諦めないでください!!