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

В процесі розробки, наприклад, для Intel Edison або Galileo, може статися так, що потрібного для експериментів пристрою під рукою не виявилося. Схоже відбувається і тоді, коли «залізо» є, але встановлена на ньому ОС не підтримує всіх необхідних для проекту можливостей. Що робити?


Один з варіантів вирішення цієї проблеми – запуск цільової операційної системи на віртуальній машині. На ній можна компілювати, розгортати і тестувати програми. Сьогодні поговоримо про те, як створювати образи 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). Він приступить до перевірки правильності налаштування системи складання.


Перевірка настройки системи збирання

Після перевірки виберіть з випадаючого меню, в якості цільової системи, qemux86.


Вибір цільової системи

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


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

Після цього клацніть по кнопці «Advanced configuration».


Перехід до розширених налаштувань

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


Вибір формату способу

На вкладці «Output» вкажіть настройки, відповідні вашим потребам. Радимо додати в образ як мінімум 4 Гб вільного простору для включення SDK для архітектури i686 (якщо ви експериментуєте з платою Edison). Крім того, було виявлено, що досить корисно встановлювати «деб» в якості формату файлової системи. У результаті ми прийшли до наступних налаштувань.


Налаштування способу

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


Запуск складання

Hob запустить примірник
bitbake core-image-full-cmdline
з заданими налаштуваннями.


Збірка

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


Налаштування кількості потоків, що використовуються при складанні

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


Перехід до налаштування складу пакетів, що включаються в образ

У вікні виберіть пакети, які ви бажаєте додати в образ.


Вибір пакетів

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


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

На самому початку запуску система попросить ввести пароль суперкористувача.


пароль

Відкриється ще одне вікно командного рядка UNIX. В ньому можна спостерігати за індикатором завантаження на тлі логотипу Yocto Project.


Завантаження

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


Вхід

Тепер все готово для того, щоб приступити до експериментів з віртуальною машиною QEMU, на якій працює Yocto Linux.

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


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

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

Тепер ви можете запускати отримані образи, використовуючи емулятор або гіпервізор, яким зазвичай користуєтеся. Серед них – Microsoft Hyper-V, VMware Fusion, VirtualBox та інші. Вдалих експериментів!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.