igpu multi-monitor環境でNvidiaドライバがリブートで無効になった
何気にNVIDIA X Server Settingsでプライマリドライバを切替てしまった。(あとで気がついた(-_-;))
なんと!リブート後、Nvidiaのドライバーが読み込まれなくなってしまいました。
Nvidiaのドライバが無効となる主なものは
- Kernelのアップデートでドライバの不整合
- セキュアブートで、ドライバーがはねられた。
- 設定ファイルの不整合
- 他のドライバとの競合
などが、ネットの情報としてはあります。
本来はログ類から原因を特定するスキルがあればよいのですが、いつの間にか対処療法になれてしまい要課題というところ
nvidia関連ドライバを一度すべて削除して、再インストールするので、ついでにカーネルもUpdateしました。
sudo apt remove --purge nvidia-* sudo apt remove --purge cuda-* dpkg -l |grep nvidia ;他にないか確認 sudo apt remove --purge libnvidia-*:i386 ;あれば、こんな感じで削除
別に必要ありませんが、念の為、ついでのカーネルアップデート
sudo apt install linux-generic-hwe-18.04 ;reboot uname -a ;念の為、レビジョンを確認
ドライバーのインストール
sudo apt update sudo apt upgrade ;念の為、最新化 sudo ubuntu-drivers deices ;適用できるドライバーの確認 sudo ubuntu-drivers autoinstall ;推奨ドライバーのインストール ;reboot
今回のケースだとこれでは駄目で
nvidia-smi ;この結果↓ NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
nouveauとのドライバー競合の場合、nouveauを読み込まさないように以下のファイルを作成して対処するようですが、多分不要
/etc/modprobe.d/blacklist-nouveau.conf
最後に、今回の問題の解決手段
prime-select query ;これで現状のプライマリがintelかnvidiaかわかります。 sudo prime-select intel ;プライマリを現状と異なる設定にします。 sudo prime-select nvidia ;本来期待しているプライマリ設定にします。 ; ここでrebootでOKですが、cudaを使用したいので sudo apt install nvidia-cuda-toolkit
はい、これでreboot後、使用できるようになると思います。
nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.26 Driver Version: 440.26 CUDA Version: 10.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 960 Off | 00000000:01:00.0 On | N/A | | 30% 39C P8 11W / 120W | 146MiB / 1994MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 1153 G /usr/lib/xorg/Xorg 144MiB | +-----------------------------------------------------------------------------+