通过伪造PCIe设备来欺骗BIOS POST


0

我想让Bios POST程序相信已经安装了显卡。出现这种需求是因为有人不那么聪明地认为没有活动视频卡的电路板不应该启动。以前在其他问题中已经解决过这个问题,最深入的问题是:现代PC是否需要运行显卡?

我对BIOS /硬件交互的理解是,Bios在非常基本的通信级别上识别硬件种类,而且没有很多通道可以进行这种通信(我怀疑引脚7 A侧对地)。对于USB设备而言,可以在网络上轻松找到用于PCIe设备的识别设备性质的代码,这似乎是一个保护得很好的秘密,或者被琐事混淆。然而,这必须是教科书知识,所以如果有人知道这是指定的地方或者更好的是如何在实践中如何工作,我会很高兴。

我知道我可以通过BIOS启动电路板,拔出显卡并插入SATA适配器。所有PCIe都支持热插拔,这就是应该如何工作的。但这样做会让我重新启动一些家务活,有时会导致我延迟更新,因为我需要重新启动,因为其他原因。


当然,如果你知道如何破解特定的BIOS。不适合胆小的人,因为如果做错了你就可以把主板弄成砖头。
摩押2015年

我不认为有任何软件修改是必要的。
废话

至少我希望不是。如果PRSNT1和PRSNT2之间有接触,则电路板将为卡供电。然后Bios正在某处听。现在我需要它来听“显卡”。计划是使用一些廉价的micro somethin,感觉十六进制代码或类似。在最坏的情况下,我将不得不从实际的显卡焊接线,但这似乎有点矫枉过正。但那时它将是最简单的解决方案,但不是很整洁。
废话

你无中生有问题。知道你的主板无法在没有显卡的情况下启动,最简单,最安全,最便宜的解决方案是安装显卡。它可以是便宜的卡,它可以是二手卡。问题解决了。
misha256 2015年

还是得到了主板那启动不带显卡。即使这样做也比制造PCIe显卡模拟器更便宜,更容易。
Jamie Hanrahan 2015年

Answers:


2

USB和PCI设备识别实际上非常相似。在PCI的情况下(PCIe是相同的),信息在PCI配置头中。它们出现在可预测的,因此无法计算的位置的物理地址空间中。

配置标头的格式非常公开。有供应商代码,产品ID,子系统ID和修订号。还有一个“类”代码。显卡是030000类.USB和PCI甚至使用相同的供应商代码集 - 例如供应商0x8086是Intel。

这就是固件所寻求的。你不可能通过将几个引脚连接在一起来欺骗它。您将需要标准PCIe目标设备的框架,该框架响应具有填充配置标头的查询。

更糟糕的是:我认为制造一个与其设备ID和类代码无关的“简单”PCIe设备就足够了。你的固件会想谈谈与标准VGA寄存器接口,显卡,而不是去上班。


非常感谢。如果是这种情况,整个过程可能会通过将显卡连接到提升板布置然后简单地打开和关闭卡来解决。好吧,如果盖子打开,没有人能看到它。起初我以为你可能只是购买适合这项工作的适配器。当然,教微处理器宣称自己是一块显卡并不难。嗯,无论如何欢呼。
胡说

你不能只是“宣称自己是一张显卡”。你必须采取足够的行动,就像显卡一样,BIOS对标准VGA寄存器级接口的操作不会失败。
Jamie Hanrahan 2015年

我把这包括在声明中。我可能很天真,但我简直不明白为什么你不能只复制所有的回复。
胡说

1
“复制所有回复”。视频卡是一种非常有状态的设备 - 人们可能会说它具有与VRAM内容一样多的状态。它的反应取决于国家。为了做到这一点,你基本上建立了一个视频卡,除了VRam到显示输出部分。
Jamie Hanrahan 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.