Skip to content

[已解決] NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

Last Updated on 2022-04-30 by Clay

問題描述

最近當我重新配置工作用環境的 Nvidia GPU 驅動程式時,當我安裝過後重新開機,我卻無法透過 nvidia-smi 指令去取得 GPU 的資訊。唯一得到的訊息是:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.


嘗試了安裝不同的版本,指令與圖形化介面都使用過,最後我發現是我並沒有正確地啟用 MOK 管理程序,導致驅動程式沒法正常地運作。


什麼是 MOK?

MOK機器所有者金鑰Machine Owner Key)的縮寫,它是一個保護作業系統元件與驅動程式的開機程序boot process)。

當然,它是基於 BIOS 進行實作的。

最重要的是,我們需要創建一對金鑰,使用『私鑰』對要允許執行的驅動程式進行簽名sign),而『公鑰』則由 MOK 系統用於加密。


解決方式

在安裝 Nvidia 驅動程式的過程中,我們一定有機會可以輸入自己建議的密碼。如果你想重複安裝過程,可以參考使用以下指令來刪除目前已經安裝的 nvidia 套件:

sudo apt purge nvidia-*


而你可能會想要尋找可用於安裝的 nvidia 驅動:

sudo apt search nvidia-driver*


相關的 APT 指令操作可以參考文末連結。

而萬一你錯過了 MOK 的畫面、並且在下次重新啟動時也沒有進入 MOK 畫面,或許你可以執行以下指令來重新進行這些程序:

sudo mokutil --import /var/lib/shim-signed/mok/MOK.der


系統會提示你輸入密碼,並在重新啟動時進入 MOK 畫面。


MOK 畫面時的操作步驟

  1. 在配置安全啟動(configure secure boot)時設定密碼,並記起密碼
  2. 當你進入 Perform MOK management 畫面時,請選擇 Enroll MOK > Continue > Yes
  3. Enroll the key(s)? 畫面時,輸入剛才步驟 1. 的密碼。
  4. 選擇 OK 重新啟動
  5. 在重新啟動後,使用 nvidia-smi 指令確認驅動程式已經正常運作

希望大家都能順利載入自己的驅動程式!


References


Read More

Tags:

Leave a Reply