我已经使用Edk2编写了一个.efi可执行文件,并且能够在UEFI Shell中成功执行该文件。我正试图让我的文件在我的设备启动时执行,该设备正在运行Ubuntu。
有什么方法可以实现这个目标吗?
我知道实现这一点的两种方法。
BOOTX64.EFI
注意:我假设我们使用标准的x86 64位平台。
在EFI分区中创建文件夹EFIboot
。将EFI应用程序放在那里,并将其命名为BOOTX64.EFI
。就是这样。通常情况下,您甚至不需要通过efibootmgr
向NVRAM添加条目,因为许多供应商默认情况下会检查所有FAT32分区上是否存在EFIbootBOOTX64.EFI
。
EFI外壳
正如@prl在评论中提到的,如果引导管理器将EFI Shell作为第一个选项,则可以从startup.nsh
脚本自动启动EFI应用程序。我认为脚本可以简单如下:
my_program.efi
将startup.nsh
放在EFI分区的根目录中。一个缺点是,你通常会看到5秒的倒计时。