问题标签 [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.

0 投票
1 回答
2073 浏览

security - UEFI Bios 和 SEC 阶段

我的 bios 知识非常基础,但每次我阅读一些有关 UEFI 的文件时,我都不明白为什么 SEC 阶段是 UEFI bios 程序的信任根。

SEC 阶段执行 PEI 的验证,但我不明白 SEC 阶段是谁或以何种方式被验证和验证的。有人可以给我一些解释吗?

0 投票
1 回答
391 浏览

linux - 自动 Debian UEFI 安装后的黑色控制台

我尝试构建一个基于 Debian 8.1 Jessie 的可重现的自动化构建环境。我基于 netinstall 映像创建了一个引导 iso 映像,并将 preseed.cfg 文件放入 int 以进行自动安装。我设法让它通过 BIOS 和 UEFI 启动,并且可以在 VMWare Workstation 11 中完全自动化地安装 KDE Developer Debian。

我还有一个服务器 iso 映像来安装一个带有 Jenkins 的 debian 服务器,包括 BIOS 和 UEFI 引导。

但是安装后,带有 UEFI Boot 的版本在启动时显示黑屏。

我可以盲目登录,使用“startx”启动 gui,然后查看我安装的 xfce 桌面。当我退出 xfce 时,控制台可用且可见。

我尝试了建议的引导参数“nomodeset”和“vga=Linux”,我在谷歌上找到了这些参数,但无济于事。

我还尝试调试启动程序,找出哪个命令导致空白屏幕,但我没有找到正确的位置来延迟启动时的进程,所以我可以看到消息何时消失(删除了安静的启动参数:-)

我也尝试重置控制台无济于事。

任何人都可以向我指出一个工具,它可以像 X 一样执行相同的“切换”,以便控制台可用?

谁能给我一些提示如何调试引导过程以找出导致此行为的命令?

我不想安装 X,因为以后这应该是一个无头服务器系统。

0 投票
1 回答
161 浏览

server - 重新启动 Dell PowerEdge R610 服务器后,VT-x 未保持启用状态?

我正在尝试使用 VCSA-6 安装 ESXi-6 和 vCenter。我启用了 VT-x 并构建了 ESXi,但是当我尝试安装设备时,由于 VT-x 出现错误消息(消息:VT-x 已禁用)。但是我确实启用了 VT-x,并且在重新启动后 VT-x 状态变为禁用。我正在使用戴尔 PowerEdge R610 服务器 (2009)。请建议我解决此问题的可能方法。赞赏。谢谢。

0 投票
1 回答
260 浏览

c - 为什么 UEFI 协议头文件为单个协议 GUID 定义宏和外部全局变量?

我是 UEFI(统一可扩展固件接口)开发的新手。我正在使用 EDK(EFI 开发工具包)。

要创建新协议,我们需要给协议一个 GUID。例如,在BlockIO协议的头文件中,我们可以看到:

(MdePkg\Include\BlockIo.h)

宏: 在此处输入图像描述

全局变量:

在此处输入图像描述

在包声明文件中MdePkg.dec

在此处输入图像描述

为什么我们需要其中 3 个来为协议提供 GUID?

(也许这个问题与 C 语言细节有关,所以我也添加了candmacros标记。)

0 投票
0 回答
1093 浏览

filesystems - uefi 无法在我机器的卷上创建文件

我正在编写一个适用于 efi 环境的应用程序(fe 可以从 EFI shell 运行)。我的问题是我无法在我的机器卷上创建任何文件。我在 WMVare 和带有 ntfs 的真实机器上测试它,甚至在带有 hfs+ 的 mac 上测试它(获得驱动程序 frim http://efi.akeo.ie/)。我可以阅读所有内容,但是当我尝试写入时,我得到了错误代码 8 (EFI_WRITE_PROTECTED)。

有没有办法避免这种保护?也许我应该更深入地使用块设备而不是文件系统(真的不想这样做)?

我的代码。驱动程序加载(我认为它工作正常,仅适用于这种情况):

文件读/写:

<---------------- 经过一番调查 ------------------------------------>

事实证明,我们对机器文件系统唯一能做的就是改变现有的文件内容。似乎这是没有几个月研究的唯一可能方法。但是,它仍然不容易做到:

我有“EFI_FILE *fileHandle”变量,可以读取我预先创建的文件。如何找到对应的 LBA(或 DiskIO 的偏移量)?

我查看了 EFI 源(来自 AMI bios 源),发现在 EFI_FILE 结构之后放置了隐藏数据:

他们像这样使用它:

但是当我尝试读取该结构时,该结构似乎没有正确的字段值(fe FILE_HANDLE 指针无效)。我不知道接下来该怎么办。没想法。。

所以,问题是:如果我有有效的 EFI_FILE 指针,我如何找到相应的 LBA(或 diskIO 的偏移量)?

0 投票
5 回答
10081 浏览

assembly - UEFI 是如何工作的?

当我遇到 UEFI 这个词时,我正在研究引导加载程序。我可以理解一些关于 UEFI 的事情。但是,带有 UEFI 的系统在什么模式下(Real、Protected、Long)启动?如果正常的引导加载程序无法与 UEFI 一起工作,那么在处理 UEFI 时引导加载程序的替代方案是什么?除了汇编之外,我还需要任何其他编程来创建一个吗?

0 投票
1 回答
6472 浏览

filesystems - 我可以使用 EFI 在本地文件系统上写入吗

我正在开发这个项目,以便在操作系统通过 EFI 应用程序启动后立即将文件写入本地文件系统。我需要知道这是否可能。如果是的话,请指导我一点。谢谢

0 投票
1 回答
955 浏览

shell - EFI 应用程序外壳脚本

我想使用 EFI shell 脚本运行我的 .efi 应用程序,可以吗?如果是,那么 startup.nsh 脚本会在每次系统启动时运行此脚本吗?谢谢。

0 投票
1 回答
75 浏览

c++ - 编译 cpp 源以仅在 c 支持下运行

我想问一个关于 c/c++ 编译的问题我有项目需要重用一个基于 Cpp 语言编写的库。但是我需要在一个仅支持 c 语言(UEFI)的平台上工作的项目中重用该库我想问:-
是否可以在 C 代码中编写一个包装 API 来调用 Cpp 库中的所有函数?

- 并且在通过 C 编译器编译所有这些(Wrap API、CppLibrary、我的源项目)之后 => 构建应用程序是否可以在我的平台(UEFI)中运行?"

(假设 Cpp 库和我的项目源在同一个编译中编译,如(visual c 2013))

谢谢

0 投票
0 回答
1017 浏览

c++ - 在uEFI中将字符串转换为无符号短整数C++

我想将字符串转换为无符号短整数。

下面是代码:

不知道如何继续。请帮助。谢谢。