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

Навигация

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

м
Обернул пути и имена файлов в тексте в тег «code» — так лучше смотрится.
(Сборка .fit)
м (Обернул пути и имена файлов в тексте в тег «code» — так лучше смотрится.)
Строка 1: Строка 1:
<languages/>
<translate>
<!--T: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:
Если нет ошибок — можно переходить к следующему этапу.
Если нет ошибок — можно переходить к следующему этапу.


=== Дополнительные репозитории === <!--T:12-->
=== Дополнительные репозитории ===


<!--T:13-->
Добавление дополнительных репозиториев необходимо, если вы хотите добавить свои версии пакетов в собираемую корневую ФС.
Добавление дополнительных репозиториев необходимо, если вы хотите добавить свои версии пакетов в собираемую корневую ФС.


<!--T:14-->
В скрипт передаются ''только адреса'' репозиториев. Например:
В скрипт передаются ''только адреса'' репозиториев. Например:


<!--T:15-->
<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>


<!--T:16-->
Формат репозиториев соответствует тому, который создаётся с помощью утилиты [[Special:MyLanguage/wbrepo|wbrepo]]. К дополнительному репозиторию предъявляются требования:
Формат репозиториев соответствует тому, который создаётся с помощью утилиты [[Special:MyLanguage/wbrepo|wbrepo]]. К дополнительному репозиторию предъявляются требования:


<!--T:17-->
* В корне на сервере репозитория должен храниться публичный 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


<!--T:18-->
То есть, если передан адрес репозитория http://localhost:8086/, то в <code>sources.list</code> он будет представлен как
То есть, если передан адрес репозитория http://localhost:8086/, то в sources.list он будет представлен как


<!--T:19-->
<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: раздел в процессе редактирования


== Сборка образа для загрузки на контроллер == <!--T:20-->
== Сборка образа для загрузки на контроллер ==  


<!--T:21-->
''TODO: раздел требует дополнения''
''TODO: раздел требует дополнения''


Строка 221: Строка 210:




<!--T:28-->
Готовый образ будет лежать по пути <code>output/image/<current_datetime>/<current_datetime>_webupd_wb6x.fit</code>.
Готовый образ будет лежать по пути output/image/<current_datetime>/<current_datetime>_webupd_wb6x.fit.


== См. также == <!--T:29-->
== См. также ==


<!--T:30-->
* [[Special:MyLanguage/Обновление прошивки|Обновление прошивки]]
* [[Special:MyLanguage/Обновление прошивки|Обновление прошивки]]
* [[Wiren Board 5: Восстановление прошивки|Wiren Board 5: Восстановление прошивки]]
* [[Wiren Board 5: Восстановление прошивки|Wiren Board 5: Восстановление прошивки]]
</translate>