Plan Szkolenia
1. Wprowadzenie do jądra Linuxa
- Przegląd systemów Linux dla urządzeń wbudowanych
- Architektura jądra Linux
- Przestrzeń użytkownika (user space) versus przestrzeń jądra (kernel space)
- Zadania wykonywane przez jądro
- Proces deweloperski dla jądra
- Przegląd obsługiwanych platform wbudowanych
2. Konfiguracja środowiska programistycznego
- Przygotowanie stacji roboczej do pracy deweloperskiej
- Zasady cross-compilacji (kompilacji krzyżowej)
- Instalacja niezbędnych narzędzi deweloperskich
- Konfiguracja płyty developerskiej BeagleBone Black
- Konfiguracja konsoli szeregowej
- Rozruch urządzenia docelowego
3. Pobieranie i zrozumienie kodu źródłowego jądra
- Zasób (drzewo) kodu źródłowego jądra Linux
- Jądra stabilne versus jądra z długimterminowym wsparciem (LTS)
- Pobieranie źródeł jądra
- Eksploracja struktury kodu źródłowego
- Dokumentacja jądra
- Zarządzanie wersjami jądra
4. Konfiguracja, kompilacja i rozruch jądra
- Konfiguracja jądra przy użyciu narzędzia menuconfig
- Wybieranie funkcji jądra
- Kompilacja krzyżowa jądra
- Budowanie obrazów jądra
- Instalacja modułów jądra
- Přehled bootloadera
- Rozruch własnego (niestandardowego) jądra
5. Podstawy Device Tree
- Cel istnienia Device Tree
- Pliki źródłowe Device Tree (DTS)
- Blob Device Tree (DTB)
- Koncepcje opisu sprzętu
- Modyfikacja plików Device Tree
- Budowanie i wdrażanie Device Tree
6. Moduły jądra Linuxa
- Architektura modułów jądra
- Budowanie ładowalnych modułów jądra
- Ładowanie i odłączanie modułów
- Parametry modułów
- Zależności modułów
- Interakcja z modułami jądra
- Techniki debugowania modułów
7. Debugowanie jądra Linuxa
- Dziennik jądra za pomocą funkcji printk()
- Korzystanie z narzędzia dmesg
- Dynamiczne debugowanie
- Analiza paniców jądra
- Komunikaty Oops
- Debugowanie przy użyciu GDB
- Podstawowe narzędzia do śledzenia wydajności
8. Sterowniki urządzeń char (znakowych)
- Model sterowników urządzeń w Linuksie
- Urządzenia znakowe
- Konfiguracja rejestracji sterowników
- Operacje na plikach
- Operacje odczytu i zapisu
- Interfejs IOCTL
- Zarządzanie pamięcią
- Czyszczenie (cleanup) sterownika
9. Integracja sterowników i dostęp do sprzętu
- Urządzenia platformowe (Platform devices) i ich sterowniki
- Programowanie GPIO
- Obsługa przerwań
- Zegary i odroczone zadania (deferred work)
- Dostęp do rejestrów sprzętowych
- Praca z I/O mapowanym w pamięci (Memory-mapped I/O)
10. Wersjonowanie kodu z użyciem Gita
- Podstawy Gita
- Zarządzanie źródłami jądra
- Rozgałęzianie i łączenie gałęzi (Branching and merging)
- Tworzenie łat (patches)
- Przeglądanie zmian
- Współpraca w trakcie dewelopowania jądra
11. Praktyczne laboratoria programowania jądra
- Konfiguracja niestandardowego jądra
- Budowanie i wdrażanie jądra
- Tworzenie prostego modułu jądra
- Rozwój podstawowego sterownika urządzenia char
- Modyfikacja plików Device Tree
- Debugowanie problemów z jądrem na płycie BeagleBone Black
12. Najlepsze praktyki i podsumowanie
- Styl programowania w jądrze
- Pisanie sterowników łatwo utrzymywanych
- Pospolite pułapki deweloperskie
- Zasoby dokumentacji jądra
- Proces współtworzenia oprogramowania open-source
- Przegląd kluczowych pojęć
- Odpowiedzi na pytania
- Kolejne kroki w dewelopowaniu jądra Linuxa
Wymagania
Podstawowa znajomość systemu GNU/Linux
Opinie uczestników (6)
Świetny kontakt z uczestnikami, otwartość, chęć dzielenia się wiedzą i doświadczeniem
Lukasz Majkut
Szkolenie - Embedded Linux Kernel and Driver Development
strona praktyczna
Piotr Uruski
Szkolenie - Embedded Linux Kernel and Driver Development
Wiedza trenera. Był w stanie odpowiedzieć na wszystkie moje pytania, nawet na te dotyczące naszej platformy. Kontynuował również pomoc, dopóki wszyscy nie zrozumieli materiału.
James O'Donnell - Tennant Company
Szkolenie - Embedded Linux Kernel and Driver Development
Przetłumaczone przez sztuczną inteligencję
Dodatkowe informacje o narzędziach stosowanych przy pracy z kodem i oprogramowaniem w ogóle. Bogata literatura podana przez prowadzącego.
Michal Zych - Siec Badawcza Lukasiewicz - Instytutu Lotnictwa
Szkolenie - Embedded Linux Kernel and Driver Development
Bardzo szerokie spektrum zagadnień, dające pogląd na wiele kwestii związanym z tematem szkolenia.
Przemyslaw Ujma - Hectronic Polska Sp. z o.o.
Szkolenie - Embedded Linux Kernel and Driver Development
I liked the hands-on nature of it.
Maurice Egan
Szkolenie - Embedded Linux Kernel and Driver Development
Przetłumaczone przez sztuczną inteligencję