Как разрабатывать ПО для Wiren Board: различия между версиями
(не показано 7 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
* | <!--T:1--> | ||
* | ''Замечание'': эта статья про то, как создавать новое программное обеспечение для Wiren Board, и предназначена для программистов; | ||
*стандартное программное обеспечение Wiren Board - [[Special:MyLanguage/Программное обеспечение Wiren Board|Программное обеспечение Wiren Board]], | |||
*для написания правил и сценариев воспользуйтесь [[Special:MyLanguage/Движок правил wb-rules|встроенной системой правил]]. | |||
== Окружение == | === Окружение === <!--T:2--> | ||
<!--T:3--> | |||
Все контроллеры Wiren Board поставляются с полноценным Debian Linux. Архитектура процессора: armhf (Wiren Board 6) или armel (Wiren Board 5 и раньше). | Все контроллеры Wiren Board поставляются с полноценным Debian Linux. Архитектура процессора: armhf (Wiren Board 6) или armel (Wiren Board 5 и раньше). | ||
На контроллере используется libc версии 2.13. | На контроллере используется libc версии 2.13. | ||
<!--T:4--> | |||
Установку ПО рекомендуется производить с помощью пакетного менеджера Debian, и упаковывать ПО в deb-пакеты | Установку ПО рекомендуется производить с помощью пакетного менеджера Debian, и упаковывать ПО в deb-пакеты | ||
== Общие соображения == | === Общие соображения === <!--T:5--> | ||
<!--T:6--> | |||
Контроллеры Wiren Board имеют, в зависимости от модели, от 64 до 1024 MB оперативной памяти. Это значит, что необходимо учитывать потребление памяти при разработке своих программ. Про то, как контролировать потребление памяти в Linux, см. сайт http://www.linuxatemyram.ru/. | |||
== Сборка пакетов и программ == | === Сборка пакетов и программ === <!--T:7--> | ||
Сборку программ рекомендуется производить на компьютере с Linux, используя специальное окружение | <!--T:8--> | ||
Компиляция и разработка непосредственно на | Сборку программ рекомендуется производить на компьютере с Linux, используя специальное разработческое окружение. | ||
Компиляция и разработка непосредственно на Wiren Board 5 не рекомендуется из-за маленького объёма RAM. | |||
=== Тулчейн | ==== Тулчейн ==== | ||
Если ваша программа не имеет внешних зависимостей от библиотек операционной системы, то для её сборки можно установить тулчейн. | Если ваша программа не имеет внешних зависимостей от библиотек операционной системы, то для её сборки можно установить тулчейн. | ||
Название тулчейна: | Название тулчейна: | ||
* для Wiren Board 6 и выше: | * для Wiren Board 6 и выше: **AArch32 target with hard float (arm-linux-none-gnueabihf)** | ||
* для Wiren Board 5 и ниже: | * для Wiren Board 5 и ниже: **arm-linux-none-gnueabi** | ||
Скачать тулчейн для вашей операционной системы можно здесь: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads | |||
< | В дистрибутивах Linux необходимые тулчейны обычно уже доступны как пакеты. Например, для Ubuntu или Debian: | ||
<pre> | |||
apt install gcc-arm-linux-gnueabihf | apt install gcc-arm-linux-gnueabihf | ||
</ | </pre> | ||
==== Разработческое окружение ==== <!--T:9--> | |||
Разработческое окружение удобно использовать для сборки программ с внешними зависимостями от системных библиотек, для упаковки программ как Debian-пакетов, для удобной сборки под несколько версий Wiren Board. Это рекомендуемый и самый удобный способ. | |||
При использовании окружения, кросс-компиляция не нужна. Скрипт | <!--T:10--> | ||
Предоставляется в виде Docker-контейнера. | |||
Для его использования в Linux существует удобный скрипт wbdev. | |||
При использовании окружения, кросс-компиляция не нужна. Скрипт wbdev автоматически запускает соответствующие команды в виртуализованном окружении с архитектурой armel, соответствующей архитектуре процессора Wiren Board. | |||
Сборка пакетов производится с помощью вызова | <!--T:11--> | ||
Сборка пакетов производится с помощью вызова wbdeb, например так: | |||
< | <!--T:12--> | ||
<pre> | |||
$ wbdev chroot #запустить виртуализованное qemu сhroot окружение с Debian 7 архитектуры armel | $ wbdev chroot #запустить виртуализованное qemu сhroot окружение с Debian 7 архитектуры armel | ||
$ wbdev make # вызвать make в виртуализованном qemu chroot окружении | $ wbdev make # вызвать make в виртуализованном qemu chroot окружении | ||
Строка 54: | Строка 61: | ||
$ wbdev gdeb # собрать пакет, написанный на Go, с использованием кросс-компиляции Go | $ wbdev gdeb # собрать пакет, написанный на Go, с использованием кросс-компиляции Go | ||
$ wbdev ndeb # собрать архитектурно-независимый пакет, например содержащий проект на Python | $ wbdev ndeb # собрать архитектурно-независимый пакет, например содержащий проект на Python | ||
</ | </pre> | ||
<!--T:13--> | |||
Полное описание работы с окружением - в [https://github.com/contactless/wirenboard/blob/master/README.md документации]. | |||
=== Другие статьи === <!--T:14--> | |||
<!--T:15--> | |||
[[Special:MyLanguage/Сборка ядра|Сборка ядра]] | |||
<!--T:16--> | |||
[[Special:MyLanguage/Сборка образов прошивки|Сборка образов прошивки]] | |||
<!--T:17--> | |||
[[Special:MyLanguage/Уникальные идентификаторы|Уникальные идентификаторы]] - для идентификации устройства, привязки софта | |||
<!--T:18--> | |||
[[Special:MyLanguage/eMMC flash storage wear level|Узнать степень износа внутреннего накопителя]] | |||
<!--T:19--> | |||
[[Special:MyLanguage/Пересборка Device Tree|Пересборка Device Tree]] | |||
</translate> | |||
Версия 15:58, 18 марта 2021
Замечание: эта статья про то, как создавать новое программное обеспечение для Wiren Board, и предназначена для программистов;
- стандартное программное обеспечение Wiren Board - Программное обеспечение Wiren Board,
- для написания правил и сценариев воспользуйтесь встроенной системой правил.
Окружение
Все контроллеры Wiren Board поставляются с полноценным Debian Linux. Архитектура процессора: armhf (Wiren Board 6) или armel (Wiren Board 5 и раньше). На контроллере используется libc версии 2.13.
Установку ПО рекомендуется производить с помощью пакетного менеджера Debian, и упаковывать ПО в deb-пакеты
Общие соображения
Контроллеры Wiren Board имеют, в зависимости от модели, от 64 до 1024 MB оперативной памяти. Это значит, что необходимо учитывать потребление памяти при разработке своих программ. Про то, как контролировать потребление памяти в Linux, см. сайт http://www.linuxatemyram.ru/.
Сборка пакетов и программ
Сборку программ рекомендуется производить на компьютере с Linux, используя специальное разработческое окружение. Компиляция и разработка непосредственно на Wiren Board 5 не рекомендуется из-за маленького объёма RAM.
Тулчейн
Если ваша программа не имеет внешних зависимостей от библиотек операционной системы, то для её сборки можно установить тулчейн. Название тулчейна:
- для Wiren Board 6 и выше: **AArch32 target with hard float (arm-linux-none-gnueabihf)**
- для Wiren Board 5 и ниже: **arm-linux-none-gnueabi**
Скачать тулчейн для вашей операционной системы можно здесь: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
В дистрибутивах Linux необходимые тулчейны обычно уже доступны как пакеты. Например, для Ubuntu или Debian:
apt install gcc-arm-linux-gnueabihf
Разработческое окружение
Разработческое окружение удобно использовать для сборки программ с внешними зависимостями от системных библиотек, для упаковки программ как Debian-пакетов, для удобной сборки под несколько версий Wiren Board. Это рекомендуемый и самый удобный способ.
Предоставляется в виде Docker-контейнера. Для его использования в Linux существует удобный скрипт wbdev. При использовании окружения, кросс-компиляция не нужна. Скрипт wbdev автоматически запускает соответствующие команды в виртуализованном окружении с архитектурой armel, соответствующей архитектуре процессора Wiren Board.
Сборка пакетов производится с помощью вызова wbdeb, например так:
$ wbdev chroot #запустить виртуализованное qemu сhroot окружение с Debian 7 архитектуры armel $ wbdev make # вызвать make в виртуализованном qemu chroot окружении $ wbdev cdeb # собрать пакет, написанный на C++ в виртуализованном qemu chroot окружении $ wbdev gdeb # собрать пакет, написанный на Go, с использованием кросс-компиляции Go $ wbdev ndeb # собрать архитектурно-независимый пакет, например содержащий проект на Python
Полное описание работы с окружением - в документации.
Другие статьи
Уникальные идентификаторы - для идентификации устройства, привязки софта