Linux中國

在啟用安全啟動的 Fedora 中安裝英偉達驅動

背景信息

現在新出廠的電腦 UEFI 會默認開啟 安全啟動 Secure Boot ,它的作用是防止惡意軟體侵入。當電腦的引導程序被病毒修改之後,它會給出提醒並拒絕啟動,避免可能帶來的進一步損失。不過它同樣會阻止一些未經微軟簽名的 Linux 內核啟動運行。雖然可以直接選擇在主板設置中關閉安全啟動來解決這些麻煩,但在近期微軟公布的 Windows 11 最低硬體標準中可以看到,安全啟動被微軟看的越來越重。如果你的電腦是 Windows + Linux 雙系統,最好還是讓 Linux 本身支持安全啟動。

而最好用的發行版之一 Fedora 更熱衷於開源驅動。Fedora 其本身是支持安全啟動的,但是當你通過 Rpmfusion 安裝官方的英偉達驅動,會造成這些驅動的內核模塊未簽名。在 Linux 啟動過程中因為安全啟動校驗簽名,會阻止載入這些模塊,進而無法正常驅動顯卡。

用過 Ubuntu 的夥伴們應該知道,在安全啟動開啟的情況下,Ubuntu 安裝程序會自動用自簽密鑰來簽名英偉達驅動內核模塊,並在開機過程中自動將該自簽密鑰導入 MOK List(安全啟動機器主人信任密鑰列表)。但 Fedora 只會保證自身內核簽名有效,而對 Rpmfusion 中的第三方內核模塊簽名問題不予理會,導致無法正常載入英偉達驅動。

本文介紹如何在 Fedora 中自動簽署英偉達內核模塊

準備工作

在 Fedora 36 之前,要像 Ubuntu 那樣自動簽署內核模塊有點困難。但從這個版本開始,你只需幾個簡單的步驟就能做到。

在開始之前,讓我們先確認一些前提條件已經滿足:

  1. 已啟用安全啟動;
  2. 尚未安裝英偉達驅動程序(非常關鍵,如果你已經安裝了專有的英偉達驅動,可能需要重裝系統才行);
  3. 以及安裝了 Fedora 36 及以上版本。

本指南主要參考了以下資料:

  1. Rpmfusion 的官方英偉達文檔
  2. Rpmfusion 的官方安全啟動文檔
  3. Andrei Nevedomskii 的博客教程

希望深入了解的朋友可以閱讀上述資料進一步研究。

具體步驟

1、安裝自動簽名所需的工具

sudo dnf install kmodtool akmods mokutil openssl

2、生成簽名密鑰

sudo kmodgenca -a

該命令會在 /etc/pki/akmods/certs/ 目錄下生成密鑰,運行正確的情況下不會有輸出。

3、啟動密鑰註冊

這將使 Linux 內核信任使用你的密鑰簽名的驅動程序。

sudo mokutil --import /etc/pki/akmods/certs/public_key.der

你會被要求輸入一個密碼。請記住這個密碼,在下面的第五步中還需要再次使用。

4、重啟以註冊密鑰

sudo reboot

5、註冊密鑰

重啟後,你將看到藍色的 MOK 管理器界面,不要被這種類似 BSOD 的頁面嚇壞,按照以下步驟註冊密鑰。

如果你曾在啟用安全啟動的 Ubuntu 中安裝過英偉達驅動程序,你可能見過這個界面。

1、首先要及時按任意建繼續進入 MOK 管理(如果沒有及時進入 MOK 管理,系統會重啟)

MOK 管理界面1

2、首先選擇 「Enroll MOK」 註冊 MOK。

3、然後選擇 「Continue」。

4、選擇 「Yes」 並輸入步驟 3 中的密碼並回車(密碼不會在輸入框中顯示,輸入密碼直接回車就好了)。

MOK 管理界面2

5、此時密鑰已經註冊,選擇 「reboot」,設備將再次重啟。

MOK 管理界面3

6、安裝英偉達驅動程序

現在只需正常安裝英偉達驅動程序。

sudo dnf install gcc kernel-headers kernel-devel akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-libs

7、確保內核模塊已編譯

sudo akmods --force

8、確保啟動鏡像也已更新

sudo dracut --force

9、重啟設備

sudo reboot

驗證是否成功

重啟完成後,輸入以下命令確認驅動是否載入:

lsmod | grep -i nvidia

如果有類似以下的輸出,恭喜你,一切順利,一切就緒!

$ lsmod | grep -i nvidia

nvidia_drm             94208  2
nvidia_modeset       1560576  2 nvidia_drm
nvidia_uvm           3493888  0
nvidia              62517248  118 nvidia_uvm,nvidia_modeset
video                  73728  3 asus_wmi,i915,nvidia_modeset

現在,你可以愉快的在開啟安全啟動的情況下使用英偉達顯卡了。

希望本文能夠幫助到你。

作者簡介:一個喜歡瞎鼓搗的外科醫生

via: https://www.insidentally.com/articles/000034/

作者:insidentally 編輯:wxy

本文由貢獻者投稿至 Linux 中國公開投稿計劃,採用 CC-BY-SA 協議 發布,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let's Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...