Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Programowanie Systemów Wbudowanych
Kompilacja OS dla systemu wbudowanego
KSEM WETI PG
April 20, 2015
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
HistoriaProjekt OpenEmbedded - framework do budowania dystrybucjisystemu Linux dla systemów wbudowych
I Wyrósł na bazie projektu OpenZaurusdla Sharp Zaurus Personal DigitalAssistants (PDAs). W 2001 roku SharpCorporation przedstawił SL-5000 PDA,nazywany Zaurus, z dystrybucjąsystemu Linux o nazwie Lineo.
I Niedługo po tym Chris Larsonuruchomił projekt OpenZaurus -system operacyjny oparty na systemiebuildroot. Programiści zaczęlirozszerzać projekt o kolejne pakietyprogramów dla coraz bardziej licznychplatform sprzętowych.
I Styczeń 2003 - społeczność skupionawokół OpenZaurus rozpoczęła dyskusjęo rozwijaniu nowego systemu dobudowania dystrybucji Linux dlasystemów wbudowanych. Chris Larson,Michael Lauer, and Holger Schurigrozpoczęli pracę nad OpenEmbedded.
I Marzec 2011 - połączenie projektówOpenEmbedded i Yocto pod nazwąOE-Core.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Bitbake i metadane
Dwa zasadnicze elementy projektu OpenEmbedded
I BitBake - build engine (napisany w Python-ie)I Metadata (metadane) - instrukcje “budowania” dla BitBake
From OE user’s manual:“unlike single project tools like make [BitBake] is not based on onemakefile or a closed set of interdependent makefiles, but collects andmanages an open set of largely independent build descriptions(package recipes) and builds them in proper order.”
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Outline
OpenEmbeddedBitBakeMetadaneBudowanie obrazu
Yocto ProjectPoky build systemWirtualizacjaArchitektura systemu PokyArchitektura BitBakeBudowanie obrazu Yocto
Budowa obrazu Yocto dla Intel Galileo
Debugowanie procesu budowy obrazu
Literatura
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
BitBake
Źródło: P. Raghavan, Amol Lad, Sriram Neelakandan, “Embedded Linux system design and development”
BitBake analizuje przepisy (recipes)i pliki konfiguracyjne, aby ustalić,
co i jak ma być zbudowane⇓
Pobiera z sieci kod źródłowy⇓
Buduje obrazy zbiorów pakietów i systemuplików
.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
BitBake
I Implementacja w Python’ie na bazie menadżera pakietówsystemu Gentoo (emerge)
I Pobiera kody źródłowe z sieci, jako “tarballs” (archiwa .tar) lubz repozytoriów (svn, cvs, git...)
I Instaluje patch-e zawarte w opisach pakietówI Domyślnie buduje najnowsze wersje wszystkich
kompontentówI Buduje wskazane wersje kompilatorów i kompilatorów
skrośnych (crosscompilers) oraz narzędzi konfiguracyjnych(autoconf...)
I Konfiguruje, kompiluje i lokuje pakiety (kopiuje do systemuplików), włącznie z bibliotekami C
I Potrafi kompilować równolegle dla kilku różnych architektursprzętowych
I Buduje obrazy systemów plików, obsługuje formaty pakietów:.rpm, .ipk, .deb
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Formaty pakietów LinuxI deb - skrót od “Deborah”, imienia byłej żony twórcy Debiana,
Iana Murdocka.I Format pakietu instalacyjnego używanego przez dystrybucję
systemu operacyjnego Linux Debian GNU/Linux i pochodnych(Progeny, Ubuntu, Corel) .
I Instalator: dpkg.I Używa Makefile do kontroli procesu budowania pakietu.
I rpm - skrót od Red Hat Package Manager.I Format pakietu instalacyjnego używanego przez dystrybucję
systemu operacyjnego Red Hat Linux (aktualnie również przezdystrybucje Fedora, SUSE, Mandriva, PLD).
I Instalator: rpm.I Używa własnego narzędzia do kontroli procesu budowania
pakietu (rpmbuild)I Makra RPM są tłumaczone na przepisy dla Makefile.
I ipk - wcześniej ipkg (Itsy Package Management System)I Format pakietu instalacyjnego używanego przez dystrybucje
pochodne Debiana dla systemów wbudowanych (Unslung,OpenWrt, Openmoko, webOS, Gumstix, the iPAQ, QNAPNASes) oraz OpenEmbedded i Yocto Project.
I Instalator: opkg (kiedyś ipkg)
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Bitbake - proces budowania obrazu
Źródło: www.denx.de/wiki/
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Outline
OpenEmbeddedBitBakeMetadaneBudowanie obrazu
Yocto ProjectPoky build systemWirtualizacjaArchitektura systemu PokyArchitektura BitBakeBudowanie obrazu Yocto
Budowa obrazu Yocto dla Intel Galileo
Debugowanie procesu budowy obrazu
Literatura
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Metadane (Metadata)
Cztery funkcjonalne katogorie metadanych:I Przepisy, ang. Recipes (*.bb) — instrukcje dla BitBake do
zbudowania pojedynczego pakietu. Opisują pakiet, jegozależności i ewentualne specjalne akcje potrzebne do jegozbudowania
I Klasy, ang. Classes (*.bbclass) — enkapsulują funkcjonalnściprzepisów. Pełnią rolę podobną do klas w obiektowychjęzykach programowania
I Zadania, ang. Tasks — używane do grupowania pakietów wsystemie plików. Mają relatywnie prostą budowę, zwykleskładają się z kilku linii definiujących zależności miedzypakietami.
I Konfiguracje, ang. Configuration (*.conf)—określająogólne zachowanie BitBake (local configuration,machine/distro configuration).
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Outline
OpenEmbeddedBitBakeMetadaneBudowanie obrazu
Yocto ProjectPoky build systemWirtualizacjaArchitektura systemu PokyArchitektura BitBakeBudowanie obrazu Yocto
Budowa obrazu Yocto dla Intel Galileo
Debugowanie procesu budowy obrazu
Literatura
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Praca z OpenEmbedded
I Pobranie OpenEmbedded:git clone git://git.openembedded.org/openembedded-core
I Pobranie BitBake (do katalogu openembedded-core):git clone git://github.com/openembedded/bitbake
I Konfiguracja OpenEmbedded:h�p://docs.openembedded.org/usermanual/html/ge�ingoe_configuring_oe.html
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Struktura katalogów przestrzeni roboczej
my_OE/|−− bitbake|−−−− bin|−−−− ...|−− OE.mtn‘−− openembedded|−− _MTN ==> special Monotone directory|−− classes|−− conf|−− contrib|−− files|−− packages ==> package rule files, bitbake recipes|−−−− tasks/ ==> base tasks, useful tasks groups in file recipes|−−−− conf|−−−− machine/ ==> machine rule files|−−−− distro/ ==> distro rule files|−− site
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Konfiguracja środowiska
Bitbake powinien być zawsze dostępny jako plik wykonywalny. Wstarszych wersjach OE należy ustawić zmienne środowiskoweBBPATH i BBFILES:
$ export PATH=$PATH:${HOME}/my_OE/bitbake/bin/$ export BBPATH=${HOME}/my_OE/build:${HOME}/my_OE/openembedded$ export BBFILES=${HOME}/my_OE/openembedded/packages/∗/∗.bb
Jeśli pracujemy z najnowszą wersją OE, konfigurację środowiskadefiniuje plik oe-init-build-env :
$ source ./oe−init−build−env [<build directory>]
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Plik local.conf
Plik konfiguracyjny w katalogu roboczym:
my_OE/−−build/−−−−conf/−−−−−− local.conf
Podstawowy plik konfiguracyjny ze zmiennymi OE. Najważniejszez nich to:
I MACHINE = "any_available_machine_type"I DISTRO = "any_available_distro"
OE wykorzystuje tą informację jako punkt wyjściowy dozbudowania kompilatora skrośnego dla docelowej architektury orazzbudowania dystrybucji OS dla tej architektury.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa dystrybucji (distro)
Budowa przykładowego obrazu:
~/my_OE/build$ bitbake core−image−minimal
I włączamy ulubiony kanał YouTube ... ;)
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa dystrybucji (distro)
Po pierwszej kompilacji utworzony zostaje nowy katalog tmp,którego BitBake używa jako katalogu wyjściowego:
~/my_OE/build/tmp/|−− cache/|−− cross/ ==> cross tools (gcc, ldd, ...)|−− deploy/|−−−− images ==> final image files (cpio, j�s2, ext3, ...)|−−−− ipk ==> final packets|−− rootfs/ ==> final rootfs layout.|−− staging/ ==> shared items availables for the whole system.|−− stamps/ ==> magnagement stamps.|−− work/ ==> where bitbake uncompress, configure, compile, ...
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Yocto Project
I Yocto - najmniejsza jednostka układu SI. Prefiks yoctooznacza 10^-24.
I Projekt powstał na bazie OpenEmbedded. “Rdzeń” projektuYocto to system Poky (autor: Richard Purdie).
I Listopad 2010 - Yocto Project pod opieką Linux Foundation.I od 2011 - Yocto Project i OpenEmbedded rozwijane razem jako
zbiór pakietów OE-Core.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Elementy Yocto
I Poky - system do budowania OSI Wirtualny obraz systemu hosta do pracy z YoctoI Instalator Application Development Toolkit (ADT) dla systemu
hostaI Dla różnych platform:
I wstępnie zbudowane (prebuild) łańcuchy narzędzi (toolchains)I wstępnie zbudowane pakiety w formie binarnejI wstępne zbudowane obrazy
I Nowa wersja systemu Yocto pojawia się raz na ok. 6 miesięcy.Najnowsza to Yocto 1.8.1 Fido (wcześniejsza: Yocto 1.7.1 Dizzy).
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Outline
OpenEmbeddedBitBakeMetadaneBudowanie obrazu
Yocto ProjectPoky build systemWirtualizacjaArchitektura systemu PokyArchitektura BitBakeBudowanie obrazu Yocto
Budowa obrazu Yocto dla Intel Galileo
Debugowanie procesu budowy obrazu
Literatura
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Poky build system
I Narzędzie Poky służy do budowania elementów wbudowanegosystemu Linux:
I obraz bootloadera,I obraz jądra Linux,I obraz systemu plików,I toolchains i so�ware development kits (SDKs) do tworzenia
aplikacji.
I Poky build system - początkowa struktura (footprint) obrazu:od wersji minimalnej (shell) do pełnego systemu Linux zinterfejsem użytkownika Sato (oparty na GNOME Mobile andEmbedded (GMAE)).
I Możliwe jest dodawanie nowych warstw metadanych dlarozszerzenia funkcjonalności (nowy rodzaj obrazu, dodatkowyboard support package (BSP) dla nowej platformy sprzętowej).
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Przygotowanie środowiska pracy
I Profesjonalna stacja robocza programisty powinna spełniaćnastępujące wymagania:
I system wieloprocesorowy symetryczny (symmetricmultiprocessing,SMP)
I co najmniej 8 GB pamięci, szybki dysk twardyI szybkie łącze internetowe
I Wymagane oprogramowanie:I OS Linux (jako system natywny lub wirtualny)I Tar w wersji 1.24 lub wyższejI Python w wersji 2.7.3 lub wyższej (ale nie Python 3)
I Instalacja wymaganych pakietów:
$ sudo apt-get install gawk wget git-core di�stat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm makexsltproc docbook-utils fop dblatex xmlto autoconf automake libtoollibglib2.0-dev python-gtk2 bsdmainutils screen
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Outline
OpenEmbeddedBitBakeMetadaneBudowanie obrazu
Yocto ProjectPoky build systemWirtualizacjaArchitektura systemu PokyArchitektura BitBakeBudowanie obrazu Yocto
Budowa obrazu Yocto dla Intel Galileo
Debugowanie procesu budowy obrazu
Literatura
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Środowisko do wirtualizacji (systemu hosta)
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Wirtualizacja
Wirtualizacja = abstrakcja zasobów.Rodzaje:
I Emulacja API - wprowadzenie do głównego systemuoperacyjnego otoczenia API aplikacji pochodzące z innegosystemu. Przykład: Wine (ang. Wine is not emulator) -implementacja WinAPI dla środowiska systemu Unix/X11.
I Emulacja pełna – stanowi sposób na uruchamianie aplikacjipochodzących z niekompatybilnego komputera, w stosunku dowykorzystywanego (np. PC/Mac). Emulowane są podstawowepodzespoły komputera (CPU, RAM, HDD, CD itp.) wraz zsystemem operacyjnym (virtual OS), zapewniając dużąprzenośność. Emulator wykonuje w pętli wszystko to, corobiłby rzeczywisty procesor maszyny emulowanej, coprowadzi do spadku wydajności pracy komputera. Przykład:QEMU.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
WirtualizacjaI Wirtualizacja – wiele systemów operacyjnych na tej samej
platformie sprzętowej i systemowej przy maksymalnejmożliwej wydajności. Procesy systemu operacyjnego gościa(systemu emulowanego) wykonywane są bezpośrednio nazasobach sprzętowych komputera. Dopiero w sytuacji, gdyoperacje takie nie dadzą się bezpośrednio wykonać,wirtualizator emuluje je.
Hipernadzorca (ang. hypervisor), menedżer maszynwirtualnych (ang. Virtual Machine Manager) – narzędzieniezbędne do prowadzenia procesu wirtualizacji. Nazwapochodzi od supervisor (ang. nadzorca) — programukontrolującego pracę komputera.
I Decyduje, które procesy wirtualizowanego OS możnawykonywać bezpośrednio na zasobach sprzętowych, a którenależy emulować. Jeżeli określona operacja nie daje się wykonaćbezpośrednio na danym zasobie sprzętowym (błąd ochrony), jestprzechwytywana i emulowana przez hipernadzorcę.
I Pośredniczy w przekazywaniu przerwań pomiędzy wirtualnymsystemem a zasobami sprzętowymi
I Przykłady: VMware Workstation, Virtual Box
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Docker - kontenery
I Kontenery - sposób na separację aplikacji od systemuoperacyjnego oraz fizycznej infrastruktury wykorzystywanejdo połączeń z siecią. Są one instalowane poza jądrem systemuoperacyjnego i wirtualizują środowisko określonej aplikacji.
I Pierwowzór - chroot w systemach UNIX. Komenda Linuxograniczająca zasoby, który może wykorzystywać proces ikażdy wywoływany przez niego proces-dziecko.
I Kontenery wspierane przez system Linux (LXC, Linux KernelContainers) - jedna z najnowocześniejszych metodwirtualizacji aplikacji.
I LXC pozwala na przydział zasobów CPU, pamięci, dysków i siecidla aplikacji odizolowanych od OS
I LXC separuje drzewa procesów, dostęp do sieci, ID użytkownika,dostęp do plików.
I Kontenery Linux są elastyczne, ponieważ pozwalająadministratorowi wirtualizować pojedynczą aplikację, a nie całysystem operacyjny z wykorzystaniem VM.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Docker
Docker - aplikacja pracującą na podbudowie w postaci LXCI Zarządza obrazami oraz asystuje we wdrożeniach wirtualizacji
aplikacji.I Dostarcza automatyzacji oraz mechanizmów szybkiego
tworzenia kontenerów LXC.I Dockerem był wewnętrznym projektem rozwijanym w firmie
dotCloud. W marcu 2013 Docker został udostępnionypublicznie.
I Aktualnie jest zintegrowany z szeregiem innych narzędzi m.in.Ansible, Chef, OpenStack, Pupper, Salt. Jest też dołączony doRHEL, OpenShi� PaaS, Google Compute Engine, Deis, a takżeAmazon Web Services Elastic Beanstalk.
I Standard wirtualizacji aplikacji dla system Linux.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Docker a wirtualna maszyna
Źródło: h�p://patg.net/containers,virtualization,docker/2014/06/05/docker-intro/
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Docker
I Strona domowa:
h�ps://www.docker.com/
I Instalacja w Debianie:
$ sudo apt−get install docker.io
I Pierwsze uruchomienie w Debianie (stworzenie kontenera):
$ sudo docker run nazwa_obrazu
I Uruchomienie kontenera (lista kontenerów: docker ps -a):
$ sudo docker start nazwa_kontenera
I Uruchomienie ze współdzielonym katalogiem:
$ sudo docker run −v /var/logs/on/host:/var/logs/in/container
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Emulator QEMU
�ick EMUlator - szybki emulator dostępny jako otwarteoprogramowanie.
I Umożliwia uruchomienie kilku systemów operacyjnychjednocześnie na jednej maszynie.
I Emulacja wielu architektur CPU.I Sama aplikacja może działać w dwóch trybach:
I użytkownika – uruchamianie procesów systemu Linuxskompilowanych na innym typie procesora niż bieżący (np.aplikacje 64-bitowe na procesorze 32-bitowym).
I systemu – emulowany jest cały system, łącznie z procesorem,dyskiem twardym oraz odpowiednimi urządzeniamiperyferyjnymi. Możliwe uruchamianie i instalowanie OS naróżne architektury: x86, x86_64, ARM, SPARC, SPARC64,PowerPC, PowerPC64, MIPS, m68k (Coldfire), SH-4, Alpha,CRIS.vvv
I więcej na: h�p://osworld.pl/qemu-emulator-procesora/
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Outline
OpenEmbeddedBitBakeMetadaneBudowanie obrazu
Yocto ProjectPoky build systemWirtualizacjaArchitektura systemu PokyArchitektura BitBakeBudowanie obrazu Yocto
Budowa obrazu Yocto dla Intel Galileo
Debugowanie procesu budowy obrazu
Literatura
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
System Poky - platformy sprzętowe
I System Poky obsługuje wirtualne maszyny QEMU dlanastępujących architektur:
I ARM (qemuarm)I x86 (qemux86)I x86-64 (qemux86-64)I PowerPC (qemuppc)I MIPS (qemumips, qemumips64)
I Obsługuje też wybrane pakiety BSP (Board Support Packages)dla platform sprzętowych:
I Texas Instruments Beaglebone (beaglebone)I Freescale MPC8315E-RDB (mpc8315e-rdb)I Maszyny PC oparte na układach Intel x86 (genericx86 i
genericx86-64)I Ubiquiti Networks EdgeRouter Lite (edgerouter)
I Do pracy z innymi platformami sprzętowymi potrzebne sądodatkowe warstwy Yocto (co najmniej BPS).
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Warstwy Poky
I System Poky posiada trzy katalogi przechowujące metadane:I meta: metadane OpenEmbedded-Core; wsparcie dla architektur
ARM, x86, x86-64, PowerPC, MIPS iMIPS64 oraz dla wirtualnejmaszyny QEMU
I meta-yocto: metadane dystrybucji PokyI meta-yocto-bsp: metadane dla wybranych platform
sprzętowych
I Poky posiada również warstwę meta-skeleton, będącąwzorcem (schematem) dla nowych warstw.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Katalog roboczy Poky (build directory)
I uruchomienie skryptu (sourcing) oe-init-build-env :I ustawia zmienne środowiskowe,I tworzy pliki konfiguracyjne (można je modyfikować)I sprawdza, czy spełnione są minimalne wymagania systemowe
dla budowy obrazu
I skrypt woła scripts/oe-setup-builddir script, który tworzykatalog roboczy. w momencie utworzenia katalog ten zawieratrzy pliki:
I bblayers.conf: lista warstw służących do budowy dystrybucjiOS
I local.conf: konfiguracja parametrów procesu budowydystrybucji
I templateconf.cfg: wzorcowe pliki konfiguracyjne.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
System Poky
I BitBake analizuje konfigurację obrazu (m.in. pliki: bblayers.bb,local.conf) poszukując dodatkowych warstw, klas, przepisów izadań i budując łańcuch zależności między nimi (istandardowymi elementami OE-core).
I Tak powstaje mapa ważonych priorytetów zadań(weighted task priority map). BitBake korzysta z tej mapypodczas ustalania kolejności budowy poszczególnychpakietów. Zadania wymagane przez większość innych zadańoceniane są wyżej, a więc będą wykonane wcześniej podczasprocesu budowy dystrybucji OS
I BitBake wykonuje kolejkę zadań rozdzielając je między wątki(maksymalna liczba wątków zdefiniowana jest przez zmiennąBB_NUMBER_THREADS w pliku conf/local.conf)
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
System Poky
ZADANIE OPIS FUNKCJA
Fetch pobranie danych (źródeł) do_fetch()Unpack rozpakowanie danych do_unpack()Patch dodanie łatek (patch-ów) do_patch()
Configure konfiguracja drzewa źrodeł do_configure()Compile kompilacja drzewa źródeł do_compile()
Stage instalacja w przestrzeni stage do_stage()Install instalacja do_install()
Package utworzenie pakietu do_package()
I Skompilowane źródło jest rozdzielane na pakiety; tworzonajest inforamcja dla debuggera (debug package information).
I Rozdzielone pakiety pakowane są do odpowiedniego formatu(rpm, ipk lub deb). Bitbake wykorzystuje je do budowysystemu plików.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
System Poky
Każdy aspekt procesu budowania jest kontrolowany przezmetadane. Metadane mogą być luźno pogrupowane w:
I przepisy (package recipes)I zbiór niewykonywalnych metadanych, wykorzystywany do
ustawienia zmiennych lub zdefiniowania dodatkowych zadań,I pola: recipe description, the recipe version, the license of the
package i upstream source repository,I mogą definiować dodatkowe zadania,
I pliki konfiguracyjne (configuration files)I konfiguracja BitBake i (w ogólności) całego procesu budowania,I konfiguracja warstw wykorzystywanych przez Poky do różnych
obrazów docelowych.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Warstwy w systemie PokyI Warstwa (layer) - grupa medanych definiujących określoną
funkcjonalność:I BSP - warstwy definiujące urządzenia,I warstwy definiujące typy obrazów,I warstwy definiujące dodatkowe oprogramowanie.
I meta-yocto - “rdzenna” warstwa Yocto Project.I Warstwy bitbake - przykład
Figure: h�p://www.aosabook.org/en/yocto.html
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Outline
OpenEmbeddedBitBakeMetadaneBudowanie obrazu
Yocto ProjectPoky build systemWirtualizacjaArchitektura systemu PokyArchitektura BitBakeBudowanie obrazu Yocto
Budowa obrazu Yocto dla Intel Galileo
Debugowanie procesu budowy obrazu
Literatura
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Architektura BitBake - interfejsy użytkownika
I Interfejs użytkownika umożliwia:I prezentowanie wyników, statusie i postępach procesu
budowania,I przechwytywanie zdarzeń od zadań (build tasks).
I kno�y - domyślny interfejs użytkownika; linia poleceń.I hob - graficzny interfejs użytkownika; umożliwia
modyfikowanie plików konfiguracyjnych, dodawanie warstw ipakietów.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
BitBake - Hob
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Architektura BitBake
I Podstawowy plik wykonawczy BitBake to bitbake/bin/bakeI Uruchomienie BitBake oznacza rozpoczęcie budowy
infrastruktury potrzebnej do budowy obrazuI Kolejność uruchamiania modułów
interfejs użytkownika (UI)
⇓serwer procesów (IPC)
⇓Cooker⇓
DataSmart⇓
parsowanie plików konfiguracyjnych⇓
obiekt Runqueue⇓
Scheduler
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Moduł IPC
Moduł IPC (Interprocess Communication)I Umożliwia uruchomienie wielu procesów podczas budowy
obrazuI Architektura klient-serwerI Domyślny serwer (i najczęściej używany z poziomu kno�y) to
serwer procesówI Interfejs użytkownika potrafi wysyłać polecenia do modułu
serwera
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Cooker
I Zarządza parsowaniem metadanychI Inicjalizuje generowanie drzewa zależności i zadańI Zarządza procesem budowania.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
DataSmart
I Moduł DataSmart przechowuje dane z plikówkonfiguracyjnych jako obiekty.
I Jeśli przepis (recipe) zmieni się podczas procesu budowy,obiekty danych nie są uaktualniane w całości, lecz zapisywanesą jedynie różnice między stanem przed i po zmianie(oszczędność pamięci!).
I Słownik “copy-on-write” (COW)I zmienne mogą zawierać kod pythona (DataSmart sprawdza
poprawność kodu i obecność odwołań cyklicznych).
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Runqueue i SchedulerI Budowa obrazu - setki przepisów, każdy zawierający wiele
pakietów i zadań powiązanych zależnościami. ZadaniemBitBake jest uporządkowanie ich.
I Cooker buduje mapę zadań z wagami, nazywaną runqueueI pełna lista pakietów potrzebnych do budowy obrazuI łańcuch zależności między nimi
Przepis (recipe)
⇓
sprawdzenie PREFERRED_PROVIDER lub wybór
dostawcy pakietu
⇓
sprawdzenie DEPENDS i RDEPENDS
⇓
wybór dostawców pakietów z zależności
⇓
lista pakietów potrzebnych do zbudowana obrazu
oraz ich dostawców
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Scheduler - zależności
Zależności (dependencies):I DEPENDS - zależności (pakiety) potrzebne w procesie
budowania.DEPENDS = "b" w przepisie "a" zostanie przetłumaczone nazadanie do_configure “a”, które zależy od zadaniado_populate_sysroot task w “b”. Wszystko co “b” dodaje dosystemu plików, jest dostępne kiedy “a” jest konfigurowane.
I RDEPENDS - zależności (pakiety) potrzebne w procesiewykonywania.RDEPENDS_${PN} = "b" w przepisie "a" zostanieprzetłumaczone na zadanie do_build task “a”, zależne odzadania “b”: do_package_write. Pakiet “b” będzie dostępny,kiedy “a” zostanie zbudowane
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
BitBake Scheduler - budowa Runqueue
pierwszy znaleziony pakiet A
⇓
lista zadań potrzebnych do budowy pakietu A
⇓
przypisanie wag odpowiadających liczbie pakietówpotrzebnych do zrealizowania zadania
(zadania z wyższą wagą mają więcej zależności,
zostaną wykonane wcześniej)
Na podstawie mapy Runqueue BitBake rozdziela kolejne zadaniamiędzy swoimi wątkami
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Architektura BitBake - schemat
Źródło: Elizabeth Flanagan, “The Architecture of Open Source Applications”
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Outline
OpenEmbeddedBitBakeMetadaneBudowanie obrazu
Yocto ProjectPoky build systemWirtualizacjaArchitektura systemu PokyArchitektura BitBakeBudowanie obrazu Yocto
Budowa obrazu Yocto dla Intel Galileo
Debugowanie procesu budowy obrazu
Literatura
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Obrazy w projekcie PokyI Lista domyślnych obrazów projektu Poky:
$ cd /opt/yocto/poky$ ls meta∗/recipes∗/images/∗.bb
I Najbardziej popularne to:I core-image-minimal: najmniejszy obraz (tylko konsola)
zawierający:I busybox - podstawowe narzędzia UNIXI sysvinit - pierwszy program uruchamiany w systemach
uniksowych (np. Linux) przez jądro w trakcie procesuuruchamiania systemu operacyjnego
I udev - dynamiczna alokacja plików urządzeń
I core-image-full-cmdline: konsola, pełna obsługa sprzętu orazbash
I core-image-lsb: obraz z konsolą oparty na kompilacji LinuxStandard Base
I core-image-x11: obraz z graficznym UI (X11)I core-image-sato: obraz z graficznym UI (X11) i pulpitem
GNOME Mobile oraz motywem SATOI core-image-weston: obraz z protokołem Wayland i Weston
reference compositor-based image
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Obrazy w projekcie Poky
Nazwy obrazów mogą mieć następujące przyrostki:I dev: obraz zawiera pliki nagłówkowe i biblioteki potrzebne do
tworzenia oprogramowaniaI sdk: zawiera kompletne SDK, które może być używane na
maszynie docelowejI initramfs: initial RAM file system
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa obrazu
Maszynę docelową (MACHINE) można zdefiniować na trzysposoby. Na przykład, jeśli platformą docelową jest emulatormaszyn x86:
1. Zdefiniowanie zmiennej MACHINE wraz z uruchomieniembitbake:
$ MACHINE=qemux86 bitbake core−image−minimal
2. Wyeksportowanie zmiennej MACHINE do bieżącej powłokishell:
$ export MACHINE=qemux86$ bitbake core−image−minimal
3. Sposób preferowany: edycja pliku conf/local.conf:
# MACHINE ?= "qemux86"
A w linii poleceń:
$ bitbake core−image−minimal
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa obrazu
Bitbake w pierwszej kolejności analizuje pliki:I conf/bblayers.conf: lista warstwI conf/layer.conf: konfiguracja każdej warstwyI meta/conf/bitbake.conf: konfiguracja bitbakeI conf/local.conf: konfiguracja procesu budowania obrazuI conf/machine/<machine>.conf: konfiguracja maszyny
docelowej (np. qemux86.conf)I conf/distro/<distro>.conf: konfiguracja dystrybucji OS
(domyślnie jest to poky.conf)
Następnie BitBake parsuje przepisy i ich zależności. Then BitBakeparses the target recipe that has been provided and itsdependencies. The outcome is a set of interdependent tasks thatBitBake will then execute in order.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa obrazu
I Zwykle nie jesteśmy zainteresowani całą informacjągenerowaną podczas procesu budowania. Zaleca się takąkonfigurację procesu budowania, w której informacjawyjściowa dla każdego pakietu (np. źródła czy logi) byłausuwana po zbudowaniu obrazu. W pliku conf/local.conf file:
INHERIT += "rm_work"
I Z drugiej jednak strony uniemożliwia się w ten sposóbdebugowanie (wstecz). Możliwe jest zdefiniowanie listypakietów, które mają być wyłączone z procesu czyszczeniahistorii, np.:
RM_WORK_EXCLUDE += "linux−yocto u−boot"
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa obrazu
I Plik wzorcowy local.conf.sample - domyślna konfiguracjaI Gotowe zbudowane obrazy znajdują się w katalogu:
build/tmp/deploy/images/qemux86
I Domyślnie obrazy nie są usuwane z katalogu deploy. Jeślipodczas budowy poprzednia wersja ma być usunięta, trzeba wpliku conf/local.conf ustawić zmienną:
RM_OLD_IMAGE = "1"
I Testowanie obrazu w emulatorze QEMU:
$ runqemu qemuarm core−image−minimal
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa Yocto dla Intel Galileo
I Intel dostarcza pliki niezbędne do budowy obrazu systemuLinux
I Dokumentacja:Intel ® �arkTM SoC X1000 Board Support Package (BSP)Build and So�ware User Guideh�ps://downloadcenter.intel.com/download/23197/Intel-�ark-BSP
I Omawiany przykład bazuje na wersji Release 1.1 (January2015)
I Wymagania wobec systemu hosta:I komputer PC z systemem Linux (Intel zaleca system 64-bitowy)
lub Windows 7 (x64). W omawianym przykładzie system hostato 64-bitowy Debian 8.0 (Jessie).
I łącze internetoweI co najmniej 30 GB wolnego miejsca na dyskuI interfejs szeregowy do komunikacji z Intel Galileo
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Przygotowanie środowiska pracy
I Powiązane pakiety:I Python 2.6 or 2.7 (ale nie Python 3.x )I GCC i G++ (wersje nie młodsze niż GCC 4.7). Domyślna wersja
kompilatora w Debian 8.0 to GCC 4.9. Należy zainstalowaćrównież starszą wersję (na przykład z repozytoriów Wheezy)
I klient systemu kontroli wersji (git)I uuid-dev (uuid = Universally Unique Identifier)I iasl (iasl = ACPI Source Language Compiler)
I Instalacja niezbędnych pakietów:
$ sudo apt−get install build−essential p7zip−ful
I Pobranie pliku DownloadBoard_Support_Package_Sources_for_Intel_�ark_v1.1.0.7zspod adresu:h�ps://downloadcenter.intel.com/download/23197/Intel-�ark-BSP
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Przygotowanie środowiska pracy
I Rozpakowanie pobranego pliku:
$ 7z x Board_Support_Package_Sources_for_Intel_�ark_v1.1.0.7z
I Pobranie i instalacja EDKII
$ tar −xvf �ark_EDKII_∗.tar.gz$ cd �ark_EDKII∗$ ./svn_setup.py$ svn update
I Instalacja patch-a OpenSSL (opis wCryptoPkg/Library/OpensslLib/Patch-HOWTO.txt)
I Budowa oprogramowania układowego EDKII:
$ ./buildallconfigs.sh GCC46 �arkPlatform
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Instalacja starszych wersji kompilatorów GCC iG++
I Dodanie repozytoriów starszej wersji OS (np. Debian Wheezy)do listy repozytoriów (plik /etc/apt/source.list)
I Instalacja kompilatora gcc-4.6
$ sudo apt−get update$ sudo apt−get install gcc−4.6 g++−4.6
Menadżer pakietów może w tym miejscu wyświetlićinformację o problemie z zależnymi pakietami. Wówczasnależy zainstalować je każdy osobno, np.:
$ sudo apt−get install gcc−4.6−base=4.6.3−14$ sudo apt−get install cpp−4.6$ sudo apt−get install gcc−4.6$ sudo apt−get install g++−4.6
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Instalacja starszych wersji kompilatorów GCC iG++
I Aby używać zamiennie starszej i nowszej wersji kompilatora,należy zainstalować wersję 4.6 jako alternatywną. W tym celunależy usunąć wszystkie istniejące alternatywy dla gcc i g++:
$ sudo update−alternatives −−remove−all gcc$ sudo update−alternatives −−remove−all g++
I A następnie dodać informację o wersji 4.6 i 4.9 (zaznaczenieg++ jako “slave powoduje, że przełączanie wersji gcc będziepowodowało analogiczne przełączenie wersji g++) :
$ sudo update−alternatives −−install /usr/bin/gcc gcc /usr/bin/gcc−4.6 60 −−slave /usr/bin/g++ g++ /usr/bin/g++−4.6$ sudo update−alternatives −−install /usr/bin/gcc gcc /usr/bin/gcc−4.9 40 −−slave /usr/bin/g++ g++ /usr/bin/g++−4.9
I Można teraz przełączać wersje kompilatorów za pomocąpolecenia:
$ sudo update−alternatives −−config gcc
I Aktualną wersję kompilatora można sprawdzić za pomocąpolecenia:
$ gcc −−version
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa obrazu
I W nowej sesji terminala należy rozpakować warstwę systemuYocto (meta-clanton_v1.1.0-dirty) i uruchomić skrypt setup.sh,który pobierze z zewnętrznych źródeł pliki potrzebne dozbudowania systemu plików:
$ tar −xvf meta−clanton∗.tar.gz # cd meta−clanton∗$ ./setup.sh
I Następnie należy wykonać skrypt iot-devkit-init-build-env,inicjalizujący proces budowania:
$ source ./iot−devkit−init−build−env my_build
I Pozostaje uruchomić narzędzie bitbake:
$ bitbake image−full
i uzbroić się w cierpliowość ...
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Budowa obrazu
I Po zakończeniu procesu budowania systemu plików,wyjściowe obrazy znajdują się w:
./tmp/deploy/images/quark/
i są to:I image-full-quark.ext3 (system plików)I core-image-minimal-initramfs-quark.cpio.gz (system plików
RAM)I bzImage (jądro)I grub.efiI boot (katalog)
I Pliki można skopiować na pustą kartę SD lub pamięć USB(sformatowane jako ext3).
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Nagranie obrazów na kartę SDI Gotowe pliki obrazów w katalogu tmp/deploy/images/
directory to:I jądro systemu Linux:
bzImage–wersja-r0-clanton-YYYYMMDDhhmmss.binI początkowy system plików RAM: core-image-minimal-
initramfs-clanton-YYYYMMDDhhmmss.rootfs.cpio.gzI system plików:
image-full-clanton-YYYYMMDDhhmmss.rootfs.ext3I moduły jądra:
modules–wersja-r0-clanton-YYYYMMDDhhmmss.tgzI konfiguracja Grub: boot/grub/grub.conf
I Formatowanie karty SD:
$ sudo dd if=/dev/zero of=/dev/sdd
I Nagranie plików jako:I bzImageI core-image-minimal-initramfs-clanton.cpio.gzI image-full-clanton.ext3I boot/grub/grub.conf
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Używanie historii budowania obrazu
I Historia budowania obrazu - umożliwia sprawdzeniezależności między pakietami, które weszły do systemu plików.
I By umożliwić jej używanie, należy dodać do plikuconf/local.conf:
INHERIT += "buildhistory"
I Włączenie gromadzenia informacji (m.in. grafu zależności) wlokalnym repozytorium Git:
BUILDHISTORY_COMMIT = "1"
I Lokalizacja repozytorium Git może być ustawiona za pomocązmiennej BUILDHISTORY_DIR (domyślnie: build/buildhistory)
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Używanie historii budowania obrazu
I Domyślnie buildhistory śledzi wszelkie zmiany w pakietach,obrazach i SDK. Jeśli chcemy śledzić tylko obrazy, należyzmienić wartość zmiennej BUILDHISTORY_FEATURES (wconf/local.conf):
BUILDHISTORY_FEATURES = "image"
I Można śledzić konkretne pliki, należy je wówczas dodać tobuildhistory za pomocą zmiennej:
BUILDHISTORY_IMAGE_FILES += "/path/to/file"
I Budowa z rejestracją historii jest wolniejsza a rozmiarkatalogów wynikowych większy. Nie zaleca się więc używaniahistorii przy każdej kompilacji obrazu (jedynie kiedy jest toniezbędne).
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Używanie historii budowania obrazuDla pakietów rejestrowane są następujące informacje:
I wersja pakietu i przepisuI zależnościI rozmiar pakietuI pliki
Dla obrazu:I konfiguracja budowaniaI graf zależnościI lista plików związanych z prawami własności i dostępem
(permissions)I lista zainstalowanych pakietów
Dla SDK:I konfiguracja SDKI lista plików hosta i maszyny docelowejI grafy zależnościI lista zainstalowanych pakietów
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Używanie historii budowania obrazu
Przeglądanie historii budowania obrazu:
1. Za pomocą narzędzi Git (gitk lub git log).
2. Za pomocą komendy buildhistory-di�
3. Za pomocą interfejsu sieciowego Django-1.4-based
3.1 import historii budowania do bazy danych3.2 więcej: h�p://git.yoctoproject.org/cgit/cgit.cgi/buildhistory-
web/tree/README.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Statystyka procesu budowania
I Podczas budowania obrazu możliwe jest zbieranie informacjiprzydatnej w identyfikowaniu obszarów potencjalnejoptymalizacji i tzw. “wąskich gardeł” (zwłaszcza gdy wsystemie pojawia się nowy przepis).
I Do zbierania informacji statystycznej potrzebne jestdziedziczenie klasy buildstats:
USER_CLASSES ?= "buildstats"
I Zmienna BUILDSTATS_BASE określa lokalizację statystyki(domyślnie build/tmp/buildstats
I Katalog buildstats zawiera osobny katalog dla każdegobudowanego obrazu a w nim - podkatalogi odpowiadającepakietom z plikami build_stats, zawierającymi informację o:
I systemie hostaI lokalizacji i rozmiarze systemu plikówI czasie trwania procesu budowaniaI średnim użyciu CPUI statystyce dysku
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Statystyka procesu budowania
Przykładowy plik statystyki może zawierać informacje:I ReadsComp: całkowita liczba operacji odczytuI TimeReads: całkowita liczba milisekund poświęconych na
operacje odczytuI WritesComp: całkowita liczba operacji zapisuI TimeWrite: całkowita liczba milisekund poświęconych na
operacje zapisuI TimeIO: całkowita liczba milisekund poświęconych na obsługę
I/O
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Statystyka procesu budowania
I pybootchartgui.py tool - graficzna reprezentacja danych zeźrodeł Poky
I Generowanie pliku bootchart.png w katalogu /tmp:
$ ../sources/poky/scripts/pybootchartgui/pybootchartgui.pytmp/buildstats/core−image−minimal/ −o /tmp
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Debugowanie
I Sprawdzenie, czy dany plik jest obecny w danej warstwie:
$ find −name "∗busybox∗"
To polecenie spowoduje rekursywne wyszukiwanie wewszystkich warstwach wzorca “busybox”.
I Wyszukiwanie wśród przepisów:
$ find −name "∗busybox∗.bb∗"
I Wyszukiwanie pliku ze zmienną DISTRO_FEATURES:
$ bitbake −e | grep −w DISTRO_FEATURES
I Lokalizowanie ścieżki pliku przepisu:
$ bitbake −e busybox | grep ^S=
I Lokalizowanie katalogu roboczego pakietu lub obrazu:
$ bitbake −e <target> | grep ^WORKDIR=
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Debugowanie
I BitBake dostarcza zadanie devshell, ktore rozpakowuje źródłoi wykonuje patch-e, a następnie uruchamia nową sesjęterminala z prawidłowo ustawionymi zmiennymiśrodowiskowymi.
$ bitbake −c devshell <target>
I Wewnątrz devshell można używać komend takich jakconfigure, make i run.
I Jeśli na maszynie hosta nie ma środowiska graficznego, wconf/local.conf trzeba ustawić ekran wyjściowy:
OE_TERMINAL = "screen"
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Debugowanie
I Wiadomość o błędach budowy pakietów drukowana jest wterminalu podczas procesu budowania.
I Lista zadań dla danego przepisu:
$ bitbake −c lis�asks <target>
I Powtórzenie błędu (wymuszone uruchomienie procesubudowania):
$ bitbake −f <target>
lub (wymuszone) uruchomienie konkretnego zadania:
$ bitbake −c compile −f <target>
I Drukowanie wersji pakietów:
$ bitbake −−show−versions
I Lista zależności:
$ bitbake −v <target>
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
DebugowanieI Zapis zależności do pliku DOT:
$ bitbake −g <target>
do odczytu można użyć pakietu GraphVizI Niektóre zależności mogą być usunięte z grafu, np. by pominąć
zależności dla glibc:
$ bitbake −g <target> −I glibc
I Po “wydrukowaniu” pliku z zależnościami w bieżącymkatalogu znajdują się trzy pliki:
I package-depends.dot: zależności między pakietamiI pn-depends.dot: zależności między przepisamiI task-depends.dot: zależności między zadaniami
I Konwersja pliku .dot do formatu .ps:
$ dot −Tps filename.dot −o outfile.ps
I Wyswietlenie danych o zależności za pomocą eksplorera:
$ bitbake −g −u depexp <target>
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Raportowanie błędów
I Centralna baza danych o błędach zgłaszanych przezużytkowników:h�p://errors.yoctoproject.org.
I Zgłoszenie błędu do bazy - za pomocą klasy report-error:INHERIT += "report-error"
I Domyślnie informacja o błędach przechowywana jest wkatalogu:build/tmp/log/error-reportMożna zmienić tą ścieżkę za pomocą zmiennejERR_REPORT_DIR.
ProgramowanieSystemów
Wbudowanych
Kompilacja OS dlasystemu
wbudowanego
OpenEmbedded
BitBake
Metadane
Budowanie obrazu
Yocto Project
Poky build system
Wirtualizacja
Architektura systemu Poky
Architektura BitBake
Budowanie obrazu Yocto
Budowa obrazu Yoctodla Intel Galileo
Debugowanie procesubudowy obrazu
Literatura
Literatura
Elizabeth Flanagan, The Architecture of Open SourceApplications, www.aosabook.org
P. Raghavan, Amol Lad, Sriram Neelakandan, Embedded Linuxsystem design and development, Auerbach Publications, 2005
h�p://patg.net/containers,virtualization,docker/2014/06/05/docker-intro/
h�p://osworld.pl/qemu-emulator-procesora/