Yocto Project w Systemach Embedded
Zobacz ceny szkoleń i zapisz się »
Szkolenie dla wszystkich zainteresowanych rozwijaniem projektów opartych o Yocto Project oraz OpenEmbedded. Daje solidną bazę do wdrażania tego systemu budowania oraz rozwijania receptur i konfiguracji.
Uczestnicy szkolenia będą w stanie zaplanować, rozpocząć i rozwijać własny projekt dystrybucji Linuksa Embedded.
- Czas trwania: 2 dni (16 godzin 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 i wirtualnym sprzęcie - ARM i AARCH64 (NXP i.MX, ST, TI).
Uczestnicy zdobędą praktyczną wiedzę na temat zastosowania Yocto Project w projekcie.
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 i inne.
- Wybór wersji jądra i dostosowanie receptur.
- 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ń (SWUpdate, hawkBit)
- 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
- 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).
Ćwiczenia
Uczestnicy przygotowują system budowania oparty na Yocto Project. Budują obrazy wynikowe i SDK dla wybranej platformy. Modyfikują i eksperymentują z konfiguracją.
Dzień 2. Rozwój oprogramowania z użyciem Yocto Project - Zaawansowane zagadnienia
- Kontynuacja tematów i ćwiczeń z poprzedniego dnia.
- Zarządzanie użytkownikami i grupami.
- Konfiguracja systemy (zarzą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, QTCreator, Visual Studio Code/VSCodium. 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.
Ćwiczenia
- 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ą.