Поиск по сайту:

Как создать свой собственный дистрибутив Linux с Yocto на Ubuntu


На этой странице

  1. Необходимые условия для машины разработки
  2. Процесс компиляции и сборки Yocto

В этой статье мы сосредоточимся на создании минимального дистрибутива Linux с использованием проекта Yocto на платформе Ubuntu. Проект Yocto очень известен в мире встраиваемых систем Linux благодаря своей гибкости и простоте использования. Целью проекта Yocto является создание дистрибутива Linux для производителей встроенного оборудования и программного обеспечения. Новый минимальный дистрибутив Linux будет создан для qemu в качестве целевой машины (qemu — это базовый программный эмулятор), и мы будем запускать его в qemu.

Предпосылки для машины разработки

  • Не менее 4–6 ГБ ОЗУ.
  • Последняя версия ОС Ubuntu (в данном случае 16.04 LTS).
  • Не менее 60–80 ГБ свободного места на диске.
  • Установка следующих пакетов перед созданием нового дистрибутива Linux.
  • Загрузите последнюю стабильную ветку Yocto (Poky, минимальная среда разработки).

apt-get update
apt-get install wget git-core unzip make gcc g++ build-essential subversion sed autoconf automake texi2html texinfo coreutils diffstat python-pysqlite2 docbook-utils libsdl1.2-dev libxml-parser-perl libgl1-mesa-dev libglu1-mesa-dev xsltproc desktop-file-utils chrpath groff libtool xterm gawk fop

Как показано ниже, для установки необходимых пакетов разработки требуется почти 1 ГБ.

В этом руководстве стабильная версия poky morty клонируется в систему.

 git clone -b morty git://git.yoctoproject.org/poky.git

Войдите в каталог poky и выполните следующую команду, чтобы установить/экспортировать некоторые переменные для разработки yocto.

source oe-init-build-env

Как показано ниже, после запуска сценария открытой встроенной (oe) среды сборки путь в терминале будет изменен на каталог \build\ для дальнейшей настройки и компиляции нового дистрибутива.

Приведенный выше снимок экрана показывает, что файл local.conf создается внутри каталога conf. Это файл конфигурации для yocto, в котором указаны сведения о целевой машине и SDK для желаемой архитектуры и т. д.

Как показано ниже, установка целевой машины \qemux86-64\.

Раскомментируйте следующие параметры в файле «local.conf», как показано на скриншотах.

DL_DIR ?= "${TOPDIR}/downloads"
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
TMPDIR ?= "${TOPDIR}/tmp"
PACKAGE_CLASSES ?= "package_rpm"
SDKMACHINE ?= "i686"

Как показано ниже, установите пустой пароль для Linux на базе Yocto и включите следующие параметры в файл local.conf. В противном случае пользователь не сможет войти в новый дистрибутив.

EXTRA_IMAGE_FEATURES ?= "debug-tweaks"

Мы не используем какой-либо инструмент с графическим интерфейсом, такой как тостер (варочная панель больше не поддерживается), для создания ОС Linux.

Процесс компиляции и сборки Yocto

Теперь выполните следующую команду утилиты bitbake, чтобы начать загрузку и компиляцию пакетов для выбранной целевой машины.

bitbake core-image-minimal

Важно выполнить приведенную выше команду как обычный пользователь Linux, а не как пользователь root. Как показано на следующем снимке экрана, при запуске команды bitbake от имени пользователя root возникает ошибка.

Снова запустите скрипт экспорта переменных среды (oe-init-build-env) и повторно запустите ту же команду, чтобы начать процесс загрузки и компиляции.

Как показано ниже, первым шагом утилиты сценария сборки является разбор рецепта.

На следующем снимке экрана показано завершение этапа синтаксического анализа скрипта сборки. Он также показывает детали системы сборки, на которой будет создан новый дистрибутив на основе yocto.

После загрузки SDK и необходимых библиотек следующим шагом будет загрузка и компиляция пакетов. На следующем снимке экрана показана задача для нового дистрибутива. Этот шаг займет 2-3 часа, потому что сначала загружаются необходимые пакеты, а затем компилируется для нового дистрибутива Linux.

На следующем снимке экрана показано завершение списка задач.

Скомпилированные новые образы для целевого типа машины \qemux86-64\ находятся внутри пути \build/tmp/deploy/images/qemux86-64\, как показано ниже.

Как показано ниже, приведенная выше команда вызовет ошибку при запуске в Putty.

Приведенная выше команда снова запускается внутри терминала через rdp на платформе Ubuntu.

Другой экран открыт для эмулятора qemu для нового дистрибутива Linux на основе yocto.

Ниже показан экран входа в новый дистрибутив, на котором также показана эталонная версия проекта yocto. Имя пользователя по умолчанию — root и пустой пароль.

Наконец, войдите в новый дистрибутив с именем пользователя root и пустым паролем. Как показано на следующем снимке экрана, основные команды (date,ifconfig и uname) выполняются в минимальной версии Linux.

Цель этой статьи — понять процедуру создания нового дистрибутива Linux с помощью проекта yocto.