В данной статье мы с вами рассмотрим способ сборки своих образов для контрольных плат Antminer S9 / T9+
Сразу хочу оговориться, что данный метод подойдёт исключительно для S9 и T9+, поскольку на них файловая система запакована в формате «jffs2». Для прочих моделей Antminer файловая система запаковывается в формате «image.gz», но метод сборки этого формата мы рассмотрим в отдельной статье.
Итак, первым делом мы должны выйти из операционной системы Windows и зайти в Linux. Конкретная версия Linux не так критична, но я же рекомендую накатить xubuntu, поскольку она не так обвешана лишними программами, в отличие от Ubuntu. В общем подойдет любая нормальная версия.
Установив и зайдя в Linux нам необходимо поставить библиотеки, позволяющие нам работать с образами файловых систем UBI/UBIFS. Установка выполняется через терминал. В некоторых версиях он вызывается сочетанием клавиш WIN+T или WIN+R, либо правый клик по рабочему столу и в контекстном меню выбрать «Открыть терминал».
Контент доступен только участникам форума
В терминале вводим команду:
Контент доступен только участникам форума
(Доступ в интернет должен быть активен).
После установки библиотек зададим переменную с нашем именем пользователя, под которым мы сейчас работаем в системе. У меня имя пользователя указано «xilinx», у вас будет своё. (в дальнейших примерах xilinx заменяйте на своё имя пользователя!)
Для этого вводим в терминал:
Контент доступен только участникам форума
Далее создаём на рабочем столе каталог для работы «CreateFS_S9»
Контент доступен только участникам форума
Далее переходим в наш каталог:
Контент доступен только участникам форума
Теперь создадим 3 каталога для работы с образами:
Контент доступен только участникам форума
В каталог «Target» мы будем помещать исходный образ файловой системы «angstrom_rootfs.jffs2», получить его можно из файла прошивки, например .img, открыв её любым архиватором. Сам образ хранится в каталоге «bin»
В каталог «Firmware» будет разворачиваться файловая система из образа «angstrom_rootfs.jffs2», т.е. там мы увидим корень файловой системы, каталоги и файлы прошивки, которые в дальнейшем будем править.
В каталог «Result» будет помещаться образ «angstrom_rootfs.jffs2» после его компиляции. Этот образ будет содержать наши изменения. Этот образ мы в дальнейшем будем помещать в файл прошивки для дальнейшей установки уже на контрольную плату.
После того, как мы создали каталоги, предлагаю для удобства перейти в «CreateFS_S9» на рабочем столе уже из под графического интерфейса.
Контент доступен только участникам форума
Теперь нам необходимо создать скрипты для работы с файлами.
Создадим первый скрипт, отвечающий за монтирование файла «angstrom_rootfs.jffs2» с каталог «Firmware».
Находясь в каталоге «CreateFS_S9» создадим текстовой файл и наполним его следующими строками:
Контент доступен только участникам форума
Далее «Сохранить как...» и называем его «mount» (Формат не обязателен)
Контент доступен только участникам форума
Теперь создадим скрипт, позволяющий размонтировать образ «angstrom_rootfs.jffs2» из каталога «Firmware»
Находясь в каталоге «CreateFS_S9» создадим текстовой файл и наполним его следующими строками:
Контент доступен только участникам форума
Далее «Сохранить как...» и называем его «umount» (Формат не обязателен)
Теперь создадим самый главный скрипт, позволяющий компилировать содержимое каталога «Firmware» в отдельный образ, который будет работать на контрольной плате после прошивки.
Находясь в каталоге «CreateFS_S9» создадим текстовой файл и наполним его следующими строками:
Контент доступен только участникам форума
Далее «Сохранить как...» и называем его «make-rootfs» (Формат не обязателен)
Как можно заметить команда «ubinize» будет использовать файл конфигурации для преобразования правильных параметров образа. Создадим этот конфиг:
Находясь в каталоге «CreateFS_S9» создадим текстовой файл и наполним его следующими строками:
Контент доступен только участникам форума
Далее «Сохранить как...» и называем его «ubi.cfg» (Формат .cfg обязателен)
Осталось прописать нашим скриптам права на запуск, для этого открываем терминал и переходим в наш рабочий каталог «CreateFS_S9»:
Не забываем подставлять своё имя пользователя, вместо xilinx.
Контент доступен только участникам форума
Далее прописываем права на запуск скриптов:
Контент доступен только участникам форума
Наш туллкит для работы с образами «jffs2» готов, можно приступать к практической части.
Контент доступен только участникам форума
Открываем архиватором файл с прошивкой от Antminer S9, заходим там в каталог «bin» и извлекаем файл «angstrom_rootfs.jffs2». Этот файл помещаем в каталог «Target».
Контент доступен только участникам форума
Теперь открываем терминал и переходим в рабочий каталог «CreateFS_S9»:
Не забываем подставлять своё имя пользователя, вместо xilinx.
Контент доступен только участникам форума
Запускаем монтирование образа «angstrom_rootfs.jffs2»:
Контент доступен только участникам форума
Вводим пароль от пользователя и наблюдаем, как наш образ разворачивается в каталог «Firmware»
Контент доступен только участникам форума
Теперь перейдя в этот каталог мы наблюдаем все папки и файлы, находящиеся в прошивке.
Контент доступен только участникам форума
Далее мы совершаем любые изменения с файлами на наше усмотрение, в зависимости от нашей цели редактирования прошивки. К примеру, мне захотелось изменить логотип стоковой прошивки на свой.
Для этого я перехожу в каталог «www\pages\images\» и наблюдаю там файл изображения «antminer_logo.png».
Контент доступен только участникам форума
Открываю этот файл любым редактором изображений и редактирую его на свой вкус.
Контент доступен только участникам форума
Далее сохраняю этот файл, не меняя его названия и формат.
Контент доступен только участникам форума
После проделанных изменений я собираюсь собрать развёрнутый образ обратно в файл «angstrom_rootfs.jffs2», для этого открываю терминал и перехожу в рабочий каталог «CreateFS_S9»:
Не забываем подставлять своё имя пользователя, вместо xilinx.
Контент доступен только участникам форума
И запускаю процесс компиляции:
Контент доступен только участникам форума
Контент доступен только участникам форума
После компиляции в каталоге «Result» я наблюдаю свежеиспеченный файл «angstrom_rootfs.jffs2»
Контент доступен только участникам форума
Теперь, как вы догадались, этот файл следует поместить в каталог «bin» в файле прошивки и прошить этим файлом нашу контрольную плату.
Контент доступен только участникам форума
После прошивки и запуска контрольной платы, мы переходим на вэб-морду и наблюдаем уже наш логотип, вместо стокового. Это говорит о том, что мне удалось правильно собрать образ с моими изменениями.
Контент доступен только участникам форума
Осталось только размонтировать образ «angstrom_rootfs.jffs2» из каталога «Firmware»
Для этого снова открываем терминал и переходим в наш рабочий каталог «CreateFS_S9»:
Не забываем подставлять своё имя пользователя, вместо xilinx.
Контент доступен только участникам форума
И запускаю процесс размонтирования:
Контент доступен только участникам форума
Перейдя в каталог «Firmware», мы заметим, что тут стало пусто.
Контент доступен только участникам форума
Вот таким образом можно собирать свои прошивки с любыми вашими правками, дополнениями и изменениями бесконечное количество раз. Материалов по данной специфики в интернете не найти. Все эти действия добывались опытным путём.
Рад, если помог разобраться и дал ответы на все ваши вопросы по этой теме!
Материал подготовил: @Vinogradov
Копирование и распространение с разрешения автора.