- PVSM.RU - https://www.pvsm.ru -
Какой дистрибутив лучше использовать для embedded систем. Этот вопрос является актуальным на сегодняшний день.
Существует три актуальных подхода для решения этой задачи:
Если кто знает еще, напишите пожалуйста в комментариях.
Я считаю использовать готовый дистрибутив это самый простой и легкий путь. Вы можете скачать готовый образ или сбилдить свой. Сборка своего образа Armbain не всегда является гибкой, т.к вы не можете выбрать любую версия ядра Linux, а использовать только предоставленные.
Следует также ответить главное достоинство готовых дистрибутивов — это их стабильность.
Для начинающих, я бы рекомендовал данные дистрибутивы.
Armbian — это популярный дистрибутив Linux, доступный для самых разных устройств ARM: Orange Pi, Banana Pi, Odroid и т.д … Он основан на Ubuntu и/или Debian.
www.armbian.com [1]
OpenWrt — встроенная операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов. Основные компоненты включают в себя ядро Linux, util-linux, uClibc или musl и BusyBox. Размер всех компонентов оптимизирован в связи с тем, что в большинстве домашних маршрутизаторов сильно ограничен объём памяти.
От себя добавлю, хорошо подойдет для плат с wi-fi на борту (Например Orange Pi Zero).
openwrt.org [2]
Гланым достоинством систем сборок является, то что вы можете собрать минимальный и гибкий Linux для встраиваемых (embedded) систем.
BuildRoot
Buildroot — это система сборки дистрибутивов для встраиваемых систем. Она поддерживает кучу плат и результатом ее работы становятся собранные загрузчик, ядро и образ
файловой системы.
Что оно позволяет собрать buildroot для вашей системы:
Следует обратить внимание, что все дополнительные исходники подтягиваются из сети.
Отличая такой сборки, например, от сборки Armbian:
buildroot.org [3]
3. Использование свой связки:
Для этого нам нужен:
Итак поехали.
Так мы будем собирать локально на своей машине нам нужен кросс компилятор, например linaro. Кросс компилятор поможет на архитектуре x86, собрать наш дистрибутив под целевую платформу ARM.
www.linaro.org [4]
Далее необходимо собрать bootloader.
Bootloader (U-Boot) — самый популярный bootloader для ARM, является U-boot. Главной задачей bootloader является загрузка ядра Linux Kernel. Так же вы можете использовать, например barebox или другой.
Далее. Нужно собрать ядро, на выходе мы должны получить образ ядра и device tree для нашей целевой платформы.
www.kernel.org [6]
RootFs — это корневая файловая система которую примонтирует Kernel после загрузки. Рекомендую использовать Busybox.
busybox.net [7]
Я не говорю, что есть плохие или хорошие подходы. Каждый имеет свои достоинства и недостатки. Это зависит от вашей задачи и какой результат вам необходимо получить.
Автор: alex_modyk
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/328518
Ссылки в тексте:
[1] www.armbian.com: https://www.armbian.com/
[2] openwrt.org: https://openwrt.org/
[3] buildroot.org: https://buildroot.org/
[4] www.linaro.org: https://www.linaro.org/
[5] www.denx.de/wiki/U-Boot: https://www.denx.de/wiki/U-Boot
[6] www.kernel.org: https://www.kernel.org/
[7] busybox.net: https://busybox.net/
[8] Источник: https://habr.com/ru/post/465435/?utm_campaign=465435&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.