Kernel

簽署核心模組

  • February 5, 2022

所以我在一個 debian buster 10 系統上,我安裝了virtualbox,我遇到了一個錯誤,告訴我手動載入一些核心模組。

sudo ./vboxconfig 
[sudo] password for user:
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: You must sign these kernel modules before using VirtualBox:
vboxdrv vboxnetflt vboxnetadp
See the documenatation for your Linux distribution..
vboxdrv.sh: Building VirtualBox kernel modules

所以我只需要一些幫助來載入 vboxdrv、vboxnetflt 和 vboxnetadp 核心模組來完成我的虛擬機安裝,我不太確定這是如何完成的。我正在使用啟用了安全啟動的 UEFI 系統。

簽署模組涉及三個步驟:

前兩個步驟只需要執行一次,最後一個需要在每次建構模組時重做。

創建 MOK:

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=My Name/" -nodes

My Name適當的東西代替。(以下說明假設您以 root 身份在 root 的主目錄中執行它/root。)

要註冊它:

mokutil --import MOK.der

這將提示輸入密碼,這是僅在下次啟動時使用的臨時密碼。重啟系統,進入UEFI MOK管理工具;請參閱帶有螢幕截圖的便捷指南,並按照說明註冊您的密鑰。

這將再次重新啟動,然後您將能夠檢查您的密鑰是否已載入:

dmesg | grep cert

要使用您的密鑰對模組進行簽名,請轉到包含模組的目錄,然後執行

/usr/lib/linux-kbuild-4.19/scripts/sign-file sha256 /root/MOK.priv /root/MOK.der vboxdrv.ko

酌情替換“4.19” vboxdrv.ko

引用自:https://unix.stackexchange.com/questions/560895