Try   HackMD

Description

某次斷電後,Nvidia Driver 的版本從 525 降回 460,多次重裝 Driver 與重新開機,都沒辦法升級回 525 版,以下筆記紀錄我解決此問題的過程。

OS: Ubuntu 20.04

Steps

  1. 查看是否有任何 Nvidia Package
    • dpkg -l | grep nvidia
  2. 將這些 Package 一個不留的刪光
    • sudo apt-get remove --purge '*nvidia*'
  3. 反覆前兩步驟,若有殘留的套件則手動刪除
    • e.g. sudo apt-get remove --purge nvidia-driver-525-server
  4. 檢查是否有程序正在使用 Nvidia 裝置
    • sudo lsof /dev/nvidia*
  5. 發現有 Xorg 正在啟用圖形化介面,把他關掉
    • sudo systemctl isolate multi-user.target
  6. 執行 Nvidia 官方的刪除程式
    • sudo nvidia-uninstall
  7. 刪除多餘的殘留套件
    • sudo apt autoremove
  8. 檢查 DKMS 的 Nvidia 狀態
    • 安裝 DKMS 套件:sudo apt-get install dkms
    • 檢查 DKMS 狀態:sudo dkms status
  9. 刪除 DKMS 底下所有與 Nvidia 相關的資料夾,例如:
    ​​​​# ls /var/lib/dkms
    ​​​​sudo rm -rf /var/lib/dkms/nvidia-srv
    ​​​​sudo rm -rf /var/lib/dkms/nvidia-440
    ​​​​sudo rm -rf /var/lib/dkms/nvidia-465
    
  10. (非常重要)重新開機
    • 重開前確認 nvidia-smi 指令並不存在,但即便不存在,重開之後也有可能冒出來
  11. 重開後輸入 nvidia-smi 確認此指令並不存在,代表大致上刪除成功
  12. 重新安裝 Nvidia Driver
    • 查詢有哪些 Driver 版本可以安裝
      • apt-cache search nvidia-driver
    • 安裝目標版本的驅動程式,例如 525 為 CUDA 12.0
      • sudo apt-get install nvidia-driver-525-server
    • 如果是使用桌面版的 Ubuntu 則可以透過以下指令安裝:
      • sudo ubuntu-drivers autoinstall
  13. 安裝過程中發生類似以下的訊息:
    Logging Message
    ​​​​Setting up nvidia-dkms-525-server (525.105.17-0ubuntu0.20.04.1) ...
    ​​​​update-initramfs: deferring update (trigger activated)
    ​​​​INFO:Enable nvidia-srv
    ​​​​DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
    ​​​​DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
    ​​​​DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
    ​​​​Loading new nvidia-srv-525.105.17 DKMS files...
    ​​​​Building for 5.4.0-152-generic
    ​​​​Building for architecture x86_64
    ​​​​Building initial module for 5.4.0-152-generic
    ​​​​Secure Boot not enabled on this system.
    ​​​​Done.
    
    ​​​​nvidia.ko:
    ​​​​Running module version sanity check.
    ​​​​Error! Module version 525.105.17 for nvidia.ko
    ​​​​is not newer than what is already found in kernel 5.4.0-152-generic (530.41.03).
    ​​​​You may override by specifying --force.
    
  14. 解決方法:透過 DKMS 強制載入
    • sudo dkms install -m nvidia-srv -v 525.105.17 -k 5.4.0-152-generic --force
    • 其中 525.105.175.4.0-152-generic 是根據 Logging Message 決定的
    • 安裝的若不是 Server 版的 Nvidia Driver,則 -m 後面可能不是接 nvidia-srv
      • 可能是根據 INFO:Enable ... 決定的
    • 可能訊息長的不會完全一樣,但如果有類似 .ko 的訊息跑出來就可以試試看強制載入 DKMS 的指令。
  15. 保險起見可以再重開一次。
  16. 再次執行 nvidia-smi 確定驅動程式版本恢復成 525 了,萬歲
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

Reference