ELBE — более простая альтернатива Yocto/OpenEmbedded и Buildroot


Для поддержки встроенного дизайна существует несколько вариантов выбора операционной системы (ОС). Некоторые из традиционных подходов к созданию собственных систем Linux — это использование встроенных систем, таких как Yocto/OpenEmbedded или Buildroot. Варианты, доступные для системной интеграции, включают сборку всего вручную, двоичные дистрибутивы (Debian, Ubuntu, Fedora и т. д.) и системы сборки (Buildroot, Yocto, PTXdist и т. д.). Основным недостатком систем сборки является то, что они не так просты, как двоичный дистрибутив, а также время сборки больше.

Почему родилась ELBE?

Раньше встроенные устройства имели 4 МБ флэш-памяти и 16 МБ ОЗУ. С этими спецификациями люди начали взламывать корневую файловую систему для своих устройств. Но в некоторых случаях им приходилось сначала создавать кросс-инструментальную цепочку. Для этого подходят такие инструменты, как OpenEmbedded, Buildroot, если они в хорошем состоянии. Для этого для разработки системы используется множество библиотек. Теперь, в зависимости от используемой среды сборки, добавить пакет сложно. Воспроизводимость, поддержка и кросс-компиляция всегда были сложной задачей для разработки на низком уровне. В таком случае Debian можно было бы использовать повторно, чтобы удовлетворить наши потребности. А вот и ELBE (Embedded Linux Build Environment), которая представляет собой систему на основе Debian для создания корневых файловых систем для встроенных устройств.

ELBE альтернатива Yocto/OpenEmbedded

Таким образом, основным преимуществом в этом является создание собственного пакета из исходного кода, что было более или менее сложно при традиционных подходах и неосуществимо с Debos аналогичным решением для создания собственных образов Debian. Вы также можете управлять своей лицензией, и она поддерживает несколько архитектур. Сообщество разработчиков открытого исходного кода внесло свой вклад в поддержку Ubuntu для ELBE. Недавно ELBE использовался для создания систем Ubuntu для платформы ARM32 i.MX6 и платформы ARM64 Rockchip RK3399.

ELBE процесс

Когда вы запускаете ELBE, он создает виртуальную машину для построения корневых файловых систем, эта виртуальная машина называется «initvm». В процессе построения корневой файловой системы он должен быть снабжен файлом XML. XML-файл ELBE может содержать архив, который может содержать файлы конфигурации и дополнительное программное обеспечение. Он использует предварительно созданное программное обеспечение в виде пакетов Debian (.deb). Можно использовать собственные репозитории для загрузки специальных пакетов в корневую файловую систему, что обычно затруднено в других системах сборки. С помощью таких инструментов Debian, как APT (расширенный пакетный инструмент), поддерживаются полученные корневые файловые системы (настроенные установки Debian). В этом самое большое отличие ELBE от других систем сборки, таких как Yocto Project и Buildroot.

Помимо всего этого, ELBE также может создавать комплекты разработки программного обеспечения для построения корневой файловой системы. Этот SDK очень похож на стандартный SDK Yocto.

С чего начать?

Шаги 1,2,3 нужно выполнить только один раз.

  1. Установите Debian 10 (Buster) на свой хост-компьютер или виртуальную машину
  2. установить ELBE и зависимости с apt на вашем хосте Debian
  3. Создайте initvm, запускающий среду сборки:
	
elbe initvm create

4. Затем создайте корневую файловую систему внутри initvm, например, для Beaglebone Black:

elbe initvm submit examples/armhf-ti-beaglebone-black.xml

Полное руководство по созданию initvm и отправке файла XML можно найти здесь. В конце концов, разработчик программного обеспечения должен решить, является ли ELBE жизнеспособной альтернативой Yocto/OpenEmbedded или Buildroot для его/ее собственных проектов в зависимости от требуемого уровня гибкости и ресурсов в целевой системе (-ах).

Источник: все изображения были взяты из Bootlin’s Embedded Linux and Kernel Engineer, слайдов презентации Köry Maincent с Open Source Summit 2020 и Wiki.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments