Yocto: Создание дистрибутива Yocto с meta-altera

 

Yocto: Создание дистрибутива Yocto с meta-altera

Yocto Project – это Open Source-проект, целью которого является упрощение разработки дистрибутивов Linux для встраиваемых систем и обеспечение их переносимости между различными аппаратными платформами. В этой статье рассказывается об Yocto Project и дается подробная пошаговая инструкция для тех, кто хочет начать использовать Yocto для DE0-Nano-SoC Kit.

DE0-Nano-SoC Kit
DE0-Nano-SoC Kit


Запуск DE0-Nano-SoC Kit после покупки.

Yocto Project через систему сборки OpenEmbedded обеспечивает Open Source среду разработки нацеленную на архитектуры ARM, MIPS, PowerPC, и x86 для разнообразных платформ включая x86-64 и эмулятор работы для них. Вы можете использовать компоненты из Yocto Project для проектирования, разработки, компоновки, симулирования и тест полного программного стека используя Linux, X Window System, GTK+ frameworks, и Qt frameworks.

Здесь несколько основных моментов об Yocto Project:

  • Возможно включать последнюю версию ядра Linux вместе с набором системных команд и библиотек подходящих для встраиваемой среды.
  • Делает системные компоненты доступными такие как X11, GTK+, Qt, Clutter, and SDL (среди других), и так вы можете создавать приложения с графическим интерфейсом при условии наличия экрана. Для устройств без графического экрана или где вы желаете использовать альтернативный UI frameworks, эти компоненты не обязательно устанавливаются.
  • Создание ориентированного и стабильного ядра ориентированного на проект OpenEmbedded, с помощью которого можно легко и надежно собирать и разрабатывать проект под вашу платформу.
  • Полная поддержка широкого диапазона железа и устройств эмуляции через Quick EMUlator (QEMU).
  • Yocto Project предоставляет механизм, который позволяет легко расширять систему, создавать настройки и организовывать их.

Вы можете использовать Yocto Project чтобы с генерировать образ для различных видов устройств. Для упомянутого ранее, Yocto Project поддерживает создание упомянутого образа, образ которого можно загрузить на плату или про симулировать используя QEMU. Стандартный пример – полная симуляция работы устройства для различных аппаратных платформ x86, ARM, MIPS, и PowerPC. После эмуляции работы собранного образа под Вашу платформу, образ может быть запущен на железе, проверка возможно только на Linux машинах.

Во первых нам нужно скачать все репозитории относящийся к нашему проекту.

git clone -b jethro git://git.yoctoproject.org/poky.git
pushd poky
git clone -b jethro git://github.com/kraj/meta-altera.git
git clone -b jethro git://git.linaro.org/openembedded/meta-linaro.git
popd

Подготовить проект для сборки.
Здесь нам необходим запустить установочный скрип oe, для конфигурации local.conf и bblayers.conf файлов.

source poky/oe-init-build-env ./build

Вы должны выбрать образ для сборки ядра.

### Shell environment set up for builds. ###

You can now run 'bitbake <target>'

Common targets are:
    core-image-minimal
    core-image-sato
    meta-toolchain
    meta-toolchain-sdk
    adt-installer
    meta-ide-support

You can also run generated qemu images with a command like 'runqemu qemux86'

Меняем конфигурацию для bblayers.conf.

gedit conf/bblayers.conf

Вносим изменения в файл.

# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /home/and1chaosmario/de0_nano_soc_kit/Yocto/poky/meta \
  /home/and1chaosmario/de0_nano_soc_kit/Yocto/poky/meta-yocto \
  /home/and1chaosmario/de0_nano_soc_kit/Yocto/poky/meta-yocto-bsp \
  /home/and1chaosmario/de0_nano_soc_kit/Yocto/poky/meta-altera \
  /home/and1chaosmario/de0_nano_soc_kit/Yocto/poky/meta-linaro/meta-linaro-toolchain \
  "
BBLAYERS_NON_REMOVABLE ?= " \
  /home/and1chaosmario/de0_nano_soc_kit/Yocto/poky/meta \
  /home/and1chaosmario/de0_nano_soc_kit/Yocto/poky/meta-yocto \
  "

Меняем конфигурацию для local.conf.

gedit conf/local.conf

Вносим изменения в файл.

# This sets the default machine to be qemux86 if no other machine is selected:
MACHINE = "cyclone5"
#MACHINE ??= "qemux86"
...
PREFERRED_PROVIDER_virtual/kernel = "linux-altera"
PREFERRED_VERSION_linux-altera = "4.3%"

GCCVERSION = "linaro-4.9"
SDKGCCVERSION = "linaro-4.9"
DEFAULTTUNE = "cortexa9hf-neon"
...

linux-altera -> выпущенная версия ядра (на данный момент 4.2/4.3/4.4) связанна со спецификацией тестирования.
linux-altera-dev -> текущая ветка разработки ядра (4.4 в данный момент).
linux-altera-ltsi -> выпущенная версия ядра (3.10/4.1) связанна со спецификацией долгой поддержки.
linux-altera-ltsi-rt -> выпущенная версия ядра (3.10) связанна со спецификацией долгой поддержки, с патчем для систем реального времени.
linux-altera-ltsi-dev -> текущая ветка разработки (4.1) связанна со спецификацией долгой поддержки.

bootloader
bitbake virtual/bootloader

kernel
bitbake virtual/kernel

image
bitbake core-image-minimal

ls -la Yocto/build/tmp/deploy/images/cyclone5/ > images.txt
total 20264
drwxr-xr-x 2 and1chaosmario and1chaosmario    4096 Nov  1 20:02 .
drwxrwxr-x 3 and1chaosmario and1chaosmario    4096 Nov  1 17:27 ..
-rw-r--r-- 1 and1chaosmario and1chaosmario 4575232 Nov  1 20:02 core-image-minimal-cyclone5-20161101155636.rootfs.cpio
-rw-r--r-- 1 and1chaosmario and1chaosmario 8388608 Nov  1 20:02 core-image-minimal-cyclone5-20161101155636.rootfs.ext3
-rw-r--r-- 1 and1chaosmario and1chaosmario     928 Nov  1 20:02 core-image-minimal-cyclone5-20161101155636.rootfs.manifest
-rw-r--r-- 1 and1chaosmario and1chaosmario 2269180 Nov  1 20:02 core-image-minimal-cyclone5-20161101155636.rootfs.tar.gz
lrwxrwxrwx 1 and1chaosmario and1chaosmario      54 Nov  1 20:02 core-image-minimal-cyclone5.cpio -> core-image-minimal-cyclone5-20161101155636.rootfs.cpio
lrwxrwxrwx 1 and1chaosmario and1chaosmario      54 Nov  1 20:02 core-image-minimal-cyclone5.ext3 -> core-image-minimal-cyclone5-20161101155636.rootfs.ext3
lrwxrwxrwx 1 and1chaosmario and1chaosmario      58 Nov  1 20:02 core-image-minimal-cyclone5.manifest -> core-image-minimal-cyclone5-20161101155636.rootfs.manifest
lrwxrwxrwx 1 and1chaosmario and1chaosmario      56 Nov  1 20:02 core-image-minimal-cyclone5.tar.gz -> core-image-minimal-cyclone5-20161101155636.rootfs.tar.gz
-rw-rw-r-- 2 and1chaosmario and1chaosmario  924985 Nov  1 18:32 modules--4.3+git0+5938523338-r0-cyclone5-20161101142949.tgz
lrwxrwxrwx 1 and1chaosmario and1chaosmario      59 Nov  1 18:32 modules-cyclone5.tgz -> modules--4.3+git0+5938523338-r0-cyclone5-20161101142949.tgz
-rw-r--r-- 2 and1chaosmario and1chaosmario     294 Nov  1 20:01 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
lrwxrwxrwx 1 and1chaosmario and1chaosmario      29 Nov  1 17:27 u-boot-cyclone5 -> u-boot-cyclone5-2013.01.01-r0
-rwxr-xr-x 2 and1chaosmario and1chaosmario 1650284 Nov  1 17:27 u-boot-cyclone5-2013.01.01-r0
-rwxr-xr-x 2 and1chaosmario and1chaosmario  237772 Nov  1 17:27 u-boot-cyclone5-2013.01.01-r0.bin
-rwxr-xr-x 2 and1chaosmario and1chaosmario  237836 Nov  1 17:27 u-boot-cyclone5-2013.01.01-r0.img
lrwxrwxrwx 1 and1chaosmario and1chaosmario      33 Nov  1 17:27 u-boot-cyclone5.bin -> u-boot-cyclone5-2013.01.01-r0.bin
lrwxrwxrwx 1 and1chaosmario and1chaosmario      33 Nov  1 17:27 u-boot-cyclone5.img -> u-boot-cyclone5-2013.01.01-r0.img
lrwxrwxrwx 1 and1chaosmario and1chaosmario      33 Nov  1 17:27 u-boot-spl-cyclone5 -> u-boot-spl-cyclone5-2013.01.01-r0
-rwxr-xr-x 2 and1chaosmario and1chaosmario  578556 Nov  1 17:27 u-boot-spl-cyclone5-2013.01.01-r0
-rwxr-xr-x 2 and1chaosmario and1chaosmario   43652 Nov  1 17:27 u-boot-spl-cyclone5-2013.01.01-r0.bin
lrwxrw:xrwx 1 and1chaosmario and1chaosmario      37 Nov  1 17:27 u-boot-spl-cyclone5.bin -> u-boot-spl-cyclone5-2013.01.01-r0.bin
lrwxrwxrwx 1 and1chaosmario and1chaosmario      58 Nov  1 18:32 zImage -> zImage--4.3+git0+5938523338-r0-cyclone5-20161101142949.bin
-rw-r--r-- 2 and1chaosmario and1chaosmario 3892248 Nov  1 18:32 zImage--4.3+git0+5938523338-r0-cyclone5-20161101142949.bin
-rw-r--r-- 2 and1chaosmario and1chaosmario   19446 Nov  1 18:32 zImage--4.3+git0+5938523338-r0-socfpga_cyclone5_de0_sockit-20161101142949.dtb
-rw-r--r-- 2 and1chaosmario and1chaosmario   20378 Nov  1 18:32 zImage--4.3+git0+5938523338-r0-socfpga_cyclone5_socdk-20161101142949.dtb
-rw-r--r-- 2 and1chaosmario and1chaosmario   19572 Nov  1 18:32 zImage--4.3+git0+5938523338-r0-socfpga_cyclone5_sockit-20161101142949.dtb
-rw-r--r-- 2 and1chaosmario and1chaosmario   18878 Nov  1 18:32 zImage--4.3+git0+5938523338-r0-socfpga_cyclone5_socrates-20161101142949.dtb
lrwxrwxrwx 1 and1chaosmario and1chaosmario      58 Nov  1 18:32 zImage-cyclone5.bin -> zImage--4.3+git0+5938523338-r0-cyclone5-20161101142949.bin
lrwxrwxrwx 1 and1chaosmario and1chaosmario      77 Nov  1 18:32 zImage-socfpga_cyclone5_de0_sockit.dtb -> zImage--4.3+git0+5938523338-r0-socfpga_cyclone5_de0_sockit-20161101142949.dtb
lrwxrwxrwx 1 and1chaosmario and1chaosmario      72 Nov  1 18:32 zImage-socfpga_cyclone5_socdk.dtb -> zImage--4.3+git0+5938523338-r0-socfpga_cyclone5_socdk-20161101142949.dtb
lrwxrwxrwx 1 and1chaosmario and1chaosmario      73 Nov  1 18:32 zImage-socfpga_cyclone5_sockit.dtb -> zImage--4.3+git0+5938523338-r0-socfpga_cyclone5_sockit-20161101142949.dtb
lrwxrwxrwx 1 and1chaosmario and1chaosmario      75 Nov  1 18:32 zImage-socfpga_cyclone5_socrates.dtb -> zImage--4.3+git0+5938523338-r0-socfpga_cyclone5_socrates-20161101142949.dtb

Итого: собрали дистрибутив Yocto с meta-altera для DE0-Nano-SoC Kit.

5 thoughts on “Yocto: Создание дистрибутива Yocto с meta-altera

    1. not necessarily, you can choose another toolchain for building

  1. I wrote the article a long time ago, everything could have changed.

Comments are closed.