2017-06-01 18 views
0

Je suis nouveau à grub. J'essaie d'activer le démarrage sécurisé UEFI de Grub. J'ai décidé d'utiliser shim pour vérifier la signature du noyau. Grub peut être vérifié à partir de UEFI. J'ai extrait des correctifs du référentiel grub git d'Ubuntu. Grub utilise la fonction grub_efi_locate_protocol() pour localiser shim, actuellement il n'est pas capable de trouver shim et renvoie NULL.Comment lancer shim depuis le code grub2?

Je requêtes suivantes:

  1. Où dois-je placer shim.efi binaire (je l'ai placé partition/boot)
  2. Où se grub_efi_system_table peuplée variables, et comment est-il utilisé par grub_efi_locate_protocol?

Merci

+0

Holy sh - t ... Une question taguée avec 'grub' qui concerne la programmation et le développement. C'est un diamant brut, et je pense que nous devrions le nourrir. Pouvez-vous fournir une partie du code autour de 'grub_efi_locate_protocol' et' grub_efi_system_table'? – jww

Répondre

2

j'ai pu résoudre ce problème. Lorsque shim est exécuté, il installe le protocole shim. Le protocole Shim est installé uniquement lorsque le démarrage sécurisé est activé. J'essayais d'utiliser le protocole shim sans boot sécurisé, donc, grub était incapable de trouver le protocole shim. Une explication complète de shim est ici https://mjg59.dreamwidth.org/19448.html