我最近在配備華碩 Z87-K 主機板的客製化桌上型電腦上安裝了 Fedora 20。鑑於一些眾所周知的錯誤,我為我的 GeForce 630 安裝了 NVIDIA 專有驅動程序,並停用了 nouveau 驅動程式。
正確完成驅動程式安裝後(在此期間使用新產生的金鑰對模組進行簽署),將建立 x.509 憑證並自動放置在
/usr/share/nvidia/certificate.der
。
但是,從那時起,電腦將無法在啟用 UEFI 安全啟動選項的情況下啟動。當切換到文字模式並運行時nvidia-modprobe
,我發現NVIDIA專有模組沒有載入。
當我在 UEFI 選單中停用安全啟動時,電腦會啟動並使用已安裝的驅動程式順利運行。
為了避免以不安全模式啟動的缺點,我想知道將 NVIDIA 模組的 x.509 憑證放置在哪裡,以便核心能夠識別它,這樣我就不必關閉安全啟動。
答案1
您應該能夠使用載入證書,MokManager.efi
以便 Shim 識別它,從而被核心接受。我不知道 Fedora 是否設定了 GRUB 以便您可以MokManager.efi
自己啟動。如果沒有,請嘗試使用 EFI shell 啟動(停用安全啟動)USB 隨身碟或rEFInd。然後您應該能夠啟動MokManager.efi
並載入證書檔案。 (它需要與實用程式儲存在同一磁碟上MokManager.efi
——可能/boot/efi
來自 Fedora 內部。)
我很確定有一種方法可以從 Linux 內部將憑證新增至 NVRAM,以便 Shim 會注意到它並詢問您下次重新啟動時是否應該使用它,但我不知道它到底是什麼。據推測,這涉及將文件寫入/sys/firmware/efi
目錄樹中的某個位置。
也就是說,我從來不需要自己做這個特定的事情,因為我不在我的任何電腦上使用專有的視訊驅動程式。可以想像,您需要採取一些額外的步驟。
答案2
您需要使用 mokutil 來註冊金鑰。
sudo mokutil --import <der file>
您可以測試密鑰是否已註冊
mokutil --test-key <der file>