Programowanie Systemów Wbudowanych

Podobne dokumenty
Programowanie Systemów Wbudowanych

Q E M U.

Spis treści. Wstęp... 10

Tworzenie oprogramowania

April 20, 2015 KSEM WETI PG. Programowanie Systemów Wbudowanych. Kompilacja OS dla systemu wbudowanego. OpenEmbedded.

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj Poznań, Polska

K. Konopko; Toolchain. Jądro Linuksa. dr inż. Krzysztof Konopko

Embedded GNU/Linux. Krzysztof Mazur

QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:

VMware, QEMU, UML. oraz inne wirtualne maszyny. Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

1.Wstęp. 2.Generowanie systemu w EDK

HaeRWu Marcin Juszkiewicz. OpenEmbedded. Wprowadzenie. Marcin Juszkiewicz. Poznań OpenEmbedded.

Linux -- u mnie działa!

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego. Opis oferowanego przedmiotu zamówienia

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Prezentacja emulatora QEMU Zajęcia SO

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

OpenEmbedded Marcin Juszkiewicz

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski. 12 listopada 2007 WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski

Wirtualizacje. Opracowali: Piotr Dąbrowiecki Jakub Gołębiowski Winicjusz Szyszka

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

System kontroli dostępu ACCO NET Instrukcja instalacji

Linux - System Wbudowany

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Rozdział 1. Informacje ogólne

Połączenia. Instalowanie drukarki lokalnie (Windows) Co to jest drukowanie lokalne?

Konfiguracja i kompilacja jądra Linux. Based on Free Electrons

Uruchomienie Intel Galileo

Kernel Kompilacja jądra

Baza danych Oracle 11g Express Edition

26.X.2004 VNC. Dawid Materna

Acronis Backup & Recovery 10 Server for Linux. Instrukcja szybkiego rozpoczęcia pracy

Systemy operacyjne na platformach mobilnych 2 Platforma Maemo

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)

Konwersja maszyny fizycznej na wirtualną.

INFORMATOR TECHNICZNY WONDERWARE

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

BF20 JTAG dla ARM ów z interfejsem USB Instrukcja obsługi

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Materiały dodatkowe. Raspberry Pi

Wprowadzenie do informatyki

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Materiały pomocnicze do laboratorium z Architektury Komputerów II.

Pracownia Technik Obliczeniowych

INSTRUKCJA I WSKAZÓWKI

Instalacja NOD32 Remote Administrator

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Modelowanie Data Mining na wielką skalę z SAS Factory Miner. Paweł Plewka, SAS

Comodo Endpoint Security Manager instrukcja instalacji.

Załącznik nr 2. Przewodnik instalacyjny systemu e-broker Technologiczny v.1.0. Część 4 - Narzędzia informatyczne przeznaczone dla ośrodków innowacji

Tworzenie maszyny wirtualnej

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Client Management Solutions i Mobile Printing Solutions

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Client Management Solutions i Mobile Printing Solutions

Specjalizacja uzupełniająca. urządzeniowo - informatyczna dla wszystkich kierunków na ETI (II st.)

Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil

EMBEDDED LINUX ON ARM9 CORE EMBEDDED LINUX NA PROCESORACH Z RODZINY ARM9

INFORMATOR TECHNICZNY WONDERWARE

Programowanie procesora Microblaze w środowisku SDK

Zastosowanie emulatorów w rozbudowie systemów wbudowanych

Procedura wdrożeniowa program MERKURY QUATTRO wer. 1.0

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Pracownia specjalistyczna. Numer ćwiczenia: 5.

Połączenia. Obsługiwane systemy operacyjne. Instalowanie drukarki przy użyciu dysku CD Oprogramowanie i dokumentacja

Kompilacja jądra systemu Linux

Programowanie Systemów Czasu Rzeczywistego

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Dysk 20GB przestrzeni Ajax Ajax 1.0 Baza danych MS SQL 2005 lub 2008 Express Java Java 6 run time Microsoft Silverlight 3.

Client Management Solutions i Universal Printing Solutions

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

Uruchomienie Raspberry Pi

System operacyjny Linux

System Kancelaris. Zdalny dostęp do danych

Instrukcja instalacji i konfiguracji bazy danych SQL SERVER 2008 EXPRESS R2. Instrukcja tworzenia bazy danych dla programu AUTOSAT 3. wersja 0.0.

System wspomagania zarządzania wirtualizacją

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

Elastyczna sieć dla rozwiązań Cloud Open vswitch

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Wymagania systemowe dla Qlik Sense. Qlik Sense February 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

MentorGraphics ModelSim

Asix. Konfiguracja serwera MS SQL dla potrzeb systemu Asix. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Tekla Structures 20 Instalacja

Komputery przemysłowe i systemy wbudowane

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

7. zainstalowane oprogramowanie zarządzane stacje robocze

Instrukcja instalacji oprogramowania dla środowiska Windows

Administratorzy systemów, inżynierowie, konsultanci, którzy wdrażają i zarządzają rozwiązaniami opartymi o serwery HP ProLiant

Konfiguracja pakietu CrossStudio for MSP

Transkrypt:

Programowanie Systemów Wbudowanych Systemy budowy OS Linux Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG April 27, 2016

Elementy wbudowanego OS Linux Toolchain kompilator i inne narzdzia do tworzenia kodu dla urzadzeń Bootloader inicjalizuje platform sprzętowa oraz ładuje jadro systemu Kernel serce systemu, zarzadza zasobami i komunikuje się ze sprzętem Root filesystem GUT Intel 2015/16 2/54 biblioteki i programy uruchamiane w systemie

Budowa oprogramowania systemu wbudowanego Budowa oprogramowania systemu wbudowanego oznacza budowę wszystkich jego elementow (toolchain, bootloader, jadro OS, główny system plików OS) Samodzielna realizacja tych zadań - roll your own (RYO) Zalety RYO: Całkowita kontrola oprogramowania Duża elastyczność (można zmusić system do robienia czegokolwiek!) Maksymalna redukcja zużywanych zasobów Wada RYO: trzeba być doświadczonym ekspertem! GUT Intel 2015/16 3/54

System automatycznej budowy oprogramowania SW Build system - automatyzacja procesu budowy oprogramowania SW buduje na podstawie kodu źródłowego wszystkie elementy oprogramowania Build system potrafi: Pobierać źródła ze wskazanej zewnętrznej lokalizacji Aktualizować kod źródłowy na podstawie łatek (patches) Budować różne elementy oprogramowania systemowego Tworzyć katalog główny i główny system plików Tworzyć pliki obrazów w różnych formatach GUT Intel 2015/16 4/54

Build system Inne przydatne funkcjonalności: Umożliwia tworzenie własnych pakietów Umożliwia wybór różnych profili systemu plików: dużego/małego, z obsługa grafiki lub bez, etc. Śledzi licencje open source wybranych przez użytkownika pakietów Posiada przyjazny interfejs użytkownika GUT Intel 2015/16 5/54

Build system Build system enkapsuluje składniki systemu jako pakiety (packages) - osobne dla maszyny hosta, osobne dla platformy docelowej Każdy pakiet jest zdefiniowany zbiorem zasad: jak pobrać kod źrodłowy jak go zbudować jak go zainstalować z bieżacej lokalizacji Między pakietami sa zależności. Build system: rozwiazuje te zależności buduje zbiór wymaganych pakietów GUT Intel 2015/16 6/54

Build systems Projekty open source: Buildroot: łatwy w użyciu system wykorzystujacy GNU make i Kconfig (http://buildroot.org) EmbToolkit: jedyny, który obsługuje LLVM/Clang (https://www.embtoolkit.org) OpenEmbedded: rozbudowane narzędzie, główny element Yocto Project (http://openembedded.org) OpenWrt: zorientowany na budowę firmware dla bezprzewodowych routerów (https://openwrt.org) GUT Intel 2015/16 7/54

Build systems Projekty open source: PTXdist: projekt sponsorowany przez firmę Pengutronix (http://www.pengutronix.de/software/ptxdist/index_en.html) Tizen: projekt dla urzadzeń mobilnych, audio-wideo, automatyki samochodowej (https://www.tizen.org) The Yocto Project: rozszerzenie OpenEmbedded; najpopularniejszy build system (http://www.yoctoproject.org) potrafi budować OS dla złożonych systemów wbudowanych każdy składnik budowany jest jako pakiet.rpm,.dpkg lub.ipk pakiety sa łaczone razem w obraz systemu plików umożliwia zbudowanie własnej dystrybucji Linuxa GUT Intel 2015/16 8/54

Formaty pakietów rpm (Red Hat Package Manager) - w Red Hat, Suse, Fedora i systemach pochodnych deb - (Debian package manager) - w systmach opartych na Debianie (Ubuntu, Mint) ipk (Itsy PacKage) - format oparty na deb dla systemów wbudowanych GUT Intel 2015/16 9/54

Buildroot Strona projektu: http://buildroot.org Dokumentacja: http://buildroot.org/docs.html Aktualna wersja systemu Buildroot obsługuje budowę wszystkich elementów systemu Podstawowe narzędzie: GNU make Historycznie pierwszy build system Poczatkowo - część projektów uclinux i uclibc do budowy małych systemów plików do testowania 2001-2006 - rozwijany jako niezależny projekt Od 2009 r. - dynamiczny rozwój (Peter Korsgaard) GUT Intel 2015/16 10/54

Buildroot Podstawowe zadanie to budowa obrazu głównego systemu plików (stad nazwa) potrafi również budować oprogramowanie rozruchowe i obraz jadra łatwy w instalacji i użyciu, szybko generuje obrazy Stabilna wersja Buildroot publikowana 4 razy w roku: w lutym, maju, sierpniu i listopadzie (nazwy oznaczone tagami: <year>.02, <year>.05, <year>.08, and <year>.11). Stabilne wersje sa rzadko aktualizowane po opublikowaniu GUT Intel 2015/16 11/54

Buildroot - instalacja Pobranie źródeł: Zawsze zaczynaj od dokumentacji. Dla Buildroot: rozdział System Requirement w The Buildroot User Manual (http://buildroot.org/downloads/manual/manual.html) Zainstaluj wymagane pakiety! GUT Intel 2015/16 12/54

Buildroot - configuring Buildroot używa Kconfig i Kbuild (narzędzia jadra OS) konfiguracja poprzez make menuconfig w configs/ około 90 konfiguracji przykładowych dla różnych platform i emulatora QEMU make help - lista platform docelowych buildroot optymalizuje wykorzystanie CPU (nie ustawia się opcji -j dla make) Przykład dla ARM dla QEMU: GUT Intel 2015/16 13/54

Buildroot - budowa Wynik: dwa nowe katalogi: dl/: archiwum źródeł output/: skompilowane pliki w katalogach: build/: lokalizacja budowy dla każdego elementu host/: narzędzia do uruchomienia elementów na maszynie hosta (np. toolchain w output/host/usr/bin) images/: obrazy (bootloader, jadro, system plików) staging/: link symboliczny sysroot dla toolchain target/: pośredni system plików - bez ustawionych opcji uprawnień do plików GUT Intel 2015/16 14/54

Buildroot - uruchomienie Przykład: uruchomienie emulatora QEMU z plikami dla ARM: login:root, brak hasła Zamknięcie QEMU - polecenie poweroff GUT Intel 2015/16 15/54

Emulator QEMU (Quick Emulator) Szybki emulator dostępny jako wolne oprogramowanie Autor: Fabrice Bellarda Umożliwia uruchomienie kilku systemów operacyjnych jednocześnie na jednej maszynie Tryby emulacji: użytkownika - może uruchamiać procesy systemu Linux skompilowane na innym typie procesora niż bieżacy. systemu - emulowany jest cały system, łacznie z różnymi urzadzeniami peryferyjnymi. GUT Intel 2015/16 16/54

Emulator QEMU (Quick Emulator) Niektóre zalety: szybkość możliwość uruchomienia oprogramowania Linuksa na innych platformach możliwość emulacji karty sieciowej pełna otwartość kodu możliwość zdalnej pracy na emulowanych maszynach za pomoca zintegrowanego serwera VNC obsługa przekierowań portów maszyny gospodarza na porty systemu gościa, pozwalajaca na uruchomienie wirtualnego serwera GUT Intel 2015/16 17/54

Yocto Project Yocto Project potrafi zbudować pojedyncze elementy systemu (toolchain, bootloader, jadro, główny system plików) cała dystrybucję Linuxa z binarnymi pakietami gotowymi do instalacji Składa się ze zbioru przepisów, napisanych jako skrypty Shell oraz Python BitBake - zarzadca zadań (task scheduler) - przetwarza przepisy i buduje komponenty OS Dokumentacja online: http://www.yoctoproject.org/. GUT Intel 2015/16 18/54

Yocto Project - historia (OpenEmbedded) Nazwa od prefiksu w układzie SI: 10-24 Korzenie Yocto Project - OpenEmbedded, http://openembedded.org/ OpenEmbedded (2003 r.) wyrósł na licznych projektach uruchamiania Linuxa na rożnych urzadzeniach przenośnych (Sharp Zaurus, Compaq ipaq) 2005 r. - Richard Purdie (OpenedHand) - projekt Poky OpenEmbedded i Poky - rozwijane niezależnie 2008 r. - Intel kupuje OpenedHand 2010 r. - Intel przenosi Poky Linux do Linux Foundation - Yocto Project od 2010 r. - wspólne składniki OpenEmbedded i Poky tworza wspólny projekt - OpenEmbedded core (oe-core) Rozwijany przez entuzjastów programowania Kompaktowy format pakietów:.ipk (ale też.rpm i.deb) GUT Intel 2015/16 19/54

Yocto Project - elementy Poky: domyślna dystrybucja Linux oe-core: metadane rdzenia (wspólne z OpenEmbedded) BitBake: zarzadca zadań (task scheduler) Documentation: dokumentacja każdego elementu Hob: graficzny interfejs użytkownika do OpenEmbedded i BitBake Toaster: interfejs web-owy do OpenEmbedded i BitBake ADT Eclipse: wtyczka Eclipse do wspierania budowy Yocto Project SDK GUT Intel 2015/16 20/54

Yocto Project Yocto Project może być używany sam lub rozszerzany za pomoca meta-warstw (meta layers) Wielu dostawców SoC dostarcza również board support packages (BSP) własnie poprzez meta-warstwy (np. Intel dla Intel Galileo) Meta-warstwy moga również służyć do budowania innych środowisk do generowania elementów OS: typu open-source (i.e. the Angstrom Project) komercyjnych (i.e. MontaVista Carrier Grade Edition, Mentor Embedded Linux, and Wind River Linux) GUT Intel 2015/16 21/54

Board Support Packages (BSP) BSP - Implementacja kodu specyficznego dla platformy sprzętowej, odpowiedniego dla konkretnego systemu operacyjnego 1981 - pierwsze użycie terminu BSP do opisania programu zależnego od sprzętu (hardware-dependent software) VRTX Używane przez firmę Wind River Systems do opisu elementów systemu VxWorks Inne firmy udostępniajace BSP: QNX Software Systems, Microsoft dla Windows CE, NVIDIA i inne Co robi BSP? Na przykład: inicjalizuje procesor, magistrale, kontroler przerwań, zegar, ustawienia RAM ładuje i uruchamia program rozruchowy z pamięci flash GUT Intel 2015/16 22/54

Yocto Project - wersje stabilne nowa wersja stabilna Yocto Project - raz na 6 miesięcy ( w kwietniu i w październiku) cztery ostatnie wersje: GUT Intel 2015/16 23/54

Środowisko pracy Stacja robocza (maszyna hosta) powinna spełniać następujace wymagania: system wieloprocesorowy symetryczny (symmetric multiprocessing,smp) co najmniej 8 GB pamięci, szybki dysk twardy szybkie łacze internetowe Wymagane oprogramowanie: OS Linux (jako system natywny lub wirtualny) Tar w wersji 1.24 lub wyższej Python w wersji 2.7.3 lub wyższej (ale nie Python 3) Instalacja wymaganych pakietów: $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc- multilib build-essential chrpath socat libsdl1.2-dev xterm make xsltproc docbook-utils fop dblatex xmlto autoconf automake libtool libglib2.0-dev python-gtk2 bsdmainutils screen GUT Intel 2015/16 24/54

Yocto Project - konfiguracja Pobranie plików Yocto Project: $ git clone -b fido git://git.yoctoproject.org/poky.git Konfiguracja środowiska: $ cd poky $ source oe-init-build-env Utworzony zostanie bieżacy katalog roboczy build. Wybór innej nazwy katalogu roboczego: $ source oe-init-build-env build-qemuarm GUT Intel 2015/16 25/54

Yocto Project - konfiguracja Poczatkowo katalog roboczy zawiera tylko katalog conf, a w nim pliki konfiguracyjne: local.conf: specyfikacja platformy docelowej bblayers.conf: specyfikacja meta-warstw templateconf.cfg: lokalizacja przykładowych plików konfiguracyjnych (domyślnie meta-yocto/conf) Ustawienie maszyny docelowej w pliku local.conf: emulacja procesora arm: MACHINE?= "qemuarm" procesor quark: MACHINE?= "quark" GUT Intel 2015/16 26/54

Yocto Project - budowa Uruchomienie Bitbake z nazwa głównego systemu plików: core-image-minimal: mały system plików z obsługa konsoli; baza dla własnych konfiguracji core-image-minimal-initramfs: podobny do core-image-minimal, budowany jako ramdisk. core-image-x11: mały system plików z podstawowym wsparciem grafiki (serwer X11) core-image-sato: pełny system graficzny (oparty na środowisku SATO) Przykład: $ bitbake core-image-minimal GUT Intel 2015/16 27/54

Yocto Project - budowa obrazu Budowane lokalizacje i pliki: build/downloads - pobrane źródła, build/tmp - pliki pomocnicze work: główny katalog plików deploy: przygotowane pliki binarne (gotowe do uruchomienia): deploy/images/[machine name]: bootloader, jadro, główny system plików deploy/rpm: pakiety RPM deploy/licenses: pliki licencji (pochodza z wykorzystanych pakietów) GUT Intel 2015/16 28/54

Yocto Project - punkt widzenia użytkownika GUT Intel 2015/16 29/54

Yocto Project - warstwy Metadane zorganizowane sa w warstwy o nazwach rozpoczynajacych się od meta. Warstwa (layer) - grupa medanych definiujacych określona funkcjonalność Podstawowe warstwy Yocto Project: meta: OpenEmbedded core meta-yocto: Yocto Project core (dystrybucja OS Poky) meta-yocto-bsp: wybrane board support packages Lista warstw, które przetwarza BitBake: <your build directory>/conf/bblayers.conf GUT Intel 2015/16 30/54

Yocto Project - warstwy Dodatkowe warstwy opracowywane sa przez: producentów SoC, twórców Yocto Project, zwykłych pasjonatów Przydatna lista warstw: http://layers.openembedded.org GUT Intel 2015/16 31/54

Yocto Project - warstwy Przykład: zawartość bblayers.conf dla Intel Galileo GUT Intel 2015/16 32/54

Yocto Project - metadane BitBake przetwarza metadane różnego typu: recipes (.bb) - informacja o budowie jednostki oprogramowania: skad pobrać źródła? Jakie sa zależności? Jak zbudować i zainstalować komponent? append (.bbappend) - rozsrzerzenie przepisu; dołaczane do.bb o tej samej nazwie include (.inc) - informacja wspólna dla wielu przepisów. classes (.bbclass) - ogólne instrukcje budowy, np.: jak zbudować jadro? Klasy moga po sobie dziedziczyć, sa rozszerzane w przepisach oraz klasach dziedziczacych. Klasa classes/base.bbclass jest dziedziczona przez każdy przepis configuration (.conf) - definicje zmiennych konfiguracyjnych GUT Intel 2015/16 33/54

Yocto Project - funkcje w przepisach Przepis (recipe) - zbiór funkcji: 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() GUT Intel 2015/16 34/54

Yocto Project - jak działa Bitbake Analiza przepisów (recipes) i plików konfiguracyjnych aby ustalić co i jak ma być zbudowane Pobranie z sieci kodu źródĺowego Budowa obrazu systemu GUT Intel 2015/16 35/54

Yocto Project - jak działa Bitbake Source: P. Raghavan, Amol Lad, Sriram Neelakandan, Embedded Linux system design and development GUT Intel 2015/16 36/54

Yocto Project - jak działa Bitbake BitBake analizuje konfigurację obrazu (m.in. pliki: bblayers.bb, local.conf) poszukujac dodatkowych warstw, klas, przepisów i zadań i budujac łańcuch zależności między nimi ( i standardowymi elementami OE-core). Rodzaje zależności: internally dependent, DEPENDS - zależności (pakiety) potrzebne w procesie budowania; RDEPENDS - zależności (pakiety) potrzebne w procesie wykonywania; inter-task dependent - set within a recipe and add a task before and/or after another task. GUT Intel 2015/16 37/54

Yocto Project - jak działa Bitbake Powstaje mapa ważonych priorytetów zadań (weighted task priority map). BitBake korzysta z tej mapy podczas ustalania kolejności budowy poszczególnych pakietów. Zadania wymagane przez większość innych zadań oceniane sa wyżej, a więc będa wykonane wcześniej podczas procesu budowy dystrybucji OS GUT Intel 2015/16 38/54

Yocto Project - jak działa Bitbake BitBake wykonuje kolejkę zadań (runqueue) rozdzielajac je między watki (maksymalna liczba watków zdefiniowana jest przez zmienna BB_NUMBER_THREADS w pliku conf/local.conf) Zadanie wykonywane podczas budowania pakietu może być modyfikowane za pomoca przepisu. Podstawowa, domyślna kolejność zadań rozpoczyna się od rozpakowania źródeł pakietów, konfiguracji i kompilacji skrośnej Skompilowane źródło jest rozdzielane na pakiety; tworzona jest debug package information. Rozdzielone pakiety pakowane s a do odpowiedniego formatu (rpm, ipk lub deb). Bitbake wykorzystuje je do budowy systemu plików. GUT Intel 2015/16 39/54

Yocto Project - jak działa Bitbake Źródło: www.denx.de/wiki/ GUT Intel 2015/16 40/54

Yocto Project - architektura (openembedded) GUT Intel 2015/16 41/54

BitBake - Interfejsy użytkownika podstawowy plik wykonawczy BitBake to bitbake/bin/bake W pierwszej kolejności uruchamiany jest interfejs użytkownika, który umożliwia: : prezentowanie wyników, statusie i postępach procesu budowania, przechwytywanie zdarzeń od zadań (build tasks). knotty - domyślny interfejs użytkownika; linia poleceń. hob - graficzny interfej użytkownika; umożliwia modyfikowanie plików konfiguracyjnych, dodawanie warstw i pakietów. GUT Intel 2015/16 42/54

BitBake - Hob GUT Intel 2015/16 43/54

BitBake - Hob GUT Intel 2015/16 44/54

BitBake - Hob GUT Intel 2015/16 45/54

Budowa Yocto dla Intel Galileo https://downloadcenter.intel.com/download/23197/intel-quark-bsp GUT Intel 2015/16 46/54

Budowa Yocto dla Intel Galileo GUT Intel 2015/16 47/54

Budowa Yocto dla Intel Galileo Zmiana gcc i g++ na starsze wersje (do 4.9)! http://askubuntu.com/questions/26498/choose-gcc-and-g-version GUT Intel 2015/16 48/54

Budowa Yocto dla Intel Galileo GUT Intel 2015/16 49/54

Budowa Yocto dla Intel Galileo GUT Intel 2015/16 50/54

Budowa Yocto dla Intel Galileo GUT Intel 2015/16 51/54

Budowa Yocto dla Intel Galileo oraz: libstd1.2-dev gcc-4.9-multilib patchutils GUT Intel 2015/16 52/54

Budowa Yocto dla Intel Galileo GUT Intel 2015/16 53/54

Budowa Yocto dla Intel Galileo GUT Intel 2015/16 54/54