问题标签 [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 回答
1013 浏览

linux - Bios 总是跳到第一个扇区 (512B) 为什么?这是某种 BIOS 限制吗?

首先,我不是引导方面的专家,但想更好地理解它。

1) 系统引导进入 BIOS,BIOS 进入第一个引导扇区,即前 512 个字节,然后从那里读取前 440 个字节。这称为引导加载程序或引导带,此代码依次为我们做所有事情,它跳转(用于下一阶段),读取分区表,如有必要,遵循 fdisk 签名(引导标志)等。我有一个非常基本的问题。也许这将是一个愚蠢的问题:(

2)为什么 BIOS 只能读取第一个扇区(512 字节),因为这个空间很小,引导加载程序无法容纳在那里,它们必须逐级跳转。为什么 BIOS 不能读取超过 512 字节?暂时说 BIOS 能够读取前 100MB。100MB 足以容纳那里的引导加载程序,无需跳转,我们可以为它编写漂亮的全功能引导加载程序,可以为最终用户提供漂亮的 GUI。(通过创建单独的分区,UEFI 完全相同)

3) 为什么只有 512Bytes ?为什么BIOS不能超越?

4)我听说 BIOS 是为 8 位处理器设计的(也许我完全错了)。你能解释一下吗?

很抱歉描述太长,但我是stackoverflow的新手。我想添加漂亮的磁盘布局图,但它说我应该至少有 10 个声誉。提前致谢。

0 投票
1 回答
1869 浏览

driver - Access SATA drive via AHCI directly in efi shell?

If we want to access(read/write) SATA drive via AHCI in EFI shell, is there any read/write interface used for this purpose ?

That is, does EFI shell application need to implement the AHCI spec to access drive ? (build command, issue command and process the command completion...)

Or application just calls specific "read/write" interfaces(like SCSI_PATH_THROUGH in Windows) and the "EFI ahci driver" converts these to low-level access routines ?

0 投票
1 回答
1076 浏览

c - UEFI 编程 EFI_USER_MANAGER_PROTOCOL

我使用以下命令来定位EFI_USER_MANAGER_PROTOCOL:

我明白了EFI_ERROR - EFI_NOT_FOUND

现在我尝试安装协议,然后打开协议:

协议打开成功,我尝试调用函数current()

电脑死机,没有显示任何错误。

我该如何解决?

0 投票
1 回答
639 浏览

linux - 如何在 RAM 中挂载预分配的 ISO 映像

我有一个 ISO 映像(库存 Ubuntu 13.10 DVD ISO 映像)加载到操作系统前的内存中,我正在尝试从此映像启动 Linux 安装过程。GRUB 可以将映像识别为 cd,然后我可以开始安装(我正在试验 UEFI 平台,并使用 GRUB 的 UEFI 版本,因此它可以将映像识别为具有受支持文件系统的有效块设备)。

我的问题是内核找不到安装媒体(这是预期的),所以它很早就出现了恐慌。我意识到我可以编写一个简单的块设备驱动程序,以便内核可以找到映像,但是为了可移植性,有没有办法将 tmpfs/ramfs 挂载到特定的起始地址?或者有没有办法告诉内核在特定地址有一个文件系统?

谢谢

0 投票
1 回答
21593 浏览

shell - UEFI shell 映射中的 FS0 和 BLK0 有什么区别?

我认为 FS 代表文件系统,但我不知道 BLK 代表什么。不仅如此,pci层级参数背后的含义是什么。即当我看到 HD(1,MBR,0x0003B) 时,“1”、“MBR”是什么,看起来是一个地址,代表什么?

这是我在 UEFI shell 中查看的映射表:

我猜BLK是可用的端口,FS是插入这些端口的物理东西。看起来一旦某个东西插入到 BLK 中,它就会变成 FS,但仍保留其 BLK 值。ig FS0=BLK1

0 投票
2 回答
1959 浏览

uefi - UEFI 以编程方式添加引导选项

如何以编程方式编写从 UEFI 驱动程序添加引导选项的代码?1)我尝试添加“Boot0001”变量:

2) 我需要向“BootOrder”变量添加条目。但我不明白怎么做。理想情况下,我想从示例 efi 应用程序添加引导选项引导。

0 投票
1 回答
1900 浏览

uefi - 我应该总是在新的 Win 8 机器上禁用安全启动吗?

我刚刚订购了我的第一台新 PC,它将与 Windows 8 一起使用。我会等到决定天气降级到 Win 7 时。但是,我认为我应该立即禁用安全启动功能,只是因为存在砖块的风险个人电脑。

安全启动本应保护系统,但在我看来,如果出现问题并且某些硬件或硬盘驱动器发生故障,它将使系统处于完全无用的状态。即使我制作了恢复盘,由于安全引导会阻止使用刻录的媒体,它很可能会失败,并且我无法使用 Linux 引导盘进行故障排除。

从我所阅读的所有内容来看,与始终存在的完全死机的 PC 威胁相比,安全启动的所谓安全优势微不足道。从那开始,我认为我应该做的第一件事是禁用安全启动以消除这种可能性。我不应该有什么真正的理由吗?

0 投票
1 回答
2015 浏览

powershell - 如何修复此“Set-SecureBootUEFI:不正确的身份验证数据:0xC0000022”错误?

我使用教程和 UefiSecureBootManualTests.zip(EnableSecureBoot.ps1 和 append_LostCA_db.ps1)中的 PowerShell 脚本对.efi文件进行签名并启用 SecureBoot 以查看系统是否启动(一切正常)。

现在我尝试从 system32 获取 winload 文件,使用相同的脚本对其进行签名,然后覆盖密钥并查看 SecureBoot 是否允许我仅使用我签名的 winload 启动。这次我使用的是相同的脚本,除了我修改了 append_LostCA_db.ps1 中的 Set-SecureBootUEFI 命令,删除了 -AppendWrite 参数,以便它可以覆盖。

但现在我收到一个错误:

我怎样才能解决这个问题?

我正在使用带有 Win8.1 x64 的 HP 台式机

后期编辑:如果有人能给我一个 8.1 x64 的 unsinged winload,那真的很有帮助

0 投票
1 回答
1645 浏览

c - 如何使用 Visual Studio 调试 UEFI (UDK2014) Shell 应用程序

我已经从 taniacore 站点下载了 EDK (UEDK2014),并且我已经使用以下命令在调试模式下成功构建了 UEFI 应用程序

由于它处于调试模式,它将创建一个 .pdb 文件 (SecMain.pdb)。我的问题是如何使用 VS 2010 调试此二进制文件。我尝试通过运行 SecMain.exe 来做到这一点,将其附加到 Visual Studio 2010 并开始调试,但无法做到这一点。以前有人可以这样做吗(使用 VS 2010 调试 UEFi 应用程序)?如果您对此有解决方案,请告诉我。

0 投票
1 回答
759 浏览

bios - 如何让基于 UEFI EDK2 的 BIOS 自动加载位于其自身固件卷中的驱动程序?

我正在使用 UEFI EDK2 创建 BIOS。我修改了 FDF,将驱动程序(UEFI 和旧版本)从主固件卷移动到我创建的单独的固件卷 (FV) 中,以严格保存驱动程序。

在我从主 FV 移动驱动程序之前,我会在 POST 期间看到旧版 OROM 登录。但是,由于我已将驱动程序移至新的 FV,因此我不再看到旧版 OROM 登录。似乎不再加载旧版 OROM。

EDK2 似乎“自动”仅加载某些 FV,然后调度它们的驱动程序,但我无法弄清楚这些特定的 FV 在 EDK2 中是如何识别的。

我已经搜索了 EDK2 代码几个小时,试图找出 FV HOB 的创建/初始化位置/方式,但我找不到此代码。我猜我需要将新 FV 的 GUID 添加到某个列表或数据结构中,但我现在真的猜到了。

任何指针将不胜感激。