Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

 
Reply to this topic Start new topic
> Восстановление BIOS на материнской плате MSI
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Sep 12 2017, в 20:45
Сообщение #1


grammatikführer
Иконка группы

Сообщений: 13009

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Автор темы
Оставлю здесь историю своих мучений с материнкой MSI H81M-P32, возможно кому-нибудь пригодится.
Началось всё с неудачной попытки обновления BIOS (UEFI). Дело в том, что изначально была зашита кастомизированная версия от OEM-вендора, а я решил залить более свежую оригинальную. При этом я, конечно, получил сообщение о несоответствии подписи, но оно мне показалось недостаточно грозным, и я его проигнорировал. После обновления UEFI (и до обновления ME) компьютер перезагрузился. ME проверил подпись UEFI, удостоверился, что ключ неправильный, и на этом всё закончилось. Кирпич.
Для исправления содеянного я разжился дешёвеньким SPI-программатором CH341A, для работы с которым использовал flashrom 0.9.9 (более старые версии про такой программатор не знают). BIOS оказался зашит на классическую SPI-флешку 25 серии, а именно Macronix MX25L6436E, с которой у flashrom проблем нет.
Поскольку на материнках MSI есть разъём JSPI1, старая 9-пиновая версия которого описана тут, я надеялся, что проблем с перепрошивкой не будет. Вообще этот разъём предназначен несколько для другой цели: к нему подключается сервисная плата, на которую ставится чип, куда залит правильный BIOS, после чего с него выполняется загрузка и перепрошивается распаянный на плате чип. Разумеется, сервисной платы у меня не было, поэтому я рассчитывал просто получить через разъём доступ к флешке и прошить её программатором. Дело осложнялось тем, что у разъёма довольно редко встречающийся шаг между штырьками — 2 мм, так что пришлось вслед за программатором заказывать у китайцев ещё и соответствующий шлейф. Увы, это мне всё равно не принесло успеха.
На данной материнке (и, как я понимаю, на всех современных от MSI) используется "модернизированная" версия разъёма, 11-пиновая. Принципиальное отличие в том, что контакт CS (chip select) флешки соединён с разъёмом не напрямую, а через трёхногий элемент с маркировкой "73H", который я идентифицировал как n-p-n транзистор (не факт, что правильно, и не факт, что я правильно определил его распиновку). Коллектор(?) транзистора соединён с CS флешки, эмиттер(?) — с 5 ножкой разъёма JSPI1, а база(?) — с 9 ножкой. В целом же распиновка разъёма такая:
Код
1 VCC     | 2 ?
3 MISO    | 4 MOSI
5 CS (E?) | 6 CLK
7 GND     | 8 GND
9 CS (B?) | 10 NC
11 WP     | 12 HOLD
Казалось бы, дальше всё должно быть просто, но нет. Как я ни изощрялся, flashrom флешку не видел. Найти в интернете свидетельства успешной прошивки через 11-пиновый JSPI1 мне тоже не удалось, так что я пришёл к выводу, что это невозможно. Хотя нельзя исключать, что я недооцениваю свою криворукость; потому и привожу здесь распиновку разъёма: вдруг она не настолько бесполезна, как мне кажется.
Следующим, уже третьим приобретением у братьев-китайцев была SOIC8-прищепка, с помощью которой я подключил программатор к чипу напрямую (слегка погнув при этом одну ножку расположенного рядом злополучного JSPI1). И тут обнаружилась ещё одна хитрость: flashrom не видит флешку и при таком подключении до тех пор, пока на плату не подано дежурное напряжение. То есть надо подключить к ней блок питания, который в свою очередь подключить к сети, и только после этого флешка обнаруживается.
Вот такие команды нужны для работы с программатором (выполнять следует от рута, потому что flashrom общается с программатором по USB напрямую):
flashrom -VVV -p ch341a_spi -c MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E — поиск флешки (только для проверки работоспособности подключения к оной)
flashrom -V -p ch341a_spi -c MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E -r broken.rom — сохранение содержимого флешки в файл broken.rom (на всякий случай)
flashrom -V -p ch341a_spi -c MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E -w 7846v19/E7846IMS.190 — прошивка содержимого файла 7846v19/E7846IMS.190 на флешку
Поскольку при таком методе содержимое флешки переписывается разом — и UEFI, и ME — можно безбоязненно использовать прошивку от MSI.

P. S. В процессе мытарств обнаружил, что весьма распространено заблуждение, якобы разъём MOSI программатора надо подключать к разъёму MISO флешки, а MISO программатора — к MOSI флешки. Это не так! Правильно — MOSI к MOSI, MISO к MISO. Такие мудрёные (master out slave in и master in slave out) обозначения специально были придуманы, чтобы избежать путаницы, имеющей место у симметричных интерфейсов типа UART, где Tx одной стороны подключается к Rx другой.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
alv
bookmark
gyfbbdvkffmrljmmmwd
Sep 14 2017, в 14:00
Сообщение #2


Пенсионер в законе
Иконка группы

Сообщений: 7150

Вставить имя   :   Цитата

ОС: Cintu

Группа: Бывшие модераторы

Цитата(Bizdelnick @ 12th September 2017 - в 21:45) *
Оставлю здесь историю своих мучений с материнкой MSI H81M-P32

Вот он, прогресс! Когда-то обходились скрепкой, ныне нужен программатор последней системы...
А по существу дела - гран мерси катта рахмат за описание опыта.
Практика показала, что серъёзно попортить UEFI - достаточно просто. А вот вернуть его взад...


--------------------
Go to the top of the page
 
+Quote Post
Aliech
bookmark
gyfbbdvkffmrljmmmwd
Sep 14 2017, в 23:39
Сообщение #3


Завсегдатай
Иконка группы

Сообщений: 201

Вставить имя   :   Цитата

ОС: Debian testing/unstable
Город: Москва

Группа: Участники

Цитата(Bizdelnick @ Sep 12 2017, в 21:45) *
И тут обнаружилась ещё одна хитрость: flashrom не видит флешку и при таком подключении до тех пор, пока на плату не подано дежурное напряжение. То есть надо подключить к ней блок питания, который в свою очередь подключить к сети, и только после этого флешка обнаруживается.


Чтобы творить in-circuit, надо конечно чем-то этот самый контур запитать. Ваш КО) Беда в том, что кроме флешки запитываешь ещё и всё вокруг. Бывало, что не хватало мощности одного USB-порта, к которому был подцеплен программатор. Сам пользуюсь схемой а-ля https://www.flashrom.org/FT2232SPI_Programmer


--------------------
С уважением, Zerg
Go to the top of the page
 
+Quote Post

 Reply to this topic Start new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 17th December 2017 - в 22:47




Rating@Mail.ru