## Description 某次斷電後,Nvidia Driver 的版本從 525 降回 460,多次重裝 Driver 與重新開機,都沒辦法升級回 525 版,以下筆記紀錄我解決此問題的過程。 OS: Ubuntu 20.04 ## Steps 1. 查看是否有任何 Nvidia Package ```bash dpkg -l | grep nvidia ``` 2. 將這些 Package 一個不留的刪光 ```bash sudo apt-get remove --purge -y '*nvidia*' ``` 3. 反覆前兩步驟,若有殘留的套件則手動刪除 + e.g. `sudo apt-get remove --purge nvidia-driver-525-server` 4. 檢查是否有程序正在使用 Nvidia 裝置 ```bash sudo lsof '/dev/nvidia*' ``` 5. 發現有 Xorg 正在啟用圖形化介面,把他關掉 ```bash sudo systemctl isolate multi-user.target ``` 6. 執行 Nvidia 官方的刪除程式 ```bash sudo nvidia-uninstall ``` 7. 刪除多餘的殘留套件 ```bash sudo apt autoremove -y ``` 8. 檢查 DKMS 的 Nvidia 狀態 + 安裝 DKMS 套件: ```bash sudo apt-get install -y dkms ``` + 檢查 DKMS 狀態: ```bash sudo dkms status ``` 9. 刪除 DKMS 底下所有與 Nvidia 相關的資料夾,例如: ```bash 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 版本可以安裝 ```bash apt-cache search nvidia-driver ``` + 安裝目標版本的驅動程式,例如 525 為 CUDA 12.0 ```bash sudo apt-get install nvidia-driver-525-server ``` + 如果是使用桌面版的 Ubuntu 則可以透過以下指令安裝: ```bash sudo ubuntu-drivers autoinstall ``` 13. 安裝過程中發生類似以下的訊息: :::spoiler 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.17` 與 `5.4.0-152-generic` 是根據 Logging Message 決定的 + 安裝的若不是 Server 版的 Nvidia Driver,則 `-m` 後面可能不是接 `nvidia-srv` + 可能是根據 `INFO:Enable ...` 決定的 + 可能訊息長的不會完全一樣,但如果有類似 `.ko` 的訊息跑出來就可以試試看強制載入 DKMS 的指令。 15. 保險起見可以再重開一次。 16. 再次執行 `nvidia-smi` 確定驅動程式版本恢復成 525 了,萬歲 :tada: ## Power Limit + 查詢功率限制: ```bash nvidia-smi -q -d POWER ``` + 啟用持續模式使功率限制持續套用: ```bash sudo nvidia-smi -pm ENABLED ``` + 設定新的功率上限: ```bash sudo nvidia-smi -i 0 -pl=250 ``` + 其中 `-i` 代表 GPU 的索引值。 ## Installation + 移除 NVIDIA 相關套件: ```bash sudo apt autoremove -y "nvidia-*" sudo apt purge -y "nvidia-*" ``` + 檢視最新版本: ```bash curl https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt # 570.144 570.144/NVIDIA-Linux-x86_64-570.144.run ``` + 也可以到[這個網頁](https://download.nvidia.com/XFree86/Linux-x86_64)查看版本資訊。 + 以 570.144 版本為例,下載安裝程式: ```bash wget https://download.nvidia.com/XFree86/Linux-x86_64/570.144/NVIDIA-Linux-x86_64-570.144.run ``` + 給予安裝程式執行權限: ```bash chmod +x NVIDIA-Linux-x86_64-570.144.run ``` + 透過安裝程式移除驅動程式: ```bash sudo ./NVIDIA-Linux-x86_64-570.144.run --uninstall ``` + 執行安裝程式: ```bash sudo ./NVIDIA-Linux-x86_64-570.144.run -q -s --no-opengl-files ``` + 啟用驅動程式: ```bash nvidia-smi -pm 1 ``` ## Reference + [ChatGPT Supporting](https://chat.openai.com/share/ec9ba59b-9b8c-45e3-bbb0-d88a9293ff6c) + [AskUbuntu: DKMS Status](https://askubuntu.com/a/1246540)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up