2017-06-01 105 views
0

我是grub的新手。我試圖從grub啓用UEFI安全啓動。我決定使用shim來驗證內核的簽名。 Grub可以從UEFI驗證。如何從grub2代碼中運行shim?

我從Ubuntu的grub git存儲庫中提取了補丁。 Grub使用grub_efi_locate_protocol()函數來定位勻場,目前它無法找到勻場並返回NULL

我有以下疑問:

  1. 我應該在哪裏放置shim.efi二進制(我已經把它的/ boot分區)
  2. 哪裏grub_efi_system_table變量得到填充,以及它是如何使用grub_efi_locate_protocol

感謝

+0

Holy sh -t ...標籤爲'grub'的問題實際上是關於編程和開發。這是粗糙的鑽石,我認爲我們應該培養它。你能提供一些'grub_efi_locate_protocol'和'grub_efi_system_table'的代碼嗎? – jww

回答

2

我能解決這個問題。執行填充程序時,將安裝勻場協議。 Shim協議僅在安全引導啓用時才安裝。我試圖使用沒有安全啓動的shim協議,所以,grub無法找到shim協議。墊片的完整解釋在這裏 https://mjg59.dreamwidth.org/19448.html