Как добавить поддержку nvme в bios
Перейти к содержимому

Как добавить поддержку nvme в bios

  • автор:

Как добавить поддержку NVMe в UEFI?

Фырки всем.
Имею матплату B75M-D3H и PCIe SSD. Биос в NVMe не умеет и как загрузочный его использовать не может, и потому приходится городить костыли с загрузчиком на файлопомойке, а это фу, не хочу и надоело.
Последний оригинальный биос на офсайте — 15F. По интернетам ходит архив неизвестного происхождения с 16D, и на нём NVMe опознаётся, но перестаёт корректно работать Nouveau и появляются артефакты в «текстовом» режиме. Наверняка ещё что-то сломано, особо не тестил.
В интернетах есть много историй успеха с запаковкой в родной биос модуля из TianoCore через UEFITool, но повторить не удалось — софтина просто засеривает™ связанные с редактированием пункты меню при открытии моего дампа — не важно, скачанного с офсайта или сделанного через flashrom.
ЧЯДНТ?

izzholtik ★★★
05.06.21 20:55:09 MSK

На вин рейде чуваки с такой же мамкой пишут что им саппорт гиги выслал нужный биос, смотрел? Или просто свободное время есть?

cobold ★★★★★
( 05.06.21 21:10:44 MSK )
Ответ на: комментарий от cobold 05.06.21 21:10:44 MSK

Просрать кучу времени на фигне — это мы всегда пожалуйста.
Занятный сайт, спасибо.

izzholtik ★★★
( 05.06.21 21:12:53 MSK ) автор топика

Хоть цифровую подпись проверяйте песчаных прошивок, и сканируйте их на вирусы: UEFI, вопрос по аудиту

anonymous
( 06.06.21 11:15:49 MSK )
Ответ на: комментарий от anonymous 06.06.21 11:15:49 MSK

параноик, зачем ты вылез из своего загона?

Включаем поддержку NVMe на старых материнках на примере Asus P9X79 WS

Привет Хабр! В голову мне закралась мысль, и я ее думаю. И придумал. Все дело в жуткой несправедливости производителя, которому абсолютно ничего не стоило добавить модули в UEFI Bios для поддержки загрузки с NVMe через переходники на материнках без слота m.2 (что, к стати, без вопросов реализовано китайцами на материнках HuananZhi). Неужели не возможно — подумал я и стал копать. Нарыл кучу нерабочих советов, пару раз окирпичил материнку, но я добился своего. В этой статье я почерпнул львиную долю полезной информации. Но и тут достаточно много подводных камней. Например совершенно не ясно в какой индекс записывать модули. Итак, начнем модифицировать наш биос. Внимание! Данный материал применим ТОЛЬКО к AMI Aptio Bios и ни к одному другому, так что если у вас не оно — смело проходите мимо.

Для начала скачаем инструменты. Распаковав в удобную папку скачаем биос от ближайшей модели с поддержкой NVMe (Для P9X79 это Sabertooth X99) и оригинальный биос для нашей материнки. Кладем скаченные биос в папку с инструментами, запускаем MMTool и открываем биос с поддержкой NVMe:

2019-12-19-22-43-36

Затем идем на вкладку Extract, находим и извлекаем нужные нам модули (NvmeInt13, Nvme, NvmeSmm), имена набираем идентичные с расширением .ffs и жмем Extract, опции оставляем «As is»:

2019-12-19-22-54-15

Когда все модули извлечены, открываетм командную строку от администратора и идем в папку с инструментами\AFUWINx64

Там снимаем дамп:

afuwinx64.exe Extracted.rom /O

Переходим к MMtool и открываем наш дамп.

2019-12-19-23-02-28

Переходим на вкладку Insert и ОБЯЗАТЕЛЬНО кликаем в поле на индекс 02 (для разных материнок индексы могут отличаться, смотрите на индекс, в котором изначально лежали модули NVMe и сравнивайте содержимое с целевым Bios).

2019-12-19-23-07-16

Далее жмем Browse и находим наши извлеченные модули:

2019-12-19-23-09-52

Нажимаем Insert (опция «As is») и повторяем действие для остальных модулей, соблюдая порядок, как в биос с поддержкой NVMe (У меня NvmeInt13, Nvme, NvmeSmm). Затем находим наши новые модули в списке дабы убедится что все они на месте и в правильном порядке:

2019-12-19-23-16-07

Жмем Save Image As и сохраняем модифицированный биос в папку AFUWINx64. В ту же папку помещаем оригинальный биос нашей материнки и приступаем к прошивке. Сначала шьем оригинальный биос, дабы обойти защиту:

afuwinx64.exe P9X79-WS-ASUS-4901.CAP

Затем шьем наш модифицированный:

afuwinx64.exe P9X79-WS-ASUS-4901-NVME.rom /GAN

Соответственно имена файлов подставляем свои. После перезагрузки наш биос будет уметь загружаться с NVMe.
После обновления биос вы обнаружите кучу устройств с восклицательным знаком в диспетчере. Лечится это просто: скачайте драйвер чипсета от материнской платы-донора модулей и установите их на целевой машине.

ВСЕ ДЕЙСТВИЯ ВЫ ПРОДЕЛЫВАЕТЕ НА СВОЙ СТРАХ И РИСК, АВТОР МАТЕРИАЛА НИКАКОЙ
ОТВЕТСТВЕННОСТИ НЕ НЕСЕТ!

  • Высокая производительность
  • Хранение данных
  • Старое железо
  • Накопители
  • Настольные компьютеры

evlanoff

Добавление поддержки загрузки Windows с NVMe накопителя в материнскую плату GA-H87-HD3

Данная материнская плата была выпущена компанией Gigabyte в далёком 2013 году. На сегодняшний день материнская плата не потеряла своей актуальности для работы. Со временем, конечно же, пришлось увеличить размер оперативной памяти, заменить процессор на более производительный серверный Intel Xeon E3-1246 v3, который вышел дешевле, чем изначально установленный Intel core i5 — 4570. Захотелось, конечно же, использовать более быстрый накопитель под операционную систему. Однако на материнской плате для этого отведено всего 6 SATA III разъёмов, которые ограничены по скорости чтения/запись приблизительно 500 Мб/с при использовании SSD накопителей. На самой плате отсутствует m.2 разъём для подключения сверх быстрого NVMe накопителя. О том как его добавить и заставить грузиться с него операционную систему и пойдёт речь.

На материнской плате представлены 2 PCI-E разъёма 16x, которые работают в режиме 16-4 (PCI-E 3.0 + PCI-E 2.0). Чтобы подключить NVMe накопитель потребуется специальный переходник.

Данный адаптер подключается в один из слотов PCI-E. Сам по себе факт подключения данного адаптера с установленным NVMe накопителем не даёт возможности загружаться с него. BIOS не видит данный накопитель. Чтобы добавить такую возможность потребуется всего лишь добавить драйвер в прошивку BIOS и перепрошить этой прошивку микросхему BIOS материнской платы.

Что нам потребуется:

  • Прошивка с официального сайта Gigabyte
  • Утилита UEFITool
  • Драйвер добавляющий поддержку NVMe

Запускаем UEFITool, нажимаем File — Open Image file…

Выбираем файл прошивки скаченный с официального сайта Gigabyte. Файл распаковать, в окне открытия в нижнем правом углу выбрать All files либо переименовать файл прошивки добавив расширение .rom.

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

Теперь необходимо найти секцию, куда необходимо добавить драйвер NVMe. Для этого нажимаем File — Search… в появившемся окне делаем всё так же, как показано на изображение ниже.

Нажимаем Ок и если вы ввели всё верно, то увидите следующее изображение.

Стрелкой отмечена строка, на которую необходимо нажать 2 раза левой кнопкой мыши. Вы должны оказаться в разделе DXE Volume файла BIOS, где хранятся EFI драйверы, куда вы должны будете добавить драйвер NVMe. Ниже приведён пример того, что вы должны увидеть.

Красным выделены некоторые DXE драйверы для примера. Теперь необходимо найти последний GUID, у которого Subtype имеет значение DXE driver. В нашем случае это будет CspLibDxe, как приведено на картинке ниже.

Нажимаем правой кнопкой мыши на GUID DXE driver CspLibDxe и в появившемся меню выбираем Insert after…

Выбираете распакованный драйвер NvmExpressDxe_4.ffs и нажимаете Открыть. Драйвер будет добавлен в самый конец списка.

Если появится сообщение File size exceeds the Volume size, то необходимо либо использовать драйвер урезанный по размеру, либо удалить какие-то неиспользуемый драйвера из прошивки. Например, все связанные с UEFI network boot (от DpcDxe до Udp6Dxe), если вы ими не будете пользоваться. Данный совет скорее общий, так как к GA-H87-HD3 не имеет отношения.

Сохраняем получившийся файл прошивки. Нажмите File — Save image file… В конце сохранения появится окно с вопросом Open reconstructed file? Нажмите обязательно Yes. Иначе придётся повторять процедуру заново.

В открывшемся окне вновь нажимаем File — Search… и как выше приводился пример вписываем DXE. Вновь в появившемся списке результатов выбираем самую последнюю строчку. Если вы сделали всё правильно, то самый последний GUID, у которого Subtype имеет значение DXE driver, будет NvmExpressDxe_4.

Прошить микросхему BIOS можно несколькими способами:

  • Воспользоваться фирменной утилитой Gigabyte @BIOS — самый простой способ
  • Создать загрузочную флешку с DOS (при помощи утилиты Rufus), в которую закинуть файлы из архива с прошивкой BIOS от Gigabyte. Файлы Efiflash.exe, autoexec.bat и H87HD3.F10 поместить на флешку в корень. Перезагрузить компьютер и загрузиться с флешки, автоматически начнётся перепрошивка BIOS.
  • Воспользоваться программатором

Сама прошивка микросхемы BIOS рассмотрена не будет, выбираете удобный способ для себя самостоятельно.

Как видно из скриншота NVMe накопитель (A-Data XPG SX6000 Pro ASX6000PNP-256GT-C) единственный в системе, установлен в 16x PCI-E 3.0, ввиду отсутствия дискретной видеокарты. Бенчмарков скорости делать не стал. Накопитель работает через адаптер на заявленных производителем скоростях. В 16x PCI-E 2.0 скорость на чтение/запись не превышает ~900 Мб/с.

Статья была написана под влиянием данной статьи [HowTo] Get full NVMe support for all Systems with an AMI UEFI BIOS. По заверениям автора и пользователей поддержку NVMe можно осуществить в материнские платы начиная с 6 серии чипсетов от Intel.

PS. Адаптер приобретён на всем известном сайте за совсем бюджетные деньги ~165Р. На момент написания статьи цена может быть выше или товара нет уже в наличии.

PPS. Установка Windows 10 на данный накопитель прошла без проблем. В BIOS накопитель будет отображаться как устройство PATA SS:

SamPawno

Модификация BIOS для поддержки NVMe m.2 ssd дисков

  • Перейти на страницу:

Дим Автор темы, Администратор Дим Автор темы, Администратор Сообщения: 1605 Зарегистрирован: 5 апреля 2013 С нами: 10 лет 6 месяцев

#1 Дим » 18 июля 2020, 13:57

Все манипуляции вы делаете на свой страх и риск. Автор не несёт ответственности за испорченное вами оборудование.

Успешно модифицирован BIOS плат:

GA-B75M-D3V ver — 1.0 — Intel
P8Z77-V LX — Intel
H61M-VG3 — Intel
970A-DS3P ver — 2.1 — AMD
GIGABYTE GA-970A-UD3P, ver.1 — AMD
S2600CW — Intel модифицированный BIOS от пользователя форума egor500

S2600CW.zip (7.86 МБ) 285 скачиваний

Вступление

Понадобилось мне установить m.2 ssd диск на материнскую плату P8Z77-V LX. Так как разъёма на не ней нет, то был куплен переходник — адаптер, M.2 NVMe SSD для PCIE 3,0X16

переходник — адаптер, M.2 NVMe SSD для PCIE 3,0X16

переходник - адаптер, M.2 NVMe SSD для PCIE 3,0X16.png

переходник — адаптер, M.2 NVMe SSD для PCIE 3,0X16 переходник — адаптер, M.2 NVMe SSD для PCIE 3,0X16.png (599.02 КБ) 37035 просмотров

Установив диск, установленный на адаптер, в PCIE 3,0X16 система почти без труда обнаружила его. А вот в BIOS он не захотел отображаться, следовательно и установить на него систему (Windows) я не смог. Для того чтобы BIOS смог инициализировать диск, нужно было добавить поддержку NVMe m.2 ssd дисков. В интернете нашёл инструкцию только на буржуйском языке. Вот и решил написать как я делал сам (по той инструкции).

Подходит для всех чипсетных систем Intel / AMD с BIOS AMI UEFI

Так написано на том сайте, но далее я пишу про плату P8Z77V_LX , на которую собственно и устанавливал диск.

Модификация BIOS

Что потребуется :
1. Оригинальный BIOS для вашей платы (можно скачать с сайта производителя)
2. UEFITool v0. 28. 0 — можно скачать тут или тут (ну или сами можете найти в интернете)
3. Модуль NVMe EFI
Ссылки и примечания для модуля NVMe EF Скачать
a) модуль » NvmExpressDxe_4 «( большего размера, но полностью оптимизированный для этой темы): тут и тут
b) модуль» NvmExpressDxe_Small » (гораздо меньшего размера, но с полной функциональностью): тут и тут
Или с нашего форума:

NvmExpressDxe_Small.rar ИМЯ ФАЙЛА КОММЕНТАРИЙ К ФАЙЛУ NvmExpressDxe_Small (3.72 КБ) 893 скачивания

NvmExpressDxe_4.rar NvmExpressDxe_4.rar (10.42 КБ) 896 скачиваний

Примечания:
Следует выбрать вариант » маленький «, если инструмент BIOS выдает вам сообщение» размер файла превышает размер тома BIOS » при попытке вставить один из вышеупомянутых несжатых модулей.
После успешной вставки любого из предложенных выше модулей NVMe соответствующее имя «NvmExpressDxe_4» соотв. «NvmExpressDxe_Small» будет показан соответствующим инструментом BIOS.

Модификация
Открытие файла BIOS и поиск целевого Тома DXE Открываем UEFITool и нажимаем на кнопку » Файл » далее » Открыть файл изображения. » — и перейдите в папку, где находится оригинальный BIOS.

Открыть файл изображения.png

Открыть файл изображения Открыть файл изображения.png (14.3 КБ) 37035 просмотров

Теперь нужно расширить «область BIOS», нажав на стрелки (подчёркнуты красными линиями) вы увидите подобное изображение:

расширить область BIOS.png

расширить область BIOS расширить область BIOS.png (28.82 КБ) 37035 просмотров

Что бы долго не ковыряться в структуре BIOS и быстро найти DXE драйвера, будем пользоваться поиском самой программы UEFITool.

поиск программы UEFITool.png

поиск программы UEFITool поиск программы UEFITool.png (22.99 КБ) 37035 просмотров

Переходим на вкладку » Текст «и вводим слово » DXE » в текстовое поле (опция » Unicode » будет отмечена по умолчанию)

вводим слово DXE.png

вводим слово DXE вводим слово DXE.png (28.72 КБ) 37035 просмотров

Жмём » OK » И дважды щелкните на любой строке » сообщения «, которую вы можете увидеть в нижней части графического интерфейса UEFITool .

два щелчка на любую строку.png

два щелчка на любую строку два щелчка на любую строку.png (37.67 КБ) 37035 просмотров

В результате получается картина, подобная этой:

сжатый раздел драйвера DXE.png

сжатый раздел драйвера DXE сжатый раздел драйвера DXE.png (53.66 КБ) 37035 просмотров

Как вы можете видеть, теперь вы находитесь в » сжатом разделе » драйвера » DXE » (любой, не имеет значения).
Это подтверждает, что вы теперь находитесь в пределах Тома DXE BIOS (место, где хранятся модули EFI ).
Если вы закроете подпапки соответствующего идентификатора драйвера DXE , нажав на стрелку перед ним, вы получите изображение, подобное этому, где перечислены все идентификаторы GUID , которые находятся внутри Тома DXE :

идентификаторы GUID.png

идентификаторы GUID идентификаторы GUID.png (47.21 КБ) 37035 просмотров

Убедитесь, что целевой том DXE содержит модуль с именем » CSMCORE «.

Причина : некоторые биосы содержат более 1 объема DXE, но только один с модулем CSMCORE подходит для вставки изначально не присутствующего модуля EFI.

модуль с именем CSMCORE.png

модуль с именем CSMCORE модуль с именем CSMCORE.png (50.53 КБ) 37035 просмотров

Примечание : в очень редких случаях, когда модуль с именем CSMCORE отсутствует в списке, вы должны искать самый верхний том, который содержит модули с буквами » DXE » в их имени. Вставка модуля NVMe После того, как вы расширили объем DXE , прокрутите его до самого низа.
Вот соответствующая картинка ( в данном примере это файл DXE с именем «ProjectDXE», но — в зависимости от конкретного BIOS — он может иметь любое другое или даже не иметь имени):

объем DXE.png

объем DXE объем DXE.png (53.06 КБ) 37035 просмотров

Щелкните правой кнопкой мыши на » DXE driver «, выберите опцию » Вставить после. «

Щелкните правой кнопкой мыши на DXE driver.png

Щелкните правой кнопкой мыши на DXE driver Щелкните правой кнопкой мыши на DXE driver.png (56.79 КБ) 37035 просмотров

перейдите к файлу модуля EFI NVMe, который вы хотите вставить (он должен иметь суффикс * .ffs ), и дважды щелкните на нем.

файл модуля EFI NVMe.png

файл модуля EFI NVMe файл модуля EFI NVMe.png (8.68 КБ) 37035 просмотров

Сделав это, вы увидите такую картину:

NvmExpressDxe_4 NvmExpressDxe_4.png (54.18 КБ) 37035 просмотров

Примечание : Если в объеме DXE не достаточно места для вставки дополнительного модуля, вы получите сообщение » размер файла превышает размер тома «. В этом случае может потребоваться удалить другой «драйвер DXE», чтобы получить необходимое свободное пространство в объеме DXE . Вы можете безопасно удалить все сетевые драйверы из DpcDxe в Udp6Dxe, если не используете сетевую загрузку UEFI .
Не забудьте сохранить модифицированный BIOS в качестве заключительного шага процедуры моддинга — » Файл » > » Сохранить файл изображения. «или нажав CTRL+S .
Проверка успешной вставки Сразу же после того, как вы сохранили модифицированный BIOS, UEFITool предложит вам открыть восстановленный файл. Нажмите на кнопку » Да «.
Если вы уже закрыли UEFITool , вам придется повторно запустить инструмент, как написано выше.
Разверните содержимое » региона BIOS » и его идентификаторов GUID , пока вы не найдете конкретный идентификатор GUID , который содержит модули подтипа » драйвер DXE «.
Прокрутите вниз и найдите » драйвер DXE «с текстом » NvmExpressDxE_4 resp » resp. » NvmExpressDxe_small » (в зависимости от того, что вы вставили).
Разверните подразделы недавно вставленного модуля NVMe , щелкнув по стрелкам вниз.
Это то, что вы должны увидеть:

вставленный NvmExpressDxe_4.png

вставленный NvmExpressDxe_4 вставленный NvmExpressDxe_4.png (50.74 КБ) 37035 просмотров

Предупреждение : чтобы избежать дальнейших проблем после прошивки модифицированного BIOS, я рекомендую срочно сравнить оригинальный и только что модифицированный BIOS относительно нижних перечисленных модулей «Т ома DXE «. Единственное отличие должно заключаться в том, что новый драйвер DXE называется » NvmExpressDxe_4 » resp. » NvmExpressDxe_small «. Все остальные перечисленные модули должны быть не затронуты модификацией BIOS.
Если все выглядит нормально, вы можете быть уверены, что соответствующий модуль был правильно вставлен в правильный раздел GUID, и вы можете закрыть UEFITool .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *