Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

The Yocto Project

5.885 Aufrufe

Veröffentlicht am

Презентация на Български от Open Fest 2015.

Презентацията е насочена към хора, които желаят да използват Yocto и OpenEmbedded, за да разработват системи, които пасват на техните нужди и поддържат специфичен хардуер. С течение на времето Yocto се утвърди като де факто стандарт за вградени системи и преносими устройства. Ще бъде предоставена информация как да се изгради Linux система за вградени устроиства и да се създадат софтуерни приложения за нея.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

The Yocto Project

  1. 1. The Yocto Project Радослав Колев radoslav@kolev.info Леон Анави leon@anavi.org
  2. 2. Съдържание  Разработка на embedded Linux продукти  Ключови наименования в ОЕ базирани системи  Малко история  Yocto Project и Poky  Примери с OLinuXino
  3. 3. GNU/Linux дистрибуция Приложения Софтуерна рамка (Qt, GTK+, EFL ...) Основни компоненти Linux ядро, драйвери, device tree Boot loader Потребителско пространство
  4. 4. Особености при разработката на embedded Linux продукти  Oбикновено различна архитектура на устройството (target) от тази на станцията за разработка (host)  Нестандартен хардуер: device tree, конфигурация на Linux ядрото, кръпки  Ограничени ресурси, но и ограничена функционалност
  5. 5. Необходими инструменти  Крос компилатор за архитектурата на вграденото устройството  Автоматизация на процеса на сваляне, конфигуриране, прилагане на кръпки и компилиране на множество компоненти  Генериране на root файлова система и image файл в подходящ формат
  6. 6. Популярни системи за създаване на еmbedded Linux дистрибуции КConfig + Makefile базирани: Buildroot, PTXdist, openWrt  Сравнително прости  Не особено гъвкави  Със специфично предназначение (openWrt)
  7. 7. Популярни системи за създаване на еmbedded Linux дистрибуции OpenEmbedded базирани: Poky, Angstrom, Arago, Tizen, AGL, GENIVI  Стръмна крива на разучаване  Гъвкави и с много възможности  Голяма набор от готови компоненти  Индустриален стандарт
  8. 8. Малко история 2002 - 2003 2004 Openembedded като система за създаване на OpenZaurus Отделяне на bitbake и Openembedded мета данни OpenedHand cъздава Poky Linux 2006 - 2008 2008 2010 Intel купува OpenHand Linux Foundation създава the Yocto Project Започва работа по обща база oe-core 2011
  9. 9. Ключови наименования в ОЕ базирани системи  Bitbake  Слоеве  Pецепти  Mашини и BSP (Board Support Package)  Дистрибуция
  10. 10. Какво е Yocto Project? Съвместен проект под егидата на Linux Foundation с отворен код, предоставящ удобни за ползване инструменти за създаване и развитие на embedded Linux дистрибуции.
  11. 11. Open source проекти в Yocto  Pseudo, Swabber  Eclipse plugin, application developer toolkit  Различни GUI/Web UI инструменти  yocto kernel tooling - помощни инструменти за работа с кръпки за ядрото и сегменти от конфигурацията му  Poky  И още, и още...
  12. 12. Poky  Poky - система за изграждане на дистрибуция, използвана от Yocto Project  Bitbake - инструмент за планиране и изпълнение на задачи  Метаданни - дефиниция на задачи Poky = bitbake + метаданни
  13. 13. Yocto/OE слоеве Комерсиален слой (от OSV) UI слой Хардуерно специфичен слой (BSP) Yocto метаданни (meta-yocto) OpenEmbedded метаданни (oe-core) Слой, дефиниран от разработчика
  14. 14. Yocto Project Releases  6 month release cycle  Security patches and bug fixes one release back  Provides both a 'near current' and LTSI kernels  Yocto Project 2.0 Jethro  Yocto Project 1.8 Fido  Yocto Project 1.7 Dizzy  Yocto Project 1.6 Daisy  Yocto Project 1.5 Dora  Yocto Project 1.4 Dylan
  15. 15. Как се ползва Bitbake? bitbake tizen-common-core-image-crosswalk -e | grep ^DISTRO_FEATURES bitbake -s | grep foo bitbake -c compile foo bitbake -g core-image-minimal bitbake foo bitbake -c clean foo  Проверка на стойност на променлива  Проверка на версията на рецепта  Изпълнение на рецепта  Изчистване на рецепта  Компилиране на рецепта  Генериране на файлове за създаване на графика
  16. 16. Как работи bitbake?
  17. 17. Примери с OLinuXino  Open source hardware  A10/A13/A20 Allwinner Technology ARMv7 SoC  Клас Sunxi
  18. 18. Как да си направим имидж за OlinuXino в три стъпки? (1/3)  Сваляме Poky:  Добяваме слоя meta-sunxi:  Инициализираме средата в директория build: git clone -b fido git://git.yoctoproject.org/poky.git cd poky git clone -b fido https://github.com/linux-sunxi/meta-sunxi.git source oe-init-build-env
  19. 19. Как да си направим имидж за OlinuXino в три стъпки? (2/3)  Редактираме conf/local.conf:  Редактираме conf/bblayers.conf: MACHINE ??= "olinuxino-a20" PARALLEL_MAKE ?= "-j 12" BB_NUMBER_THREADS ?= "12" BBLAYERS ?= " /home/leon/poky-olinuxino/meta /home/leon/poky-olinuxino/meta-sunxi /home/leon/poky-olinuxino/meta-yocto
  20. 20. Как да си направим имидж за OlinuXino в три стъпки? (1/3)  Сваляме Poky:  Добяваме слоя meta-sunxi:  Инициализираме средата в директория build: git clone -b fido git://git.yoctoproject.org/poky.git cd poky git clone -b fido https://github.com/linux-sunxi/meta-sunxi.git source oe-init-build-env
  21. 21. Как да си направим имидж за OlinuXino в три стъпки? (3/3)  Стартираме bitbake:  Пием едно, две или повече кафета...  Копираме имиджа на microSD карта с dd или bmaptool: bitbake core-image-minimal sudo umount /dev/sdX sudo dd if=tmp/deploy/images/olinuxino-a20/core-image-minimal-olinuxino-a20.sunxi-sdimg of=/dev/sdX sync
  22. 22. Как да създадем нов слой?  Чрез yocto-layer: ./scripts/yocto-layer create openfest
  23. 23. Как да създадем нова рецепта?  Създаваме нов файл с име от типа на:  Създаваме рецепта по следния шаблон: <basename>_<version>.bb SUMMARY = "" HOMEPAGE = "" LICENSE = "" LIC_FILES_CHKSUM = "" SRC_URI = "" SRC_URI[md5sum] = "" SRC_URI[sha256sum] = "" S = "${WORKDIR}/${PN}-${PV}" inherit <stuff>
  24. 24. Как да разширим съществуваща рецепта?  Създаваме файл с разширение .bbappend:  Пример за кръпка с промяна в кода:  Пример за добавяне на нов файл: <basename>_<version>.bbappend FILESEXTRAPATHS_prepend := "{THISDIR}/${PN}:${PV}:" SRC_URI += "file://mypatch.patch" SRC_URI += "file://my.conf" do_install_append() { install -m 644 ${WORKDIR}/my.conf ${D}${sysconfdir} }
  25. 25. Как да включим нова рецепта?  Ако е необходимо добавяме слоя, съдържащ рецептата в conf/bblayers.conf  Включваме рецептата, към имиджа чрез неговата рецепта или в conf/local.conf: IMAGE_INSTALL_append = " hello "
  26. 26. Полезни връзки  https://www.yoctoproject.org/documentation  http://www.openembedded.org/wiki/Getting_started  http://free-electrons.com/training/yocto/  http://layers.openembedded.org/layerindex/branch/master/lay ers/  https://www.qtdeveloperdays.com/2013/sites/default/files/pres entation_pdf/Yocto%20Project,%20A%20Vehicle%20for %20Embedded%20Qt%20development.pdf
  27. 27. Въпроси?
  28. 28. Благодаря Ви!

×