问题标签 [gnu-efi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 使用 gnu-efi 读取文件
找不到任何使用“gnu-efi”库编程 EFI 的文档。只是一个演示标准“Hello, world!”的示例。如果我知道有两个 FAT32 分区,我需要执行哪些步骤来打开和读取文件?我需要初始化哪些协议?
uefi - 如何使用 gnu-efi 编译 uefi 应用程序?
我尝试使用gnu-efi
. 但我不明白如何编译我的 uefi 应用程序代码。
我得到gnu-efi
3.0.2,解压缩并输入make && make install
. 我写你好世界代码:
我的操作系统是 Ubuntu 15.04。
gnu - 如何使用 gnu-efi 读取 EFI 分区的文件
我使用了 gnu-efi。
我不明白如何简单地读取文件。
我了解使用 BlockIOProtocol。
你能告诉我们一个简单的例子吗?
qemu - UEFI 使用 ExitBootServices 的简单示例(使用 gnu-efi)
我正在尝试使用 gnu-efi 编写一个 hello world 类型的程序,但没有引导服务,因为它们在 ExitBootServices 之后变得不可用。在调用 ExitBootServices 之前直接写入视频内存不会显示任何内容。
出于这个原因,我需要调用 ExitBootServices,它需要一个 Mapkey。MapKey 由 GetMemoryMap 函数提供。但是当我调用它时,我的应用程序崩溃了(我正在使用 qemu)。
这是我的代码:
即使在执行 ExitBootServices 之前,qemu 也会因错误而崩溃:
谁能告诉我在做什么有什么问题?谢谢你。
c - How to dump raw memory into a struct fast?
I'm in an identity-mapped memory context (UEFI on x86_64 platform) and I want to dump some contiguous memory content into a structure. Say my structure has this shape:
Supposing I have in mem_ptr
the address to the requested memory's offset 0, what's the best way to copy its content into a mystr
instance? Is there a way to do that without iterating through memory with a loop (which seems super boring)?
EDIT: Nicolas Jean suggested the use of memcpy
but unfortunately in an EFI
developing context the use of a C standard library makes little sense. However, efilib.h
from gnu-efi
has CopyMem(IN VOID * dst, IN CONST VOID * src, IN UINTN len)
which carries out the same task.
gcc - 英特尔伽利略 (i586) 的 UEFI 应用程序
我正在开发一个简单的应用程序,它将作为 UEFI 应用程序在 Intel Galileo 的板上运行。我从一个“Hello, World”应用程序开始,并在下面进行了测试qemu-system-i386
,它运行良好。然后,我在 Galileo EFI Shell 下运行它,它卡住了(什么也没发生,也没有返回任何东西——就像一个永无止境的循环)。我知道 Intel Galileo 的 Quark 处理器是 i586 架构。由于向后兼容性,在 i586 下运行为 i386 编译的应用程序应该没有问题,对吗?还是我错过了什么?
我正在使用 Ubuntu 14.04(32 位)和 GCC 5.4.0(默认)进行开发。另外,我在 3.0.4 版中使用 gnu-efi。
我应该构建一个交叉编译器吗?它会解决我所有的问题吗?有必要吗?
这是一个示例代码:
这是我的Makefile:
c - UEFI 解析完整路径
我正在使用 GNU-EFI 开发各种引导加载程序。到目前为止,我已经能够读取Boot####
NVRAM 变量,所以我有一个半填充的FilePathList[]
,看起来像这样(用 打印DevicePathToStr
):
HD(Part2, SigCD0400E6-54F3-49F4-81F2-65B21E8278A8)/\EFI\Microsoft\Boot\bootmgfw.efi
当传递给LoadImage
它时,它会失败EFI_NOT_FOUND
。据我了解(UEFI 文档第 3.1.2 节),我需要在已有的路径之前添加完整路径。我发现正确的路径是PciRoot(0x0)/Pci(0x1, 0x1)/Ata(0x0)
,但我不确定如何根据我所拥有的以编程方式找到该路径,以便将其添加到前面。
到目前为止我的代码如下,请原谅质量低下,到目前为止我一直在努力让一些东西工作。
我需要哪些功能和流程才能完全限定它,FilePathList
以便它可以与 一起使用LoadImage
?
c - UEFI 使用 RT->GetVariable 读取变量
我是编码新手。所以我尽量保持简单。我的目标是读取 uefi 变量(如供应商/序列号)并将其打印回来。我的代码将无法正常工作。我正在使用 gnu-efi。
我收到了一堆编译器警告,但它会被编译:
如果我在设备上执行它,屏幕会变为正确的红色,但不会打印来自变量的数据。只有“->”
c - 简单的 UEFI 引导加载程序 Windows 10
我基本上处于与以下完全相同的情况: UEFI Resolve full path
我遵循了他的解决方案,但EFI_NOT_FOUND
在 LoadImage 方法中总是出错。
这是我的(质量差)代码...:
}
完整路径是:PciRoot(0)/Pci(0x1D,0x2)/Pci(0x0,0x0)/Path(131,23,0x01000000002538B771B549D984012C00)/HD(Part2,SigD1377E10-FFDE-4CFB-B28D-D78CFDA52ECD)/\EFI\Microsoft\Boot\bootmgfw.efi
对我来说看起来不错...
这是我在屏幕上看到的:
我错过了什么?加载一些驱动程序或协议?如您所见,我是 UEFI 开发的新手...
linux - hello efi 的 UEFI 安全启动问题
我创建了一个 efi 并使用文档用 pesign 签名 -
UEFI 安全启动:
https://en.altlinux.org/UEFI_SecureBoot_mini-HOWTO
https://en.opensuse.org/openSUSE:UEFI_Secure_boot_using_qemu-kvm
https://en.opensuse.org/openSUSE:UEFI_Image_File_Sign_Tools
https://wiki.ubuntu.com/SecurityTeam/SecureBoot
http://tomsblog.gschwinds.net/2014/08/uefi-secure-boot-hands-on-experience/
并启动:
uefi 磁盘包含签名的 efi 文件
但是为了安全启动我需要有
这样我就可以注册 OVMF 安全启动 但是在教程中,从来没有得到这些如何生成。请建议