Как приложение efi устанавливается в качестве загрузчика через код? - PullRequest
0 голосов
/ 25 апреля 2018

Следуя этому учебнику , я могу создать простое приложение efi, которое печатает hello world, когда выполняется из оболочки uefi .Однако мне было интересно, как создать загрузочный образ EFI.Я попытался использовать команду bcfg в оболочке и добавил двоичный файл EFI в качестве одной из последовательностей загрузки.Однако, есть ли способ сделать это без необходимости заходить в оболочку?

Однако, если вы на самом деле создаете свою собственную прошивку, вы также можете посмотреть на создание загрузочного образа EFI и установить свойопция загрузки по умолчанию для этого двоичного файла.Это наиболее полезно, если вы включаете двоичный файл как часть вашего ПЗУ, но может быть немного сложно настроить файловую систему так, чтобы она воспринималась как обычная опция загрузки.

В на этот вопрос , Николас Эмбри дал хороший ответ, но мне не удалось найти какой-либо ресурс для дальнейшего изучения темы, которую он упомянул.Любая помощь будет оценена.Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Добавляя к ответу unixsmurf, я решил, что именно в спецификации UEFI будет автоматически искать имя файла / расположенное в EFI / BOOT / bootx64.efi.При создании приложения UEFI, которое предназначено для автоматической загрузки машиной при загрузке, просто поместите приложение по указанному пути.В сочетании с тем, что упоминалось в unixsmurf, я могу заставить компьютер автоматически загружать любое приложение UEFI во время загрузки.

0 голосов
/ 25 апреля 2018

bcfg, так же как и efibootmgr в Linux, в конечном итоге используют службы времени выполнения GetVariable() и SetVariable() (также доступные во время загрузки) для изменения конфигурации загрузки системы.

Оболочка UEFI,реализация команды bcfg сама является приложением UEFI.Поскольку его источник общедоступен, вы можете взглянуть на реализацию команды bcfg, в частности на функцию BcfgAdd () .

...