16 809
правок
Brainroot (обсуждение | вклад) (Сборка .fit) |
м (Обернул пути и имена файлов в тексте в тег «code» — так лучше смотрится.) |
||
Строка 1: | Строка 1: | ||
Для сборки образов прошивки контроллера мы подготовили специальный образ Docker. Сборку можно производить внутри этого образа в автоматическом или ручном режиме. После предварительной настройки окружения можно использовать скрипты для сборки без контейнера. | Для сборки образов прошивки контроллера мы подготовили специальный образ Docker. Сборку можно производить внутри этого образа в автоматическом или ручном режиме. После предварительной настройки окружения можно использовать скрипты для сборки без контейнера. | ||
Строка 16: | Строка 13: | ||
sudo apt install docker-ce -y | sudo apt install docker-ce -y | ||
</syntaxhighlight> | </syntaxhighlight> | ||
На хост-системе '''обязательно''' установите пакет qemu-user-static: | На хост-системе '''обязательно''' установите пакет <code>qemu-user-static</code>: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt install -y qemu-user-static | sudo apt install -y qemu-user-static | ||
Строка 40: | Строка 37: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Скачать только скрипт. Пока не реализовано — сейчас в образе нет create_images.sh: | Скачать только скрипт. Пока не реализовано — сейчас в образе нет <code>create_images.sh</code>: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mkdir -p ~/wirenboard-wbdev/wirenboard | mkdir -p ~/wirenboard-wbdev/wirenboard | ||
Строка 55: | Строка 52: | ||
./wbdev root exit | ./wbdev root exit | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<blockquote>'''Важно:''' Образ займет ~5.5 Гб на /var </blockquote> | <blockquote>'''Важно:''' Образ займет ~5.5 Гб на <code>/var</code></blockquote> | ||
=Cборка образа= | =Cборка образа= | ||
Строка 89: | Строка 86: | ||
<blockquote>'''Важно:''' Изменения внутри контейнера не сохранятся </blockquote> | <blockquote>'''Важно:''' Изменения внутри контейнера не сохранятся </blockquote> | ||
После завершения — «корневая» файловая система остается в каталоге ./output/rootfs_wb6x и доступна для следующего использования. Можно изменять и дополнять в «ручном» режиме. | После завершения — «корневая» файловая система остается в каталоге <code>./output/rootfs_wb6x</code> и доступна для следующего использования. Можно изменять и дополнять в «ручном» режиме. | ||
Готовый для загрузки в контроллер образ — в ./output/images/YYYYMMDDHHMM | Готовый для загрузки в контроллер образ — в <code>./output/images/YYYYMMDDHHMM</code> | ||
==Ручная сборка== | ==Ручная сборка== | ||
По сути — то же самое, но команды выполняются вручную, есть возможность изменить параметры. | По сути — то же самое, но команды выполняются вручную, есть возможность изменить параметры. | ||
=== Запуск контейнера === | === Запуск контейнера === | ||
Запускаем в том же каталоге ~/wirenboard-wbdev/wirenboard следующую команду: | Запускаем в том же каталоге <code>~/wirenboard-wbdev/wirenboard</code> следующую команду: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
~/wirenboard-wbdev/wirenboard | ~/wirenboard-wbdev/wirenboard | ||
Строка 114: | Строка 111: | ||
Скрипт для подготовки корневой файловой системы находится в директории /root/rootfs. | Скрипт для подготовки корневой файловой системы находится в директории <code>/root/rootfs</code>. | ||
Синтаксис запуска скрипта create_rootfs.sh: | Синтаксис запуска скрипта <code>create_rootfs.sh</code>: | ||
<pre> | <pre> | ||
$ ./create_rootfs.sh <board_ver> [<list of additional repos>] | $ ./create_rootfs.sh <board_ver> [<list of additional repos>] | ||
Строка 142: | Строка 139: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Пример. Собираем базовую (без доп. репозиториев) корневую ФС в директории rootfs/rootfs для Wiren Board 5.5: | Пример. Собираем базовую (без доп. репозиториев) корневую ФС в директории <code>rootfs/rootfs</code> для Wiren Board 5.5: | ||
<pre> | <pre> | ||
Строка 157: | Строка 154: | ||
Если нет ошибок — можно переходить к следующему этапу. | Если нет ошибок — можно переходить к следующему этапу. | ||
=== Дополнительные репозитории === | === Дополнительные репозитории === | ||
Добавление дополнительных репозиториев необходимо, если вы хотите добавить свои версии пакетов в собираемую корневую ФС. | Добавление дополнительных репозиториев необходимо, если вы хотите добавить свои версии пакетов в собираемую корневую ФС. | ||
В скрипт передаются ''только адреса'' репозиториев. Например: | В скрипт передаются ''только адреса'' репозиториев. Например: | ||
<pre> | <pre> | ||
$ ./create_rootfs.sh 55 http://server1.net/ http://server2.net:8086/ | $ ./create_rootfs.sh 55 http://server1.net/ http://server2.net:8086/ | ||
</pre> | </pre> | ||
Формат репозиториев соответствует тому, который создаётся с помощью утилиты [[Special:MyLanguage/wbrepo|wbrepo]]. К дополнительному репозиторию предъявляются требования: | Формат репозиториев соответствует тому, который создаётся с помощью утилиты [[Special:MyLanguage/wbrepo|wbrepo]]. К дополнительному репозиторию предъявляются требования: | ||
* В корне на сервере репозитория должен храниться публичный GPG-ключ в файле <code>/repo.gpg.key</code>. Например, если репозиторий расположен по адресу http://localhost:8086/, то ключ должен быть доступен по ссылке http://localhost:8086/repo.gpg.key | |||
* В корне на сервере репозитория должен храниться публичный GPG-ключ в файле /repo.gpg.key. Например, если репозиторий расположен по адресу http://localhost:8086/, то ключ должен быть доступен по ссылке http://localhost:8086/repo.gpg.key | |||
* Имя используемого дистрибутива — testing | * Имя используемого дистрибутива — testing | ||
* Используемый компонент — main | * Используемый компонент — main | ||
То есть, если передан адрес репозитория http://localhost:8086/, то в <code>sources.list</code> он будет представлен как | |||
То есть, если передан адрес репозитория http://localhost:8086/, то в sources.list он будет представлен как | |||
<pre> | <pre> | ||
deb http://localhost:8086/ testing main | deb http://localhost:8086/ testing main | ||
Строка 189: | Строка 179: | ||
Для того чтобы установить какие-нибудь дополнительные пакеты в корневую систему используется chroot. | Для того чтобы установить какие-нибудь дополнительные пакеты в корневую систему используется chroot. | ||
Если уже создана ФС в каталоге ./output/rootfs_wb6x то делаем chroot в нее: | Если уже создана ФС в каталоге <code>./output/rootfs_wb6x</code> то делаем chroot в нее: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
./output/rootfs_wb6x/chroot_this.sh | ./output/rootfs_wb6x/chroot_this.sh | ||
Строка 202: | Строка 192: | ||
exit | exit | ||
</syntaxhighlight> | </syntaxhighlight> | ||
TODO: раздел | TODO: раздел в процессе редактирования | ||
== Сборка образа для загрузки на контроллер == | == Сборка образа для загрузки на контроллер == | ||
''TODO: раздел требует дополнения'' | ''TODO: раздел требует дополнения'' | ||
Строка 221: | Строка 210: | ||
Готовый образ будет лежать по пути <code>output/image/<current_datetime>/<current_datetime>_webupd_wb6x.fit</code>. | |||
Готовый образ будет лежать по пути output/image/<current_datetime>/<current_datetime>_webupd_wb6x.fit. | |||
== См. также == | == См. также == | ||
* [[Special:MyLanguage/Обновление прошивки|Обновление прошивки]] | * [[Special:MyLanguage/Обновление прошивки|Обновление прошивки]] | ||
* [[Wiren Board 5: Восстановление прошивки|Wiren Board 5: Восстановление прошивки]] | * [[Wiren Board 5: Восстановление прошивки|Wiren Board 5: Восстановление прошивки]] | ||