🌟

Ubuntu20.04にNVIDIA GPUドライバを導入する際の罠

2023/07/18に公開

GPU導入の際に問題が発生

先日研究室にてUbuntu Server にNVIDIA RTX A4000を導入しました。
この際対処したエラー達が面白かったため、備忘録として情報を残しておきます。

対処した問題

Ubuntu20.04に以下の手順でnvidia-smiを導入しようとした

インストール可能なドライバをubuntu-driversで検索

ubuntu-drivers devices

その結果recommendされているドライバをインストールして、OSを再起動

sudo apt install nvidia-driver-530-open
sudo reboot

すると、作りかけのようなGUIログイン画面が出現。そのままログインするとフリーズしてしまった。

Ctrl + Alt + F2で仮想端末にログイン。nvidia-smiコマンドを使用すると

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure th

と表示される

対処方法

Ubuntu Server 20.04デフォルトのカーネルに不具合がある

https://forums.developer.nvidia.com/t/ubuntu-20-04-4-hp-zbook-studio-g8-mobile-workstation-driver-fails/208836/3

上記記事を参考にしました。

Linuxカーネルのバージョンによってはnvidiaドライバをうまく読み込めないことがあります。今回の場合、Ubuntu Server 20.04のデフォルトカーネルがそのハズレに当たるようです。おとなしくカーネルのアップデートを行いましょう。

この記事で実際に動いたとされている5.10.0-1044-oem kernelにアップデートします。

  • 既存のドライバを消去
sudo apt purge nvidia-*
sudo apt autoremove
sudo apt autoclean
  • 5.10.0-1044-oem kernelのインストール
sudo apt install linux-image-5.10.0-1044-oem linux-headers-5.10.0-1044-oem
  • NVIDIA nouveau driverをブラックリストに登録する(この記事を参考https://linuxconfig.org/how-to-disable-blacklist-nouveau-nvidia-driver-on-ubuntu-20-04-focal-fossa-linux)
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
  • GUI機能をオフにする
    余計なGUI表示をオフにします。
sudo systemctl set-default multi-user 
  • 再起動。この際、GRUBにて Linux 5.10.0.1044-oem kernelでUbuntuが起動するかどうかを確認

  • 既存のkernel imageをアンインストール

sudo apt purge linux-image-5.04* linux-headers-5.04*
sudo apt autoremove
sudo apt autoclean
  • GRUBのアップデート
sudo update-grub
  • NVIDIAドライバのインストール
    recommendedのドライバをインストールする
    (これは間違い)
sudo apt install nvidia-driver-530-open
  • 再起動

さて、これで無事、nvidia-smiも動くでしょ...。

$ nvidia-smi 
No devices were found

...?????

recommendedのドライバをインストールするとエラーになる

https://qiita.com/y-vectorfield/items/72bfb66d8ec85847fe2f

以上記事を参考にしました。

素直にrecommendedのドライバを使おうとするとエラーになります。
この対処として"-open"を取り除いたドライバをインストールします。

インストールしたら、一応既存のドライバを消去します。

sudo apt purge nvidia-*
sudo apt autoremove
sudo apt autoclean
sudo apt install -y nvidia-driver-530
sudo reboot

再起動後無事にnvidia-smiが使える状態になりました。

カーネルの不具合、recommendedの罠と非常に勉強になる事例でした。

Discussion