В предыдущей статье мы рассмотрели метод сборки образа для контролек Antminer S9 и T9+.
В данной статье мы разберёмся, как собрать образ для линейки Antminer, у которых контрольные платы собраны на базе ПЛИС Xilinx Zynq XC7Z007S. А таких моделей немало. На них собраны S9k, S15, T17+ и многие другие асики.
Для примера буду работать в КП от Antminer S9k. Но метод работает и на других моделях.
Итак, приступим. Первым делом поставим необходимые библиотеки.
В терминале вводим:
Контент доступен только участникам форума
После установки библиотек на рабочем столе создадим каталог «CreateFS_S9k»
Не забываем подставлять своё имя пользователя, вместо xilinx.
Контент доступен только участникам форума
Далее создадим каталог:
Контент доступен только участникам форума
Перейдем в наш каталог:
Контент доступен только участникам форума
В каталоге «CreateFS_S9k» создадим 3 рабочих каталога: Target, Firmware и Result:
Контент доступен только участникам форума
В каталог «Target» мы будем помещать исходный образ файловой системы «uramdisk.image.gz», получить его можно из файла прошивки, например .img, открыв её любым архиватором. Сам образ хранится в каталоге «bin»
В каталог «Firmware» будет разворачиваться файловая система из образа «uramdisk.image.gz», т.е. там мы увидим корень файловой системы, каталоги и файлы прошивки, которые в дальнейшем будем править.
В каталог «Result» будет помещаться образ «uramdisk.image.gz» после его компиляции. Этот образ будет содержать наши изменения. Этот образ мы в дальнейшем будем помещать в файл прошивки для дальнейшей установки уже на контрольную плату.
Теперь переходим в каталог «CreateFS_S9k» на рабочем столе уже из под графического интерфейса.
По аналогии прошлой статьи создадим 3 скрипта, позволяющих работать с образом «uramdisk.image.gz»
Первый скрипт будет разворачивать образ «uramdisk.image.gz» в каталог «Firmware»
В каталоге «CreateFS_S9k» создадим пустой файл и наполним его содержимым:
Контент доступен только участникам форума
Далее «Сохранить как...» и называем его «mount» (Формат не обязателен)
Теперь создадим скрипт, позволяющий размонтировать образ «uramdisk.image.gz» из каталога «Firmware»
Находясь в каталоге «CreateFS_S9k» создадим текстовой файл и наполним его следующими строками:
Контент доступен только участникам форума
Далее «Сохранить как...» и называем его «umount» (Формат не обязателен)
Теперь создадим самый главный скрипт, позволяющий компилировать содержимое каталога «Firmware» в отдельный образ, который будет работать на контрольной плате после прошивки.
Находясь в каталоге «CreateFS_S9k» создадим текстовой файл и наполним его следующими строками:
Контент доступен только участникам форума
Далее «Сохранить как...» и называем его «make-rootfs» (Формат не обязателен)
Прописываем права на запуск наших скриптов:
Контент доступен только участникам форума
Наш туллкит для работы с образами «image.gz» готов, можно приступать к практической части.
Открываем архиватором файл с прошивкой от Antminer S9k, заходим там в каталог «bin» и извлекаем файл «uramdisk.image.gz». Этот файл помещаем в каталог «Target».
Теперь открываем терминал и переходим в рабочий каталог «CreateFS_S9k»:
Не забываем подставлять своё имя пользователя, вместо xilinx.
Контент доступен только участникам форума
Запускаем монтирование образа «uramdisk.image.gz»:
Контент доступен только участникам форума
Вводим пароль от пользователя и наблюдаем, как наш образ разворачивается в каталог «Firmware»
Теперь перейдя в этот каталог мы наблюдаем все папки и файлы, находящиеся в прошивке.
Далее мы совершаем любые изменения с файлами на наше усмотрение, в зависимости от нашей цели редактирования прошивки. К примеру, мне захотелось изменить логотип стоковой прошивки на свой.
Для этого я перехожу в каталог «www\pages\images\» и наблюдаю там файл изображения «antminer_logo.png».
Открываю этот файл любым редактором изображений и редактирую его на свой вкус.
Далее сохраняю этот файл, не меняя его названия и формат.
После проделанных изменений я собираюсь собрать развёрнутый образ обратно в файл «uramdisk.image.gz», для этого открываю терминал и перехожу в рабочий каталог «CreateFS_S9k»:
Не забываем подставлять своё имя пользователя, вместо xilinx.
Контент доступен только участникам форума
И запускаю процесс компиляции:
Контент доступен только участникам форума
После компиляции в каталоге «Result» я наблюдаю свежеиспеченный файл «uramdisk.image.gz»
Теперь, как вы догадались, этот файл следует поместить в каталог «bin» в файле прошивки и прошить этим файлом нашу контрольную плату.
После прошивки и запуска контрольной платы, мы переходим на вэб-морду и наблюдаем уже наш логотип, вместо стокового. Это говорит о том, что мне удалось правильно собрать образ с моими изменениями.
В отличии от сборки образа для S9 и T9+, размонтировать образ из каталога «Firmware» не требуется. Он размонтируется в процессе компиляции. По этому перейдя в каталог «Firmware», мы заметим, что тут стало пусто.
Вот таким образом можно собирать свои прошивки с любыми вашими правками, дополнениями и изменениями бесконечное количество раз. Материалов по данной специфики в интернете не найти. Все эти действия добывались опытным путём.
Рад, если помог разобраться и дал ответы на все ваши вопросы по этой теме!
Материал подготовил: @Vinogradov
Копирование и распространение с разрешения автора.