Yocto w Systemach Embedded
Szkolenie dla wszystkich zainteresowanych rozwijaniem projektów opartych o Yocto i OpenEmbedded.
Daje solidną bazę do wdrażania tego systemu budowania w projekcie oraz rozwijania receptur i konfiguracji.
Uczestnicy szkolenia będą w stanie zaplanować, rozpocząć i rozwijać własny projekt.
- Czas trwania:
- 3 dni (24 godziy zegarowych)
Program Szkolenia
Wszystkie prezentowane zagadnienia bazują na naszych praktycznych doświadczeniach związanych z wdrażaniem systemów budowania Yocto Project i OpenEmbedded.
Dużo ćwiczeń praktycznych (50/50) na rzeczywistym sprzęcie - RaspberryPi lub i.MX6 (lub inne urządzenia przy szkoleniach na zamówienie).
Dzień 1. Yocto Project
- Wprowadzenie/podsumowanie informacji na temat Linuksa Embedded. Architektura systemu, komponenty składowe, podstawowe narzędzia.
- Wprowadzenie do Yocto Project: Przegląd narzędzi, zasada działania, elementy składowe. Dystrybucja Poky
- Konfiguracja systemu budowania dla konkretnego projektu - warstwy, wersje, BSP: NXP i.MX6, TI AM335x, Atmel AT91, Intel Edison i inne.
- Wybór wersji jądra i dostosowanie receptur jądra
- Uruchamianie systemu, bootloader (U-BOOT) - integracja konfiguracji bootloadera w projekcie, rozszeranie BSP
- Receptury i pakiety - dobór pakietów, konfiguracja zależności.
- Konfiguracja obrazów wynikowych (system plików dla SD, NAND)
- Planowanie implementacja i wdrożenie procedury aktualizacji systemu. Modyfikowanie wynikowego obrazu rootfs. Omówienie zagadnień bezpieczeństwa związanych z kwestiami aktualizacji i niezawodności systemu.
- Prezentacja gotowych rozwiązań (mender.io)
- Systemy plików dla urządzeń embedded.
- Budowanie i praca z SDK.
- Optymalizacja procesu budowania: mirrory, cache. Praktyczne wskazówki przy planowaniu buildserwerów i pracy z Yocto Project
Ćwiczenia:
Uczestnicy przygotowują system budowania oparty na Yocto Project. Budują obrazy wynikowe i SDK dla wybranej platformy. Modyfikują i eksperymentują z konfiguracją.
Po tej części:
- Uczestnicy zdobędą praktyczną wiedzę na temat zastosowania Yocto Project w projekcie.
Dzień 2. Rozwój oprogramowania z użyciem Yocto Project
- Tworzenie oprogramowania przy użyciu narzędzi Yocto
- Przygotowanie narzędzi dla programistów.
- Meta-layer: co to jest, gdzie je znaleźć, jak je włączyć do projektu, jak tworzyć własne.
- Receptury: tworzenie receptur dla prostych programów, usług, zaawansowanych aplikacji; development workflow, korzystanie z bitbake
- Receptury: rozszerzanie i modyfikacja istniejących receptur. Dodawanie zadań budowania. Korzystanie z istniejących klas i tworzenie nowych (classes).
- Praktyczne przykłady: Wi-Fi (sterowniki i programy pomocnicze), opencv (w/o X11), QT5 (z
QT3D) - inne dodatkowe programy i biblioteki.
- Logowanie i debugowanie zależności.
- Budowanie minimalistycznych obrazów dla konkretnych zastosowań (minimalny system, system testowy, system dla ramdysku).
Po tej części:
- Uczestnicy stworzą dodatkowe meta-layery, receptury i zaawansowaną konfigurację systemu budowania.
- Do obrazu i SDK zostanie dodane nowe oprogramowania, a istniejące receptury będą modyfikowane.
- Uczestnicy uzyskają praktyczną wiedzę na temat pracy z Yocto Project i prawidłowej konfiguracji narzędzi do budowania systemów zgodnych z zadaną specyfikacją.
Dzień 3. Zaawansowane zagadnienia.
- Kontynuacja tematów i ćwiczeń z poprzedniego dnia.
- Zarządzanie użytkownikami i grupami.
- Konfiguracja systemy (zarądzanie zawartością /etc)
- Budowa plików konfiguracyjnych z fragmentów
- Parametryzowanie receptur
- Tworzenie i zarządzanie meta-pakietami (group recipes)
- Systemd: przegląd systemu uruchamiania, konfiguracja, konfiguracja logowania, sieci, zarządzanie usługami (autostart, watchdog, cgroup scheduler), obsługa hotplug.
- Tworzenie oprogramowania przy użyciu z Yocto BSP.
- Praca z Eclipse lub QTCreator. Konfiguracja narzędzi z Yocto SDK, konfiguracja narzędzi do pracy z kodem źródłowym jądra.
- Zdalne debugowanie aplikacji (w wersji z i bez dodatkowych pluginów).
- Profilowanie systemu: Perf, LTTng - rozwiązywanie problemów z działaniem i wydajnością aplikacji pod kontem narzędzi Yocto.