Обман BIOS POST путем подделки устройства PCIe

Обман BIOS POST путем подделки устройства PCIe

Я хочу, чтобы процесс POST в BIOS считал, что установлена ​​видеокарта. Необходимость возникла, потому что кто-то не очень умный решил, что платы без активной видеокарты не должны загружаться. Это уже обсуждалось в других вопросах, наиболее подробно:Нужна ли современному ПК видеокарта для работы?

Мое понимание взаимодействия BIOS/оборудования таково, что BIOS идентифицирует тип оборудования на очень элементарном уровне коммуникации, кроме того, не так много каналов, по которым такая коммуникация могла бы иметь место (я подозреваю, что контакт 7 A-сторона против земли). В то время как для USB-устройств коды, идентифицирующие природу устройства, легко найти в Интернете, для устройств PCIe это, похоже, хорошо охраняемый секрет или, скорее, запутанный мелочами. Однако это должно быть знанием из учебника, поэтому я был бы рад, если бы кто-то знал, где это указано или лучше как это работает на практике.

Я знаю, что могу загрузить плату через BIOS, вытащить видеокарту и подключить адаптер SATA. В конце концов, PCIe поддерживает горячее подключение, так что это то, как это должно работать. Но это делает перезагрузку своего рода рутиной, из-за чего мне иногда приходится откладывать обновления до такой степени, что мне все равно нужно перезагружать по какой-то другой причине.

решение1

Идентификация устройств USB и PCI на самом деле очень похожа. В случае PCI (PCIe то же самое) информация находится в заголовке конфигурации PCI. Они появляются в физическом адресном пространстве в предсказуемых, а значит, и исчисляемых местах.

Формат заголовка конфигурации очень публичен. Есть код поставщика, идентификатор продукта, идентификатор подсистемы и номер ревизии. Есть также код «класса». Видеокарты имеют класс 030000. USB и PCI даже используют один и тот же набор кодов поставщиков — например, поставщик 0x8086 — это Intel.

Это то, что ищет прошивка. Вы не сможете обмануть ее, соединив вместе пару контактов. Вам понадобится скелет стандартного целевого устройства PCIe, который отвечает на запросы заполненным заголовком конфигурации.

Хуже: я не думаю, что будет достаточно сфабриковать "простое" устройство PCIe, которое лжет о своем идентификаторе устройства и коде класса. Ваша прошивка захочетговорить сэта видеокарта со стандартным интерфейсом регистра VGA работать не будет.

Связанный контент