Sata 3 firmware selection что это
Как поставить операционную систему на NVME SSD с устаревшей материнской платой. Часть вторая: модификация BIOS
Содержание
Содержание
В первой части нашего материала мы узнали, как использовать в качестве загрузочного накопители NVME на старых материнских платах, не поддерживающих нативную загрузку с NVME. Теперь же рассмотрим еще один, более «элегантный и правильный» способ — модификацию биоса.
За и против
Суть модификации в том, что мы добавляем в родной биос материнской платы EFI-модуль, или Option ROM, для поддержки NVME-накопителей.
Почему этот способ более правильный, чем использование менеджеров загрузки? Вы избегаете использования дополнительной программной прослойки: никакого увеличения времени загрузки, ковыряния в конфигурационных файлах, использования флешек или других носителей для размещения загрузчика. С точки зрения пользователя, процесс загрузки операционной системы (ОС) никак не меняется.
Но ничего идеального не бывает, так и здесь есть свои минусы. В первую очередь, это уровень подготовки пользователя. В зависимости от ситуации, могут потребоваться определенные знания и умения. Во-вторых, необходимость прошивки биоса, а это и наличие программатора в идеале, и риск превратить матплату в кирпич. Последнее, впрочем, дело поправимое, если есть программатор и резервный образ биоса с платы.
Тестовый стенд
Тестовый стенд с Legacy BIOS был взят из первой части:
Для работы с AMI UEFI тестовый стенд выглядел таким образом:
Award BIOS
На тестовой плате от Gigabyte установлено программное обеспечение от Award. Это обычный (non-EFI) BIOS, и его редактирование для добавления необходимого нам модуля — задача не самая простая.
Для нашей задачи нам потребуется:
Биос платы качаем на официальном сайте (пример, как это сделать есть, тут), OpROM и утилиту для корректировки его контрольной суммы скачиваем тут (спасибо vlo), CBROM берем тут. Разархивируем все архивы, складываем файлы в отдельную папку, в нашем случае это будет award в корне диска C.
Неприятный нюанс в модификации не UEFI биос состоит в том, что потребуется конфигурировать его под определенный диск, устанавливаемы вами. В нашем случае это Smartbuy E13T, и нам потребуется узнать его идентификаторы vid и did.
Самый простой вариант — загрузиться с подключенным диском в операционную систему (Win 10, Win 8.1) с поддержкой NVME SSD. Вы можете работать не только с уже установленной ОС, но и использовать Live usb.
Открываем диспетчер устройств: правой кнопкой мыши (ПКМ) на значке меню «Пуск» — диспетчер устройств. Или пишем «диспетчер устройств» в строке поиска Windows 10.
Идем в пункт «Контроллеры запоминающих устройств», ищем «Стандартный драйвер NVM Express». Жмем ПКМ — свойства.
Переходим на вкладку «Сведения», из списка «Свойство» выбираем «ИД оборудования».
Ниже в поле «Значение» появятся строки. Первые четыре знака, после «VEN_» — это vid, после «DEV_» — это did. Сохраняем (ПКМ на строке — Копировать) или переписываем эти значения, как на примере.
Следующим этапом будет внедрение полученных vid/did в OpROM. Открываем шестнадцатеричный редактор, мы будем использовать WinHex. Идем в меню File — Open и выбираем файл ss-950.bin из папки award.
В центральной части окна программы мы видим шестнадцатеричные (hex) значения.
Нам нужно заменить четыре (выделены) первых байта (одна пара — один байт) в третьей строке (offset 00000020).
Здесь прописаны vid и did, и их нужно заменить на данные нашего диска. Но тут есть один нюанс — нужно поменять байты местами, то есть vid тестового диска 1987 нужно записать как 87 19, а did — вместо 5013, записывается как 13 50. Данные уже идут в hex-формате, поэтому записываются как есть. Вот так получилось после замены.
Сохраняем под нужным именем (в примере ss950-2.bin): File – Save as.
Открываем командную строку от имени Администратора. В Windows 10 просто пишем в строке поиска cmd, нажимаем ПКМ — Запуск от имени Администратора.
В открывшемся окне переходим в подготовленную папку (в нашем случае c:\award) командой cd c:\award.
Сейчас нужно исправить контрольную сумму OpROM после нашего вмешательства утилитой cs_fix. Вводим команду cs_fix.exe ss950-2.bin, если все прошло успешно, получаем сообщение как на скрине.
Теперь наш OpROM готов для добавления в файл биоса, но сначала посмотрим содержимое биоса. Вводим CBROM195.EXE h67md2b3.f7 /D, где h67d2hb3.f7 — название файла биоса. Вывод команды — это список всех модулей (ROM), содержащихся в файле.
Добавляем ss950-2.bin в файл: CBROM195.EXE h67md2b3.f7 /pci ss950-2.bin. На проценты не обращаем внимание.
Проверяем, что все прошло успешно: CBROM195.EXE h67md2b3.f7 /D
Сравнив две выдачи, можно увидеть, что добавилась новая запись с номером 23. В крайнем правом столбце видно, что там находится наш файл ss950-2.bin.
Прошивка BIOS
Полученный файл переносим на флешку, отформатированную в файловую систему FAT32. Заходим в биос по клавише DEL.
Сбрасываем настройки, по умолчанию выбрав «Load Fail-Safe defaults». После перезагрузки заходим еще раз в биос, нажимаем F8 для запуска утилиты-прошивальщика Q-Flash.
Делаем резервную копию установленного экземпляра биоса. Для этого выбираем пункт Save BIOS to Drive.
Утилита должна распознать установленную флешку, выбираем ее, вводим имя для сохраняемого файла.
После окончания процесса сохранения выбираем Update BIOS from Drive, выбираем файл h67md2b3.f7.
Подтверждаем, что мы хотим прошить данный файл, и ждем окончания процесса.
Нажимаем Esc для выхода, подтверждаем.
Еще раз заходим в биос. Если все было сделано верно, то в меню «Advanced BIOS Features — Hard Disk Boot Priority» появится новое загрузочное устройство — нужный нам NVME SSD.
Выбираем его как основное загрузочное устройство и устанавливаем операционную систему.
AMI UEFI
В качестве носителя UEFI от AMI была выбрана материнская плата от Asus.
Как и для модификации Award, нам потребуется определенный набор инструментов:
В качестве утилиты для работы с UEFI будем использовать UEFITool от CodeRush. А непосредственно интегрируемый модуль — NvmExpressDxe_4.ffs. Для плат, где свободного места не хватает для внедрения указанного модуля, можно использовать его «облегченную» версию — NvmExpressDxe_Small.ffs. Из пакета AFU (в нашем случае потребовалась версия AFUWIN64_v3.05.04 с поддержкой ключа /GAN) нам нужен исполняемый файл под Windows — AFUWINx64.EXE, а также amifldrv64.sys для его работы.
Для упрощения процесса производим все манипуляции из Windows, развернутой на подопытной плате. Размещаем все файлы в одной папке для удобства.
Делаем резервную копию установленного биоса. Для этого запускаем командную строку (CMD) от имени Администратора и переходим в папку с файлами командой: cd c:\ami, где c:\ami — путь к папке с нашими файлами.
Далее делаем саму резервную копию: afuwinx64 backup.rom /O, где backup.rom — имя файла резервной копии (можете назвать на свой вкус), /O — ключ для создания бэкапа. «Reading flash … done» оповестит об окончании процесса.
Теперь можно отложить окно командной строки, можно даже не закрывать — скоро потребуется. Открываем UEFITool. Идем в меню File — Open image file.
Выбираем файл бэкапа, полученный ранее (backup.rom). Откроется окно программы, нажав на UEFI image, можно увидеть структуру выбранного файла.
Теперь нужно определить, куда вставить файл модуля. Из-за сложной структуры и специфических особенностей производителей плат, вручную найти DXE том, где хранятся модули, бывает проблематично. Поэтому проще всего воспользоваться поиском.
Открываем меню File — Search или воспользуемся сочетанием клавиш Ctrl+F. В открывшемся окне выбираем вкладку Text, вводим в поле DXE, проверяем, что активирован чек-бокс Unicode и жмем «OK».
В нижней части окна, именуемой «Messages», будет выведен список совпадений.
Сделайте двойной клик левой кнопкой мыши на любой из записей и попадете в раздел, где было найдено совпадение. Ориентируемся по полю «Subtype»: если видите там «DXE driver», то вы в верной секции.
Можно также ориентироваться на модуль «CSMCORE».
Нас же интересует самая нижняя запись, после которой идет «Volume free space». В данном случае это запись с подтипом «Freeform», но это может быть и DXE driver.
Встаем на нее, жмем правой клавишей мыши и выбираем пункт Insert after.
И выбираем нужный для интеграции модуль.
Обратите внимание, что модуль должен оказаться в самом конце списка, прямо перед Volume free space. Определить его можно по имени модуля в столбце «Text».
Сохраняем полученный файл, вводим нужное имя модифицированного файла биоса (в примере mod.rom).
После того, как вы нажмете кнопку «Сохранить», вас спросят о том, хотите ли вы открыть измененный файл. Соглашаемся.
Откроется заново структура файла. Идем в раздел, куда мы вставляли модуль, и проверяем, что он там сохранился. Раскроем его запись и удостоверимся, что там есть обе (image и interface) секции.
Если все в порядке, то биос готов для прошивки.
Прошивка UEFI
Как и чем прошить биос зависит от материнской платы.
Мы же будем прошивать биос с помощью уже использованного AFUWIN. Переходим обратно в командную строку. Сначала прошиваем оригинальный файл биоса с сайта (той же версии, что и установленный на плате) командой afuwinx64 6701.cap, где 6701.cap — имя файла оригинального биоса (переименован для простоты ввода).
Когда все этапы успешно выполнятся, сразу прошиваем модифицированный биос командой afuwinx64 mod.rom /GAN, где mod.rom — файл биоса с интегрированным модулем поддержки NVME, а /GAN — ключ для прошивки. Без данного ключа на этой плате биос прошиваться категорически отказывался.
После окончания прошивки выключаем ПК, вставляем наш SSD и проверяем, доступен ли он в списке загрузочных устройств биос.
Если бы наша тестовая плата поддерживала USB Flashback, то можно было бы просто модифицировать файл, скачанный с сайта, переименовать его в соответствии с требованиями USB Flashback (для этого можно воспользоваться утилитой BIOS Renamer for USB BIOS Flashback), закинуть файл на флешку и прошиться по инструкции к плате. Это считается самым удобным и правильным вариантом для плат Asus.
Мы рассмотрели два варианта добавления поддержки загрузки с NVME дисков: для Award (Legacy) BIOS и AMI UEFI. Постарались осветить нюансы и проблемы, с которыми встретились в процессе модификации. Но поскольку производителей много, и каждый может иметь свои специфичные особенности биоса, невозможно охватить все нюансы по данной теме.
ПЕРЕПРОШИВКА БИОС ВИНЧЕСТЕРА HDD
Какое-то время назад мне один знакомый инженер электронщик подарил жесткий диск, который не определялся в BIOS и компьютер подвисал на минуту, на этапе определения жестких дисков при старте компьютера. Погуглив в интернете, а жесткий диск был Maxtor 500 Gb SATA 2, нашел что эта проблема была актуальна для выпущенных несколько лет назад жестких дисков брендов Maxtor и Seagate.
Связана она была с глюком прошивки BIOS жесткого диска и большая часть дисков этой проблемной серии, там было несколько линеек, требовали обязательной перепрошивки иначе в один прекрасный момент отказывались определяться в БИОС материнской платы, при старте компьютера. Проблема заключалась в том, что прошить жесткий диск можно только тогда, когда он виден в BIOS. Как и всякий человек имеющий программатор, сперва полез искать Дамп прошивки, решив снять плату винчестера и прицепившись специальной клипсой для прошивания соединенной с программатором, просто перекатить прошивку.
Клипса для прошивания программатором
Комплекс восстановления жестких дисков PC3000
Поэтому перепрошить неопределяющийся в BIOS жесткий диск не имея очень дорогостоящего специального обрудования для диагностики и реанимирования жестких дисков было нереально. Значит на первоначальном этапе нам нужно, чтобы наш винчестер стал хотя бы виден в BIOS. Для этого нам нужно удалить проблему, имеющую в среде специалистов и просто айтишников название “Муха ЦЦ” (СС). Откуда взялось такое название?
Сообщение об ошибке Муха ЦЦ
Дело в том, что подключаясь к терминалу жесткого диска с помощью переходника USB-UART, с которым мы ознакомились в прошлой статье, с помощью программы Putty или HyperTerminal, предустановленной в Windows XP но не входящей в дистрибутив Windows 7, мы видим прерывание загрузки и диагностическое сообщение в котором имеются буквы “СС”. Сам текст сообщения бывает такой как на скрине выше.
Это означает, что вы счастливый обладатель жесткого диска из этой проблемной серии. Вкратце опишу (подробно процесс был описан в предыдущей статье), как подключить подобный конвертер USB-UART, который также называют еще USB-TTL. Мы должны обязательно подключить общую землю идущую с переходника USB-UART и “перекрестив” пины RX и TX, соединив RX с TX, а TX с RX. Эти пины находятся на задней стороне корпуса жесткого диска рядом с разъемами SATA и питание.
Адаптер USB-TTL CH340G
Как уже написал в прошлой статье посвященной применению данного адаптера USB-UART, для перепрошивки, вернее управления процессом перепрошивки роутера, нам будет нужно правильно экспериментально подобрать скорость СОМ порта, обычно это скорости 33600, 57600, и 115200 Бод (другие скорости не встречал) в консоли. Иначе, если скорость будет подобрана неправильно, мы увидим как и в случае перепрошивки роутера кракозябры, вместо обычного английского текста.
Итак, мы правильно настроили консоль. Правильно выбрали в терминале нужный СОМ порт.
Напомню, что данный адаптер USB-UART стоит всего приблизительно 40 рублей на Алиэкспресс и может иметь в своем составе различные микросхемы, все они перечислены в предыдущей статье. Для тех, у кого нет возможности приобрести данный адаптер, существуют варианты подключения в консоли с помощью Data кабеля для перепрошивки древних телефонов.
Теоретически (ведь мы же электронщики, а не айтишники, по крайней мере большая часть из нас) мы сможем перепрошить жесткий диск вообще не имея никакого адаптера, согласовав с помощью резисторов логические уровни RX и TX, идущие с COM порта, (питание с COМ порта брать не рекомендую из-за риска перегрузить порт), которые есть на каждом древнем системном блоке. Но здесь есть один нюанс, почему я не рекомендую этот способ новичкам.
Это и является причиной того, что всеми любимый (и мной, в том числе) программатор Громова для МК AVR, собранный несколько лет назад, отказывается работать с некоторыми относительно современными материнскими платами и ноутбуками, потому что применив резисторы стандартного номинала для этой схемы мы получаем слишком низкие по напряжению логические уровни, уже не соответствующие логической единице по вольтажу, при программировании микроконтроллеров AVR, а соответственно, наш программатор выдает либо логический ноль вместо единицы, либо вообще мусор, который не всегда правильно идентифицируется при прошивании микроконтроллера.
Код прошивки оболочка программатора
То же самое, мусор при записи прошивки в память микроконтроллера, мы можем получить используя длинные неэкранированные кабеля или провода, например СОМ или LPT для самодельных программаторов, либо уже от программатора к прошиваемому микроконтроллеру. По этой же причине, когда я вижу на видео, например на Youtube, провода длиной 30-40 см и длиннее, от подобного USB-UART адаптера или самодельного программатора МК AVR или Flash или EEPROM памяти, то удивляюсь технической безграмотности людей не понимающих последствий своих действий.
Флеш память BIOS DIP-8 корпус
Ошибка при верификации МК
В таком случае обязательно нужно пройти верификацию сохраненного дампа с прошивкой, находящейся в памяти микросхемы, хотя если пишется\читается мусор, то скорее всего и при верификации могут быть ошибки, даже с правильно сохраненным дампом. В общем этого лучше не допускать. В случае с адаптером USB-UART, если у нас в терминале выскакивают непонятные символы, это как раз повод задуматься о том, что надо сделать соединительные провода покороче.
Длинные провода от адаптера USB-TTL
Отличия шлейфов IDE
Подключение адаптера при перепрошивке
Затем нужно будет погуглить, в зависимости от вашей модели винчестера и производителя, какие манипуляции надо произвести с жестким диском, для того чтобы получить возможность набирать текст в консоли. Насколько помню, там всего три-четыре варианта. Для этого сначала нам нужно будет остановить двигатель жесткого диска. Как это можно сделать?
Замыкаем точки на плате винчестера
Для каждого подвида проблемных жестких дисков существуют свои способы, в моем случае потребовалось замкнуть два маленьких пятака, контактные площадки на плате, в другом случае может потребоваться подсунуть кусочек офисной бумаги под контакты идущие с платы управления на двигатель (не глянцевой (!), во избежание замыкания).
Модель винчестера подверженная мухе ЦЦ
Джамперы Ардуино для адаптера
Список винчестеров подверженных мухе цц
Прошивка винчестера из образа диска
Но это еще пол дела, винчестер все еще на грани риска, так как имеет старую прошивку, проблемную, и в любой момент все может повториться. Но теперь он виден в BIOS и перешить его не составит труда, ищем образ диска с прошивкой на которой уже не будет подобных проблем, выпущенной специально производителем. Взять ее можно на официальном сайте или специализированных форумах.
Бед блоки при сканировании диска Викторией
Отремонтированный Макстор 500 Гб
Теперь у меня появился второй жесткий диск 500 Гб, на который рискнул и установил систему, прошло уже довольно длительное время и проблем в работе не замечено. Данный винчестер по скорости запись\чтение намного превосходит купленный новым в 2011 году враз с компьютером жесткий диск на 250 Гб, также Seagate, но к счастью не из проблемной линейки. Стоимость данного жесткого диска, отремонтированного б\у, на форуме нашего города составляет примерно 1000-1200 рублей, в зависимости от состояния поверхности и бренда, и даже были желающие купить его у меня, но вспоминая классику хочется сказать: такая корова нужна самому:)
Подведём итог о проделанной работе
Форум по обсуждению материала ПЕРЕПРОШИВКА БИОС ВИНЧЕСТЕРА HDD
Источник постоянного тока (CC) из понижающего регулятора напряжения (CV). Доработка готового модуля.
Увеличение мощности интегральных усилителей транзисторами. Рассматривается на примере схем LM3886 и TDA7294.
Изучение принципа действия и параметров кварцевого генератора, выбор КГ для различных устройств.