uefi相关内容

从 UEFI 应用程序内部运行 UEFI shell 命令

我是 UEFI 应用程序开发的新手. 我的要求是, 我需要从我的 UEFI 应用程序 (app.efi) 源代码运行 UEFI shell 命令.需要有关如何执行此操作的指导. 例子, UEFI shell 中的 cp 命令用于将文件从一个路径复制到其他.我想在我的应用程序中以编程方式执行此操作(app.efi) 源代码. 编辑:我正在寻找类似于 system("com ..
发布时间:2022-01-23 08:41:21 其他开发

UEFI 是如何工作的?

我在研究引导加载程序时正好遇到了 UEFI 这个词.我可以理解一些关于 UEFI 的事情.但是,带有 UEFI 的系统在什么模式下(Real、Protected、Long)启动?如果正常的引导加载程序无法与 UEFI 一起工作,那么在处理 UEFI 时引导加载程序的替代方案是什么?除了汇编之外,我还需要任何其他编程来创建它吗? 解决方案 UEFI固件运行在64位平台的64位长模式和32位平 ..
发布时间:2022-01-11 23:25:12 其他开发

是否有 64 位 UEFI ELF 引导程序?

我有 ELF 内核.所以我需要一个引导加载程序来加载我的 64 位 ELF 文件.我不需要过时的 Legacy BIOS 引导加载程序,我需要带/不带 GUI 的 UEFI 引导加载程序. 解决方案 我有 ELF 内核.所以我需要一个引导加载程序来加载我的 64 位 ELF 文件. 你有一个 ELF 内核;所以你可能需要一个引导加载程序: 加载内核的 ELF 文件 告 ..
发布时间:2021-11-25 07:37:52 C#

组装 - 如何在 UEFI 中设置图形模式(无 VGA、无 BIOS、没有弃用)

我使用的工具:nasm、qemu-system-x86_64. 我使用的操作系统:Windows 10. 所以我在 https://wiki.osdev.org/Real_Mode_OS_Warning 查看了“实模式操作系统警告" 这篇文章似乎暗示着一切都可以在不使用 BIOS 中断的情况下完成.我知道如何加载长模式,所以我已经这样做了,但现在我被卡住了,因为直到现在我只知道 ..
发布时间:2021-11-25 06:58:16 C#

是否有 64 位 UEFI ELF 引导程序?

我有 ELF 内核.所以我需要一个引导加载程序来加载我的 64 位 ELF 文件.我不需要过时的 Legacy BIOS 引导加载程序,我需要带/不带 GUI 的 UEFI 引导加载程序. 解决方案 我有 ELF 内核.所以我需要一个引导加载程序来加载我的 64 位 ELF 文件. 你有一个 ELF 内核;所以你可能需要一个引导加载程序: 加载内核的 ELF 文件 告 ..
发布时间:2021-10-26 16:15:07 其他开发

UEFI 启动模式启动流程如何​​?

这个问题的表述和UEFI的启动顺序是什么?一样,但似乎不是我想要的.我想从指令的角度了解 UEFI 序列. 例如,在 BIOS 启动模式的情况下,以简化的方式, 计算机电源已打开. 连接到主板的 BIOS 芯片内容执行 POST(开机自检)过程. BIOS 搜索 MBR(主引导记录),该 MBR(主引导记录)在预设的引导设备顺序中具有引导签名. 如果找到带有引导签名的 MBR,则 ..
发布时间:2021-07-19 18:44:11 其他开发

我的Docker无法在Windows 10 Pro上启动

我在Windows 10专业版PC上设置Docker时遇到了一些问题.当我尝试打开它时,我得到了这个崩溃报告: 崩溃报告屏幕截图 这是框内的文本: System.InvalidOperationException:无法将发行版docker桌面部署到C:\ Users \ Imogen \ AppData \ Local \ Docker \ wsl \ distro:退出代码:-1 ..
发布时间:2021-04-24 21:17:09 其他开发

引导操作系统之前如何执行一些安全性验证?

我有一个可引导的闪存盘,其中包含自定义的Ubunto,我想将闪存盘传递给未知的人,并且它存在一些安全问题.我想确保一个不知名的人不能更改闪存盘内容.因此,我想计算闪存内容的哈希值,并在每次启动时对其进行验证,并在验证失败或哈希值不匹配时阻止启动操作系统. 为此,我应该进行引导加载程序编程,我正在寻找UEFI编程,但是我发现了一些文档和视频,而且我也不知道是选择UEFI还是BIOS. 因 ..
发布时间:2021-04-16 18:32:47 其他开发

UEFI的启动顺序是什么?

我试图在Internet上找到此问题的答案,但没有走运. 另外,在分析"edk2"文件夹(TianoCore)的源代码时,我找不到答案. P.S.我了解到,英特尔提供了很多文档,但是很难在成千上万的文档页面中找到有关引导流程的一般信息.这就是为什么我要向社区寻求帮助! 解决方案 作为 UEFI的启动顺序包括以下内容: •从全局定义的NVRAM变量中读取引导顺序列表.只有在下一 ..
发布时间:2020-07-30 21:07:48 其他开发

UEFI LoadImage挂起

我正在研究使用Bootservices函数LoadImage从内存中加载UEFI应用程序映像.函数参数为: typedef EFI_STATUS LoadImage ( IN BOOLEAN BootPolicy, IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN VOID ..
发布时间:2020-07-30 21:07:44 其他开发

如何发送至少一个“字节对"?在本地网络(UEFI DXE)上

我需要编写驱动程序(DXE),该驱动程序可以将“字节对"从虚拟机(QEMU)传输到主机系统(OS-Ubuntu).我已经阅读了《 UEFI_Spec和开发人员指南》,但是我仍然不明白,如何编写代码以及应该使用哪种协议(试图使用TCPv4,但是甚至不能使用LocateHandleBuffer). EFI_STATUS Status = gBS->LocateHandleBuffer(ByPro ..
发布时间:2020-07-30 21:07:35 其他开发

我如何在UEFI驱动程序中设置固件环境变量

在Windows应用程序中,我具有GetFirmwareEnvironmentVariableA函数来读取固件环境变量.有什么方法可以在uefi驱动程序中为此变量写一些东西,并稍后在Windows中从中读取? 解决方案 设置NVRAM变量的函数称为SetVariable(),可通过EFI_RUNTIME_SERVICES表供UEFI驱动程序使用. 要了解有关其界面和用法的更多信息,请 ..
发布时间:2020-07-30 21:07:16 其他开发

EFI应用程序错误保护写保护

我试图对我列举的文件系统进行一些写/读操作.问题是,当我要写入其他卷而不是自己的卷(fs0)时,它将返回WRITE PROTECTED错误. ... Enumerated and opened all available volumes successfuly efiStatus = root->Open(root, &token, L"xxx", EFI_FILE_MODE_READ ..
发布时间:2020-07-30 21:07:03 其他开发

UEFI解决完整路径

我正在使用GNU-EFI进行各种引导加载程序.到目前为止,我已经能够读取Boot#### NVRAM变量,所以我有一个半填充的FilePathList[],它看起来像这样(用DevicePathToStr打印): HD(Part2, SigCD0400E6-54F3-49F4-81F2-65B21E8278A8)/\EFI\Microsoft\Boot\bootmgfw.efi 当传递 ..
发布时间:2020-07-30 21:06:56 其他开发

UEFI LoadImage不支持的类型

我正在尝试使用Bootservices.loadImage从内存中加载UEFI应用程序映像.内存中的缓冲区加载了HellowWorld.efi应用程序的二进制内容.当我尝试从内存中加载它时,得到的是不受支持的文件类型. 但是,在运行时挖掘UDK内核时,我发现到处理文件头时,我无法正确地从缓冲区读取内容.他们之前的所有魔术数字都不会对齐,因此它将其视为无法识别的文件格式.但是我一直无法追踪到指 ..
发布时间:2020-07-30 21:06:51 其他开发

UEFI以编程方式添加启动选项

如何编写以编程方式从UEFI驱动程序添加启动选项的代码? 1)我尝试添加"Boot0001"变量: ZeroMem(Data, 2048); StrCpy(Data, L"Boot0001"); DataSize = StrLen(Data) * 2; Status = gRT->SetVariable(L"Boot0001", &dGuid, Attr, DataSize ..
发布时间:2020-07-30 21:06:44 其他开发

如何使用gnu-efi编译uefi应用程序?

我尝试使用gnu-efi编译uefi代码.但是我不明白如何编译我的uefi应用程序代码. 我得到gnu-efi 3.0.2,解压缩并键入make && make install.我写你好世界代码: #include #include EFI_STATUS efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_T ..
发布时间:2020-07-30 21:05:26 其他开发

使用Visual Studio构建UEFI驱动程序

我正在寻找有关如何使用Visual Studio 2012项目使用EDK2 SDK构建UEFI驱动程序的建议.我正在尝试静态链接UefiLib.lib,但失败了.我已将lib添加到链接器下的其他依赖项. #include #include EFI_STATUS EFIAPI UefiMain ( IN EFI_HANDLE ..
发布时间:2020-07-30 21:05:23 其他开发

如何为Mac系统编写自定义引导程序?

我在汇编中编写了一个小的引导程序,它使用BIOS中断,并且在我的PC上运行良好.我的问题是,是否有可能使其在Mac/Apple系统上运行.我知道Apple在这种意义上不使用BIOS,并且它们将很多东西都锁定了下来.但是,可以在Mac上使用实时Ubuntu棒,那么是否可以从Mac上启动时运行汇编程序? 如果是,您是否知道之前做过的任何起点或参考? 非常感谢! 解决方案 我的问题是, ..
发布时间:2020-07-30 21:04:16 其他开发

通过uefi shell访问BIOS/UEFI菜单设置

我想通过uefi shell脚本读取/更改一些BIOS/UEFI菜单设置. 例如,我想更改"CSM支持"设置(“启用/禁用"). 有什么办法吗? 解决方案 在更改"CSM支持"设置前后,检查uefi变量(不是shell变量),也许此设置存储在uefi变量之一中,然后您可以从Shell或简单的Shell应用程序中编辑此变量. ..
发布时间:2020-07-30 21:04:13 其他开发