Как запустить shim из кода grub2?

Я новичок в grub. Я пытаюсь включить безопасную загрузку UEFI из grub. Я решил использовать shim для проверки подписи ядра. Grub можно проверить из UEFI.

Я вытащил патчи из репозитория Ubuntu grub git. Grub использует функцию grub_efi_locate_protocol() для поиска прокладки, в настоящее время он не может найти прокладку и возвращает NULL.

У меня есть следующие запросы:

  1. Куда мне поместить shim.efi бинарник (я поместил его в /boot раздел)
  2. Где заполняется переменная grub_efi_system_table и как она используется grub_efi_locate_protocol?

Спасибо


person Sharath Kurudi    schedule 01.06.2017    source источник
comment
Черт возьми... Вопрос, помеченный grub, на самом деле касается программирования и разработки. Это необработанный алмаз, и я думаю, что мы должны беречь его. Можете ли вы предоставить часть кода вокруг grub_efi_locate_protocol и grub_efi_system_table?   -  person jww    schedule 20.06.2017


Ответы (1)


Я смог решить эту проблему. Когда shim выполняется, он устанавливает протокол shim. Протокол Shim устанавливается только при включенной безопасной загрузке. Я пытался использовать shim-протокол без безопасной загрузки, поэтому grub не смог найти shim-протокол. Полное объяснение прокладки находится здесь https://mjg59.dreamwidth.org/19448.html

person Sharath Kurudi    schedule 06.06.2017