Code Day's Night

ichikawayのブログ

Ubuntuでカーネルアップデート後に画面が映らない問題の解決 NVIDIA編

Ubuntuでアップデートしたら画面が表示されなくなった件が解決した。
他のUbuntuのバージョンやNVIDIAのGPUであってもLinuxカーネルアップデートが行われると同じ問題が起こる可能性があるのでメモを残す。
症状は、アップデート後にOS再起動するとOSは起動するが画面に何も出力されない状態。sshでログインはできるのでそこから作業した。

環境は、Ubuntu21.10でカーネルは 5.13.0-27 。GPUはNVIDIAのGeForce 1650。

次のコマンドでドライバーが動いてないのを確認

# nvidia-detector 

nvidia-driver-495
# 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.

apt upgradeの状況を確認。カーネルアップデートの時にnvidiaのドライバーがremoveされたりinstallされたりしているのを確認。

# grep 'nvidia' dpkg.log  

インストール済みのパッケージをみると利用中の5.13.0-27のカーネルのnvidiaドライバーがなかった

# dpkg -l | grep nvi

ii  libnvidia-compute-495:amd64                495.46-0ubuntu0.21.10.1                    amd64        NVIDIA libcompute package
rc  linux-modules-nvidia-470-5.11.0-44-generic 5.11.0-44.48+1                             amd64        Linux kernel nvidia modules for version 5.11.0-44
rc  linux-modules-nvidia-470-5.13.0-23-generic 5.13.0-23.23+1                             amd64        Linux kernel nvidia modules for version 5.13.0-23
rc  linux-objects-nvidia-470-5.11.0-44-generic 5.11.0-44.48+1                             amd64        Linux kernel nvidia modules for version 5.11.0-44 (objects)
rc  linux-objects-nvidia-470-5.13.0-23-generic 5.13.0-23.23+1                             amd64        Linux kernel nvidia modules for version 5.13.0-23 (objects)
rc  nvidia-kernel-common-440                   440.100-0ubuntu0.20.04.1                   amd64        Shared files used with the kernel module
rc  nvidia-kernel-common-470                   470.86-0ubuntu0.21.10.1                    amd64        Shared files used with the kernel module
ii  nvidia-kernel-common-495                   495.46-0ubuntu0.21.10.1                    amd64        Shared files used with the kernel module
ii  nvidia-utils-495                           495.46-0ubuntu0.21.10.1                    amd64        NVIDIA driver support binaries

カーネル用のドライバをインストール

apt install nvidia-kernel-common-495
apt install linux-modules-nvidia-495-5.13.0-27-lowlatency

インストール済みパッケージを確認すると linux-modules-nvidia-495-5.13.0-27 があるのでカーネルに合わせたドライバーが入った模様。

apt list --installed | grep nvidia

libnvidia-compute-495/impish-updates,impish-security,now 495.46-0ubuntu0.21.10.1 amd64 [インストール済み、自動]
linux-modules-nvidia-495-5.13.0-27-lowlatency/impish-updates,impish-security,now 5.13.0-27.29 amd64 [インストール済み]
linux-objects-nvidia-495-5.13.0-27-lowlatency/impish-updates,impish-security,now 5.13.0-27.29 amd64 [インストール済み、自動]
linux-signatures-nvidia-5.13.0-27-lowlatency/impish-updates,impish-security,now 5.13.0-27.29 amd64 [インストール済み、自動]
nvidia-kernel-common-495/impish-updates,impish-security,now 495.46-0ubuntu0.21.10.1 amd64 [インストール済み]
nvidia-utils-495/impish-updates,impish-security,now 495.46-0ubuntu0.21.10.1 amd64 [インストール済み]

この後、OSを再起動すると画面が表示されるようになった。