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

Материал из Wiren Board
(Начал редактирование)
Строка 4: Строка 4:
Для сборки образов прошивки контроллера подготовлен специальный образ Docker. Процесс сборки можно производить внутри этого образа как в автоматическом так и в ручном режиме. Также возможно использовать скрипты для сборки без контейнера, после предварительной настройки окружения.
Для сборки образов прошивки контроллера подготовлен специальный образ Docker. Процесс сборки можно производить внутри этого образа как в автоматическом так и в ручном режиме. Также возможно использовать скрипты для сборки без контейнера, после предварительной настройки окружения.


# Подготовка
= Подготовка =
## Установка Docker
== Установка Docker==
Перый шаг - это установка [https://docs.docker.com/ Docker]
Перый шаг - это установка [https://docs.docker.com/ Docker]
В зависимости от используемого дистрибутива - устанавливается по-разному, для Debian:
В зависимости от используемого дистрибутива - устанавливается по-разному, для Debian:


## Скачивание скрипта
==Скачивание скрипта ==


## Выкачивание образа
==Выкачивание образа==


<!--T:2-->
<!--T:2-->

Версия 19:34, 12 ноября 2020

Другие языки:

Для сборки образов прошивки контроллера подготовлен специальный образ Docker. Процесс сборки можно производить внутри этого образа как в автоматическом так и в ручном режиме. Также возможно использовать скрипты для сборки без контейнера, после предварительной настройки окружения.

Подготовка

Установка Docker

Перый шаг - это установка Docker В зависимости от используемого дистрибутива - устанавливается по-разному, для Debian:

Скачивание скрипта

Выкачивание образа

  1. Подготовка корневой ФС (rootfs)
  2. Сборка образа для загрузки на контроллер

Скрипты находятся в репозитории wirenboard. Далее пути будут обозначаться от директории с репозиторием.


Подготовка rootfs

Скрипт для подготовки корневой ФС находится в директории rootfs.

Как использовать скрипт create_rootfs.sh:

 $ ./create_rootfs.sh <path_to_new_rootfs> <board_ver> [<list of additional repos>]

Здесь:

  • path_to_new_rootfs - имя директории, в которой будет создана корневая ФС. Директория будет создана автоматически;
  • board_ver - версия контроллера, для которого готовится образ. Допустимые значения:
    • 5 - для Wiren Board 5
    • 55 - для Wiren Board 5.5
    • 4 - для Wiren Board 4
    • 32 - для WB Smart Home (3.2)
    • 28
    • NETMON
    • MKA3
    • CQC10
    • MKA31
    • AC-E1
  • list of additional repos - адреса дополнительных репозиториев с тестовыми пакетами (см. ниже). Опциональный параметр.

Пример. Собираем базовую (без доп. репозиториев) корневую ФС в директории rootfs/rootfs для Wiren Board 5.5:

 $ cd rootfs
 $ ./create_rootfs.sh ./rootfs/ 55


Дополнительные репозитории

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

В скрипт передаются только адреса репозиториев. Например:

 $ ./create_rootfs.sh ./rootfs/ 55 http://server1.net/ http://server2.net:8086/

Формат репозиториев соответствует тому, который создаётся с помощью утилиты wbrepo. Конкретно, к дополнительному репозиторию предъявляются следующие требования:

  • В корне на сервере репозитория должен храниться публичный GPG-ключ в файле /repo.gpg.key. Например, если репозиторий расположен по адресу http://localhost:8086/, то ключ должен быть доступен по ссылке http://localhost:8086/repo.gpg.key
  • Имя используемого дистрибутива - testing
  • Используемый компонент - main

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

 deb http://localhost:8086/ testing main


Сборка образа для загрузки на контроллер

TODO: раздел требует дополнения

Скрипты для сборки образов находятся в директории images. Перед сборкой образа необходима готовая корневая ФС.

Дополнительно на хост-машине потребуются утилиты (названия приведены для Debian/Ubuntu):

  • kpartx
  • device-tree-compiler
  • u-boot-tools

Пример: собираем образ прошивки для Wiren Board 5, корневая ФС находится по пути rootfs/rootfs/:

 $ cd image
 $ ./create_images_wb5.sh ../rootfs/rootfs/ <tag>

Здесь tag - суффикс, который будет добавлен к имени файла образа.

Готовый образ будет лежать по пути image/image/wb5/<current_datetime>/<current_datetime>_emmc_<tag>.img.


См. также