Yocto: Создание дистрибутива Yocto с meta-altera
Yocto Project – это Open Source-проект, целью которого является упрощение разработки дистрибутивов Linux для встраиваемых систем и обеспечение их переносимости между различными аппаратными платформами. В этой статье рассказывается об Yocto Project и дается подробная пошаговая инструкция для тех, кто хочет начать использовать Yocto для 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) связанна со спецификацией долгой поддержки.
bitbake virtual/bootloader
bitbake virtual/kernel
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”
Must I add linaro tool chain when build linux image?
not necessarily, you can choose another toolchain for building
I have some problem, could you help me?
I had run core-image successfully after that, i built image followed this guide: https://rocketboards.org/foswiki/Documentation/BuildingBootloader#Cyclone_V_SoC_and_Arria_V_SoC
And i wrote it to sd card but when i used minicom to boot it on De1 there was nothing happen? If i missed anything? Or i have config u-boot to can boot Linux on De1?
did you have any config in u-boot file?
I wrote the article a long time ago, everything could have changed.
Comments are closed.