Запускаем Yocto Linux на виртуальной машине

в 14:21, , рубрики: IoT, Yocto Linux, Блог компании Intel, Настройка Linux, программирование микроконтроллеров, разработка, Разработка для интернета вещей, Разработка под Linux, метки:

В процессе разработки, например, для Intel Edison или Galileo, может случиться так, что нужного для экспериментов устройства под рукой не оказалось. Похожее происходит и тогда, когда «железо» есть, но установленная на нём ОС не поддерживает всех необходимых для проекта возможностей. Что делать?

Запускаем Yocto Linux на виртуальной машине - 1


Один из вариантов решения этой проблемы – запуск целевой операционной системы на виртуальной машине. На ней можно компилировать, развёртывать и тестировать программы. Сегодня поговорим о том, как создавать образы Yocto Linux, подходящие для запуска в виртуальных средах, например, в простом программном эмуляторе QEMU. Кроме того, подобные образы можно использовать в системах с гипервизорами, скажем, в Microsoft Hyper-V на Windows.

Предварительные требования

Для того, чтобы успешно освоить это руководство, вам понадобится следующее:

  • ОС Debian/Ubuntu (протестировано на Debian 8.2. amd64).
  • Подключение к интернету.
  • Как минимум 100 Гб свободного пространства на жёстком диске.

Подготовка компьютера

В качестве root-пользователя (или с использованием «sudo») выполните на компьютере следующую команду:

# 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. Успешность выполнения этой команды зависит от версии Ubuntu/Debian, которой вы пользуетесь. Однако, вы вполне можете, для того, чтобы разрешить зависимости пакетов, воспользоваться «aptitude» и выполнить принудительную установку подходящих версий необходимых пакетов (например, такой командой: «aptitude install libsdl1.2-dev»).

Примечание №2. Для других дистрибутивов Linux, таких, как RedHat, CentOS, Fedora, SuSe, Gentoo, и так далее, мы бы посоветовали поискать подходящие версии вышеупомянутых пакетов с использованием соответствующего менеджера пакетов (например, zypper или yum).

Шаг первый. Настройка рабочей директории

Эти команды нужно выполнить в режиме обычного пользователя, root-привилегии не нужны.

# cd
# mkdir yocto-2.0
# cd yocto-2.0
# wget http://downloads.yoctoproject.org/releases/yocto/yocto-2.0/poky-jethro-14.0.0.tar.bz2
# tar xvjf poky-jethro-14.0.0.tar.bz2
# cd poky-jethro-14.0.0/

Примечание №3. Здесь можно выбрать другую ветку релизов Yocto. В этом руководстве мы пользуемся Yocto Poky 2.0.14.0.0 (Jethro).

Примечание №4. Если вы хотите загрузить самый свежий релиз исходных кодов Yocto, можете обратиться к ветке master. При этом понадобится поменять пару команд из вышеприведённого листинга на следующие:

# git clone git://git.yoctoproject.org/poky.git
# cd poky

Примечание №5. Нужную ветку можно выбрать, используя её кодовое имя. Например, так:

# git clone -b jethro git://git.yoctoproject.org/poky.git

Шаг второй. Настройка переменных окружения

Эта настройка очень проста, выполняется она с помощью скрипта от разработчиков Yocto.

# . ./oe-init-build-env

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

/home/<your user>/yocto-2.0/poky-jethro-14.0.0/build/.

Шаг третий. Настройка BitBake

После исполнения скрипта из предыдущего шага был создан файл conf/local.conf.

Этот конфигурационный файл нужен для настройки BitBake, системы сборки Yocto (это центральный компонент Yocto Project).

Отредактируйте конфигурационный файл BitBake в любом текстовом редакторе, которым пользуетесь. Мы редактировали его в редакторе nano. Это – простой консольный текстовый редактор для Unix-сред. Запускается он так:

# cd conf/
# nano local.conf

В конфигурационном файле раскомментируйте следующие строки:

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

Советуем собирать образы, включая в них все доступные дополнительные возможности. Хотя в результате файлы образов получаются немаленькими (около 8 Гб каждый), они включают в себя всё, что только можно, и, как результат, подходят для любых задач разработки.

EXTRA_IMAGE_FEATURES = "dbg-pkgs dev-pkgs ptest-pkgs tools-sdk tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks"

Сохраните изменения в файле local.conf. В нашем случае это делается с помощью комбинации клавиш Ctrl+X. Теперь выполните следующие команды:

# cd ..
# hob

В ответ на них должен запуститься Hob (графический интерфейс для BitBake, основанный на GTK-2). Он приступит к проверке правильности настройки системы сборки.

Запускаем Yocto Linux на виртуальной машине - 2
Проверка настройки системы сборки

После проверки выберите из выпадающего меню, в качестве целевой системы, qemux86.

Запускаем Yocto Linux на виртуальной машине - 3

Выбор целевой системы

Подождите, пока Hob завершит разбор рецептов BitBake и сгенерирует дерево зависимостей. Затем выберите рецепт для целевого образа из соответствующего выпадающего списка. В нашем случае выбран полный образ без графического интерфейса: core-image-full-cmdline.

Запускаем Yocto Linux на виртуальной машине - 4

Выбор рецепта для сборки образа

После этого щёлкните по кнопке «Advanced configuration».

Запускаем Yocto Linux на виртуальной машине - 5

Переход к расширенным настройкам

На вкладке «Image types», в меню «Distro», выберите «poky», если хотите собрать самый свежий стабильный релиз. Затем, в списке «Image types», выберите желаемый формат образа. Обычно имеет смысл выбирать здесь «.iso», «.vdi» и «.vmdk». Образы в таких форматах наиболее удобны для практического использования.

Запускаем Yocto Linux на виртуальной машине - 6

Выбор формата образа

На вкладке «Output» задайте настройки, соответствующие вашим потребностям. Советуем добавить в образ как минимум 4 Гб свободного пространства для включения SDK для архитектуры i686 (если вы экспериментируете с платой Edison). Кроме того, было обнаружено, что весьма полезно устанавливать «deb» в качестве формата корневой файловой системы. В итоге мы пришли к следующим настройкам.

Запускаем Yocto Linux на виртуальной машине - 7

Настройка образа

Теперь можете сохранить выполненные настройки, нажав на кнопку «Save», и, в основном окне, нажать на кнопку «Build Image» для запуска процесса сборки образа.

Запускаем Yocto Linux на виртуальной машине - 8

Запуск сборки

Hob запустит экземпляр bitbake core-image-full-cmdline с заданными настройками.

Запускаем Yocto Linux на виртуальной машине - 9

Сборка

Примечание №6. Процесс сборки может занять очень много времени. Но, в зависимости от возможностей вашего компьютера, вы можете изменить число потоков, использующихся при сборке, настраивая параметры «BitBake parallel threads» и «Make parallel threads» в окне настроек Hob.

Запускаем Yocto Linux на виртуальной машине - 10

Настройка количества потоков, использующихся при сборке

Примечание №7. И, наконец, при использовании Hob, у вас есть возможность выбрать, какие пакеты вы хотите включить в образ, который планируете собрать. Для того, чтобы это сделать, перед началом сборки образов, нажмите на кнопку «Edit image recipe».

Запускаем Yocto Linux на виртуальной машине - 11

Переход к настройке состава пакетов, включаемых в образ

В появившемся окне выберите пакеты, которые хотите добавить в образ.

Запускаем Yocto Linux на виртуальной машине - 12

Выбор пакетов

Когда процесс сборки образов завершится, вы можете тут же их опробовать! Для этого нажмите на кнопку «Run image». Hob запустит QEMU с только что собранным образом qemux86.

Запускаем Yocto Linux на виртуальной машине - 13

Образ собран и готов к запуску

В самом начале запуска система попросит задать пароль суперпользователя.

Запускаем Yocto Linux на виртуальной машине - 14

Ввод пароля

Запустится ещё одно окно командной строки UNIX. В нём можно наблюдать за индикатором загрузки на фоне логотипа Yocto Project.

Запускаем Yocto Linux на виртуальной машине - 15

Загрузка

После загрузки вы можете войти в учётную запись root только что созданного образа Yocto. Помните о том, что, добавив параметр отладки (debug-tweak) в переменную EXTRA_IMAGE_FEATURES в файле conf/local.conf, вы сможете входить в систему как root-пользователь без пароля. В противном случае нужно будет задать пароль для root-пользователя в рецепте BitBake перед сборкой образа.

Запускаем Yocto Linux на виртуальной машине - 16

Вход в систему

Теперь всё готово для того, чтобы приступить к экспериментам с виртуальной машиной QEMU, на которой работает Yocto Linux.

Примечание №8. После сборки образа Yocto по методике, представленной выше, на диске будет занято 89,8 Гб.

Запускаем Yocto Linux на виртуальной машине - 17

Размер данных, сгенерированных при сборке образов

Итоги

Образы Yocto Linux, сгенерированные при сборке, можно найти по адресу «~/yocto-2.0/poky-jethro-14.0.0/build/tmp/deploy/images/qemux86/*». Здесь, в зависимости от настроек, могут быть файлы в различных форматах. Например, файлы .iso, .vmdk, .vdi.

Теперь вы можете запускать полученные образы, используя эмулятор или гипервизор, которым обычно пользуетесь. Среди них – Microsoft Hyper-V, VMware Fusion, VirtualBox и другие. Удачных экспериментов!

Автор: Intel

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js