4
правки
(→Подготовка rootfs: добавил опцию 7х для wb7) |
|||
(не показано 8 промежуточных версий 2 участников) | |||
Строка 39: | Строка 39: | ||
$ ./wbdev root exit | $ ./wbdev root exit | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Команда запустит контейнер и завершится. Отсутствие ошибок - покажет что контейнер работает нормально. | Команда выкачает, затем запустит контейнер и завершится. Отсутствие ошибок - покажет что контейнер работает нормально. | ||
=Cборка образа= | =Cборка образа= | ||
Про идеологию разделов контроллера можно прочитать на странице [[WB_Firmware_Update_Details | Обновление прошивки, информация для разработчиков]]. | Про идеологию разделов контроллера можно прочитать на странице [[WB_Firmware_Update_Details | Обновление прошивки, информация для разработчиков]]. | ||
==Автоматическая сборка== | ==Автоматическая сборка== | ||
Готовим файл с командами. Для Wiren Board 6 версии до 6.7 задаём переменную <code>BOARD=6x</code>, от 6.7 и выше - <code>BOARD=67</code>. | Готовим файл с командами. Для Wiren Board 6 версии до 6.7 задаём переменную <code>BOARD=6x</code>, от 6.7 и выше - <code>BOARD=67</code>. Для WB7 - <code>BOARD=7x</code> | ||
Сразу создаем каталог <code>mkdir ./output/images/</code> | |||
Релиз, на основе которого будет собран образ, задаётся в переменной <code>WB_RELEASE</code>. | Релиз, на основе которого будет собран образ, задаётся в переменной <code>WB_RELEASE</code>. | ||
Строка 50: | Строка 52: | ||
'''Обратите внимание''': если корневая ФС была отредактирована, нужно удалить строки в скрипте, отвечающие за удаление старой и создание новой корневой ФС | '''Обратите внимание''': если корневая ФС была отредактирована, нужно удалить строки в скрипте, отвечающие за удаление старой и создание новой корневой ФС | ||
(отмечены комментарием в скрипте): | (отмечены комментарием в скрипте): | ||
<blockquote>'''Важно:''' кэш сохраняется по пути /home/XXX/wbdev/go/src/github.com/contactless/wirenboard/output - | |||
эта же папка шарена между нашим хостом и докером, из неё мы и запускаем ./wbdev. Если у вас что-то сбоит на старых версиях - можно переиначить все пути на | |||
<syntaxhighlight>/root/rootfs/ </syntaxhighlight> | |||
но при этом будет потеряна возможность использовать кэш при сборке. | |||
'''дополнительно:''' DEBIAN_RELEASE= в скрипте есть смысл ставить тот который требуется в зависимости от версии board. wb6 со скриптом ниже не заработает без изменения релиза на предыдущий. | |||
</blockquote> | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ BOARD= | $ BOARD=7x; WB_RELEASE=stable; DEBIAN_RELEASE=stretch; cat << EOFcommand > tmp.sh | ||
#!/bin/bash | #!/bin/bash | ||
apt-get update | apt-get update | ||
apt-get install -y kpartx zip device-tree-compiler u-boot-tools | apt-get install -y kpartx zip device-tree-compiler u-boot-tools libfdt1 binutils | ||
mount -t devtmpfs none /dev | mount -t devtmpfs none /dev | ||
export ROOTFS=./output/rootfs_wb${BOARD} | export ROOTFS=./output/rootfs_wb${BOARD} | ||
Строка 63: | Строка 74: | ||
echo "Create new clean rootfs" | echo "Create new clean rootfs" | ||
rm -rf \$ROOTFS | rm -rf \$ROOTFS | ||
WB_RELEASE=${WB_RELEASE} /root/rootfs/create_rootfs.sh ${BOARD} | WB_RELEASE=${WB_RELEASE} DEBIAN_RELEASE=${DEBIAN_RELEASE} rootfs/create_rootfs.sh ${BOARD} | ||
# можно использовать /root/rootfs/create_rootfs.sh ${BOARD} но в этом случае у вас не будет использоваться кэш сокращающий время компиляции в 2 раза | |||
echo "Create .fit image" | echo "Create .fit image" | ||
Строка 69: | Строка 81: | ||
echo "fix permissions" | echo "fix permissions" | ||
chown ${UID} -R ./output/images/ | chown ${UID} -R ./output/images/ | ||
rm tmp.sh | #Uncomment next string for remove script | ||
#rm tmp.sh | |||
EOFcommand | EOFcommand | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<blockquote>'''Важно:'''u-boot-tools=2016.11+dfsg1-4 - больше не требуется. Но если вам вдруг надо на старой wb поставить именно его - | |||
<syntaxhighlight>wget https://cloudfront.debian.net/debian-archive/debian/pool/main/u/u-boot/u-boot-tools_2016.11+dfsg1-4_amd64.deb | |||
dpkg -i u-boot-tools_2016.11+dfsg1-4_amd64.deb | |||
rm u-boot-tools_2016.11+dfsg1-4_amd64.deb </syntaxhighlight></blockquote> | |||
Запускаем скрипт в контейнере: | Запускаем скрипт в контейнере: | ||
Строка 102: | Строка 120: | ||
Если rootfs уже создана ранее, то просто указываем ее расположение (переменная ROOTFS). | Если rootfs уже создана ранее, то просто указываем ее расположение (переменная ROOTFS). | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
export ROOTFS=./output/ | export ROOTFS=./output/rootfs_wb7x | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Скрипт для подготовки корневой файловой системы находится в директории <code> | Скрипт для подготовки корневой файловой системы находится в директории <code>wirenboard/rootfs</code>. | ||
Синтаксис запуска скрипта <code>create_rootfs.sh</code>: | Синтаксис запуска скрипта <code>create_rootfs.sh</code>: | ||
Строка 136: | Строка 154: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Пример. Собираем базовую (без доп. репозиториев) корневую ФС в директории <code>rootfs/rootfs</code> для Wiren Board | Пример. Собираем базовую (без доп. репозиториев) корневую ФС в директории <code>rootfs/rootfs</code> для Wiren Board 7x: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# cd rootfs | # cd rootfs | ||
# ROOTFS=./rootfs/ | # ROOTFS=./rootfs/rootfs_7x WB_RELEASE=stable DEBIAN_RELEASE=stretch ./create_rootfs.sh 7x | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Если не используем уже существующую, то создаем: | Если не используем уже существующую, то создаем: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# export ROOTFS=./output/ | # export ROOTFS=./output/rootfs_wb7x | ||
# | # export WB_RELEASE=stable DEBIAN_RELEASE=stretch | ||
# wirenboard/rootfs/create_rootfs.sh 7x | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 155: | Строка 174: | ||
Добавление дополнительных репозиториев необходимо, если вы хотите добавить свои версии пакетов в собираемую корневую ФС. | Добавление дополнительных репозиториев необходимо, если вы хотите добавить свои версии пакетов в собираемую корневую ФС. | ||
Добавляется при помощи wbrepo, общий мануал https://github.com/wirenboard/wirenboard/blob/master/README-wbrepo.md | |||
В скрипт передаются ''только адреса'' репозиториев. Например: | В скрипт передаются ''только адреса'' репозиториев. Например: | ||
Строка 164: | Строка 184: | ||
* В корне на сервере репозитория должен храниться публичный GPG-ключ в файле <code>/repo.gpg.key</code>. Например, если репозиторий расположен по адресу http://localhost:8086/, то ключ должен быть доступен по ссылке http://localhost:8086/repo.gpg.key | * В корне на сервере репозитория должен храниться публичный GPG-ключ в файле <code>/repo.gpg.key</code>. Например, если репозиторий расположен по адресу http://localhost:8086/, то ключ должен быть доступен по ссылке http://localhost:8086/repo.gpg.key | ||
* Имя используемого дистрибутива — testing | * Имя используемого дистрибутива — testing (если не менялся код в ) | ||
* Используемый компонент — main | * Используемый компонент — main | ||
При использовании wbrepo с хоста из докера можно найти их на http://172.17.0.1:8086/ - просто оставьте wbrepo serve запущенным на хосте и вызовите из докера | |||
<syntaxhighlight lang="console"> | |||
# ./create_rootfs.sh 7x http://172.17.0.1:8086/ | |||
</syntaxhighlight> | |||
При изменении имени дистрибутива - отредактировать в https://github.com/wirenboard/wirenboard/blob/master/wbrepo | |||
<pre> | |||
DISTRIBUTION=testing #меняем тут testing на нужное наименование дистрибутива | |||
</pre> | |||
Или смотрим под какой дистрибутив запустился сервер под wbrepo serve и меняем на нужный в ручном запуске | |||
<pre> | |||
./rootfs/create_rootfs.sh 7x http://172.17.0.1:8086@testing:main | |||
</pre> | |||
То есть, если передан адрес репозитория http://localhost:8086/, то в <code>sources.list</code> он будет представлен как | То есть, если передан адрес репозитория http://localhost:8086/, то в <code>sources.list</code> он будет представлен как | ||
Строка 172: | Строка 204: | ||
deb http://localhost:8086/ testing main | deb http://localhost:8086/ testing main | ||
</pre> | </pre> | ||
При проблемах - посмотрите внимательно на <code>curl -v</code> вывод адреса репозитория | |||
=== Работа внутри корневой ФС === | === Работа внутри корневой ФС === |
правки