## 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.