Рассмотрев варианты снятия дампов в теме Снятие полного дампа памяти с КП Antminer на SD-карту и Снятие полного дампа памяти с КП Antminer S9 по TFTP мы теперь знаем, как получить полный дамп NAND памяти через u-boot.
В статье Прошиваем контрольку дампом по UART с TFTP сервера мы научились прошивать КП по протоколу TFTP.
Теперь рассмотрим вариант прошивки контрольной платы через u-boot дампом, находящимся на SD-карте.
Контент доступен только участникам форума
Так же нам потребуется u-boot, поддерживающий команды «load mmc», поскольку не на всех КП в u-boot есть эта поддержка.
Контент доступен только участникам форума
Скачиваем u-boot и распаковываем содержимое на sd-карту, отформатированную в FAT32.
Контент доступен только участникам форума
На флешке нет загрузочного образа, по этому загрузку можно не прерывать. Запуск всё равно вывалится в режим u-boot.
Контент доступен только участникам форума
Я буду прошивать для примера контрольную плату от Antminer S9. На SD карте есть дамп, снятый с контрольной платы, прошитой Braiins-OS. Вы можете предварительно закинуть свой дамп на SD карту.
Дампы хранятся в директориях по модели асика. В моём случае в директории s9 находятся 4 файла дампа bos1, bos2 и т.д.
Первым делом убедимся, что u-boot видит SD карту:
Контент доступен только участникам форума
Результат должен быть похожим на это:
Контент доступен только участникам форума
Далее скачиваем 1 файл в ОЗУ контрольки:
Контент доступен только участникам форума
Терминал подвиснет на время скачивания в итоге мы получим строки:
Контент доступен только участникам форума
Это говорит о том, что файл успешно закачался в ОЗУ.
Но прежде чем отправить данные с ОЗУ в NAND необходимо очистить память, для этого вводим:
Контент доступен только участникам форума
На этом этапе проверяем состояние памяти.
Контент доступен только участникам форума
Если bad block у нас 4 строки, то это нормально.
Если их намного больше, то такая контрольная плата требует замены NAND.
Очистив NAND записываем 1 часть из ОЗУ:
Контент доступен только участникам форума
Через несколько секунд терминал вернёт результат:
Контент доступен только участникам форума
Можно скачивать 2 файл:
Контент доступен только участникам форума
и после записывать его в NAND:
Контент доступен только участникам форума
далее 3 файл:
Контент доступен только участникам форума
снова в память:
Контент доступен только участникам форума
Ну и 4 файл:
Контент доступен только участникам форума
Записываем в NAND:
Контент доступен только участникам форума
На этом этапе контрольную плату можно считать прошитой.
Отключаем питание, вынимаем SD карту и переставляем перемычку на загрузку с NAND.
Снова подаём питание на КП и наблюдаем загрузку прошивки:
Нажимаю Enter в терминале и вижу, что всё работает:
Ввожу ifconfig
, вижу, что контролька получила IP. Сеть работает.
Обращаем внимание, в строке HWaddr MAC адрес так же был перенят из дампа.
Если мы прошьём к примеру 3 контрольке таким образом, то при подключении их одновременно в 1 сеть, возникнет конфликт адресов. И в сети будет видна только 1 КП, первая получившая IP адрес от коммутатора.
Имейте это в виду!
Я накидал скрипт, генерирующий уникальные MAC адреса.
Переходим на страницу с генератором.
Нажимаем Генерировать и копируем полученный адрес.
Для прошивки MAC на Braiins-OS синтаксис команды такой:
Нажмите чтобы развернуть
Для прошивки MAC на Braiins-OS синтаксис команды такой:
Нажмите чтобы скрыть
Контент доступен только участникам форума
Для простой прошивки (Stock, Vnish и пр.) синтаксис в 2 строки:
Нажмите чтобы развернуть
Для простой прошивки (Stock, Vnish и пр.) синтаксис в 2 строки:
Нажмите чтобы скрыть
Контент доступен только участникам форума
Для S9k и схожих:
Нажмите чтобы развернуть
Для S9k и схожих:
Нажмите чтобы скрыть
Контент доступен только участникам форума
У меня прошивка Braiins-OS, по этому я ввожу:
Контент доступен только участникам форума
После перезагрузки проверяю адрес:
Вижу, что HWaddr сменился на A2:10:0B:09:1C:07
То же самое проделываю для остальных контролек.
Теперь все контрольные платы видны в сети и у каждой свой уникальный MAC.
Небольшое отступление по генератору MAC
Нажмите чтобы развернуть
Небольшое отступление по генератору MAC
Нажмите чтобы скрыть
Прошитые контрольки, которым я присвоил MAC через генератор я могу вводить в таблицу учёта.
Так например, получив по гарантийному ремонту контрольную плату с MAC адресом, начинающимся с A2 я проверяю его на странице генератора.
Выбираю действие «Расшифровать», вставляю MAC в поле «MAC адрес для анализа»
(например a2:10:0b:09:1c:07)
Нажимаю «Расшифровать» и получаю результат:
MAC address: a2:10:0b:09:1c:07
This MAC by Vinogradov
Date create MAC: 11.04.2023
Time create MAC: 09:28:07
Теперь я вижу, когда и во сколько я ремонтировал эту контрольную плату и присваивал ей MAC.
Это иногда бывает очень удобно.
Материал подготовил: @Vinogradov
Копирование и распространение с разрешения автора.