Перейти к содержанию

Навигация

Сборка образов прошивки: различия между версиями

Нет описания правки
(→‎Подготовка rootfs: исправил на 7.x)
 
(не показаны 3 промежуточные версии этого же участника)
Строка 52: Строка 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">
Строка 57: Строка 66:
#!/bin/bash
#!/bin/bash
apt-get update
apt-get update
apt-get install -y kpartx zip device-tree-compiler u-boot-tools=2016.11+dfsg1-4 libfdt1 binutils
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}
Строка 65: Строка 74:
echo "Create new clean rootfs"  
echo "Create new clean rootfs"  
rm -rf \$ROOTFS
rm -rf \$ROOTFS
WB_RELEASE=${WB_RELEASE} DEBIAN_RELEASE=${DEBIAN_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"
Строка 76: Строка 86:


</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>


Запускаем скрипт в контейнере:
Запускаем скрипт в контейнере:
Строка 109: Строка 124:




Скрипт для подготовки корневой файловой системы находится в директории <code>/root/rootfs</code>.
Скрипт для подготовки корневой файловой системы находится в директории <code>wirenboard/rootfs</code>.


Синтаксис запуска скрипта <code>create_rootfs.sh</code>:
Синтаксис запуска скрипта <code>create_rootfs.sh</code>:
Строка 150: Строка 165:
# export ROOTFS=./output/rootfs_wb7x
# export ROOTFS=./output/rootfs_wb7x
# export WB_RELEASE=stable DEBIAN_RELEASE=stretch
# export WB_RELEASE=stable DEBIAN_RELEASE=stretch
# /root/rootfs/create_rootfs.sh 7x
# wirenboard/rootfs/create_rootfs.sh 7x
</syntaxhighlight>
</syntaxhighlight>


Строка 159: Строка 174:
Добавление дополнительных репозиториев необходимо, если вы хотите добавить свои версии пакетов в собираемую корневую ФС.
Добавление дополнительных репозиториев необходимо, если вы хотите добавить свои версии пакетов в собираемую корневую ФС.


Добавляется при помощи wbrepo, общий мануал https://github.com/wirenboard/wirenboard/blob/master/README-wbrepo.md
В скрипт передаются ''только адреса'' репозиториев. Например:
В скрипт передаются ''только адреса'' репозиториев. Например:


Строка 168: Строка 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> он будет представлен как


Строка 176: Строка 204:
  deb http://localhost:8086/ testing main
  deb http://localhost:8086/ testing main
</pre>
</pre>
При проблемах - посмотрите внимательно на <code>curl -v</code> вывод адреса репозитория


=== Работа внутри корневой ФС ===
=== Работа внутри корневой ФС ===
4

правки