问题标签 [uefi]
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.
uefi - UEFI 从内存加载图像
我正在研究使用 Bootservices 函数 LoadImage 从内存中加载 UEFI 应用程序映像。函数参数为:
我被允许提供一个源缓冲区,该缓冲区已经填充了要加载的 PE/COFF 图像。我目前正在使用 sourcebuffer,并且已经使用有效的 PE/COFF 文件内容预填充了缓冲区。我将它传递到 SourceBuffer 下并将 DevicePath 设置为 Null。我收到错误“ EFI_LOAD_ERROR Image was not loaded because the image format was corrupt or not understood
。”
我究竟做错了什么?
windows - 使用 bcdedit 添加 UEFI 固件启动项
如何使用bcdedit
. 例如,我尝试了以下步骤,但没有添加引导条目。
这将返回一个新的 guid(比如 newguid)
提前致谢。
uefi - UEFI LoadImage 挂起
我正在研究使用 Bootservices 函数 LoadImage 从内存中加载 UEFI 应用程序映像。函数参数为:
我在内存中有源缓冲区并填充了要加载的 PE/COFF 图像。
我将它传递到 SourceBuffer 下并将 DevicePath 设置为以下内容:
当我调用加载图像时,应用程序挂起。我已经设置了 Visual Studio 以允许我调试 UEFI EDK2 源并隔离了我卡住的地方。下面是我似乎卡在其中的 EDK2 调用。DevicePath 设置为我在上面设置的 mempath。我是否错误地配置了我的路径,以至于我永远不会退出下面的路径?
有关更多上下文,这是我卡住的 UDK 调用堆栈
uefi - UEFI LoadImage 不支持的类型
我正在尝试使用 Bootservices.loadImage 从内存中加载 UEFI 应用程序映像。内存中的缓冲区加载了 HellowWorld.efi 应用程序的二进制内容。当我尝试从内存中加载它时,我发现这是一个不受支持的文件类型。
然而,在运行时挖掘 UDK 核心时,我发现当我开始处理文件头时,我并没有正确地从缓冲区中读取。他们因为所有的幻数都没有对齐,所以它认为它是一种无法识别的文件格式。但是我无法追踪到我的源指针在哪里弄乱了。
我猜问题出在 UDK 源代码中,所以它在我调用函数的方式上。
代码:
我究竟做错了什么?HelloWorld.efi 是 PE/COFF,如果我直接调用它,它运行良好,所以我知道它是一个有效的 efi 二进制文件。
linux - UEFI 阻止安装 linux
作为比利时人,所有笔记本电脑都预装了 windowsTM。不知不觉中,我以为我可以安装 (K)ubuntu 就买了。我发现 UEFI 只是微软阻止你这样做的方式。它会阻止你从 USB 或 CD 启动,它不允许安装 Linux 或任何东西。
我尝试了 F2/F10 选项和设置,我取消了安全选项,禁用了安全启动,更改了启动顺序,我尝试使用兼容的笔记本电脑和运行的操作系统更改 HD,试图将它撞到我的头上,没有什么让我安装 Linux,它只是说:“找不到可启动设备”
uefi - 如何使用 gnu-efi 编译 uefi 应用程序?
我尝试使用gnu-efi
. 但我不明白如何编译我的 uefi 应用程序代码。
我得到gnu-efi
3.0.2,解压缩并输入make && make install
. 我写你好世界代码:
我的操作系统是 Ubuntu 15.04。
uefi - UDK/EDK2 内置 UEFI 应用程序挂起真实系统
我已经设置了 UDK2014 和 EDK2 源代码,并成功构建了一个在 SecMain 模拟器中运行良好的 EFI 应用程序。但是,当我将应用程序转移到真正的 UEFI 系统并运行它时,系统会挂起。我尝试了一个简单的应用程序来打印 hello world:
这是我正在测试的 UEFI 32 位系统,我的 UDK/EDK2 构建中的目标是 32 位。
相对于 UDK/EDK2 附带的 SecMain 测试环境,我是否需要做一些特别的事情来构建针对真实系统的目标?
debian - genisoimage 和 UEFI
如何在 Debian Jessie 机器上创建 UEFI ISO 映像?
当我在我的 Kubuntu 上使用 follow 命令时,一切正常
但是当我在 Debian Jessie 上运行此命令时,出现以下错误:
似乎 Kubuntu (15.04) 上的 genisoimage 和 Debian Jessie 没有相同的选项。在 Debian 上,genisomage 不支持 UEFI。
两个系统上的版本相同: genisoimage 1.1.11
但我必须在 Debian Jessie 上创建 ISO 映像。有什么解决方法吗?
authentication - Bios 加载程序
我需要一些关于 bios 加载/执行过程的解释。我需要验证 CPU 执行的 bios。我的想法是执行 MISO 数据流的 HMAC-SHA1(从 SPI BIOS Flash 到 CPU 的数据)。
问题是我不确定 MISO 数据流是否总是相同的。我做了一些尝试,我总是得到与前一个不同的数据流。流的第一部分总是相同的,过了一段时间(我没有设备来转储整个通信并获得它发生的时刻)流是不同的。我不确定,但我怀疑它是不同的,因为当计数器达到指定值并且我得到不同的嗅探值时,我可以嗅探流的几个字节。我认为嗅探过程是正确的,但我不能确定(嗅探是由 CPU 和 SPI BIOS FLASH 之间的 FPGA 执行的,我编写了 VHDL)。
我还注意到,在执行 bios 期间,CPU 至少读取了 2 倍的复位向量( 0hFFFFF0 )。
CPU是否有可能在每次开机时执行不同的步骤?您认为是否可以对数据流进行身份验证?我需要确保执行的 bios 是有效的 bios ( my bios )。
如果问题一团糟,我会道歉,但我对 BIOS 和启动程序的了解很差。
谢谢您的帮助。
freebsd - 如何在我的 uefi 引导加载程序中使用块 i/o 协议
我正在阅读 FreeBSD uefi 引导程序。但是关于 Block I/O Protocol 有一部分我无法理解。我引用了源代码。
为什么如下代码是搜索设备路径结束?