Дано:
- ASUS P5E-VM DO
- Intel Optane 16GB
Задача:
- Реализовать загрузку с NVME диска без промежуточных устройств (USB Drive с UEFI/GRUB/etc.)
Информация взята мной в основном из двух источников: первого и второго, за что создателям оных больше спасибо! При этом, потенциального последовавшего по ссылкам я хочу предостеречь от чтения только первого поста.
В любом случае, нам для решения задачи понадобятся инструменты и информация. Инструменты — это собственно BIOS платы, OptionROM загрузчика, оснастка для модификации BIOS и OptionROM. а так же, возможно для прошивки BIOS. Информация — идентификаторы VENDOR_ID и DEVICE_ID нашего NVME устройства.
Начнем с информации!
Добыть информацию можно например, открыв свойства контроллера (не накопителя) в диспетчере устройств Windows:
А можно, и открыв свойства накопителя, но тогда надо будет смотреть ID родителя:
Так же, всегда есть альтернатива в виде консоли:
И конечно же есть GNU/Linux с lspci и огромное количество диагностического софта, который покажет DEVICE_ID и VENDOR_ID устройства NVME (контроллера, не диска!).
Продолжим с инструментами!
Т.к. у нас старый ASUS на Intel, то с долей вероятности 100% мы найдём там AMI BIOS, а значит, нам понадобится MMTOOL. Помимо оного нам понадобится OptionROM и встроенный в материнскую плату EZFLASH. Все инструменты, использованные при написании данного текста, а так же исходные и полученные файлы, доступны по ссылке. Архив содержит оригинальный BIOS версии 0902 (orig), его же, с обновленными микрокодами (771) и его же с обновленными микрокодами и NVME ROM (771NVME). Помимо этого архив содержит NvmeOpRom.bin и MMTOOL.EXE.
Имея информацию и инструменты, давайте же решим задачу и достигнем цели!
Считаю, что читатель немного умеет в MMTOOL. Если нет — стоит остановиться. Если да, то… открываем в MMTOOL образ BIOS:
Импортируем в него OPTIONROM с верным Module_ID, DEV_ID и VEND_ID. Здесь важно отметить что Module_ID всегда будет иметь значение 20 (PCI OPTION ROM), а VID (Vendor ID) и DID (Device ID) будут отличаться от накопителя к накопителю:
Сохраняемся, зашиваемся, профит:
Вместо выводов:
- Это не универсальная инструкция по модификации Legacy AMI прошивок, но на многих платах всё будет аналогично.
- Intel Optane был установлен в пассивный переходник и пробовался как в PCI-E 16x слоте, так и в PCI-E 1x слоте. Работает и там и там, ID не меняются, но я читал про ситуации, когда ID контроллера может зависеть от слота PCI-E (процессорный и чипсетный?).
- Поддержка всего этого хозяйства на Windows XP, эффективность расположения SWAP на OPTANE и пр. остаются за скобками данного повествования.
- В данном конкретном моде данной конкретной платы, доступном по ссылке выше, добавлена поддержка загрузки ТОЛЬКО С ОДНОЙ МОДЕЛИ НАКОПИТЕЛЯ. Т.к. VID и DID задаются жестко, создать универсальный мод таким способом не возможно.
Win10 уместился, и даже осталось место для тестового файла CDM, только вот в процессе теста ОС сообщила, что включила мне оптимизацию памяти:
C AWARD бы разобраться, а то на A8N-E как раз и слот PCIe x4 лишний имеется, как нарочно…
На сколько я понимаю, опромконфигом исполняемым поправить иды, и цбромом запихать… в воскресенье попробую, если будет время.
Спасибо большое!
А у вас еще есть материалы по MMTOOL?
Очень интересно было бы почитать.
https://ideafix.name/?p=2513 более ничего нет, вроде.