Bądźmy w kontakcie
 Czas trwania 14 godzin (2 dni)

Plan Szkolenia

1. Wprowadzenie do jądra Linux

  • Przegląd wbudowanego Linuxa
  • Architektura jądra Linux
  • Przestrzeń użytkownika a przestrzeń jądra
  • Zadania jądra
  • Przepływ pracy przy rozwijaniu jądra
  • Przegląd obsługiwanych platform wbudowanych

2. Konfiguracja środowiska programistycznego

  • Przygotowanie stacji roboczej do rozwoju
  • Koncepcje kompilacji krzyżowej
  • Instalacja wymaganych narzędzi programistycznych
  • Konfiguracja płyty deweloperskiej BeagleBone Black
  • Konfiguracja konsoli szeregowej
  • Uruchamianie urządzenia docelowego

3. Pozyskiwanie i zrozumienie źródeł jądra

  • Drzewo źródeł jądra Linux
  • Jądra stabilne a jądra z długoterminowym wsparciem
  • Pobieranie źródeł jądra
  • Eksploracja struktury kodu źródłowego
  • Dokumentacja jądra
  • Zarządzanie wersjami jądra

4. Konfiguracja, kompilacja i uruchamianie jądra

  • Konfiguracja jądra przy użyciu menuconfig
  • Wybór funkcji jądra
  • Kompilacja krzyżowa jądra
  • Budowanie obrazów jądra
  • Instalacja modułów jądra
  • Przegląd programu rozruchowego
  • Uruchamianie niestandardowego jądra

5. Podstawy drzewa urządzeń

  • Cel drzewa urządzeń
  • Pliki źródłowe drzewa urządzeń (DTS)
  • Binarny obiekt drzewa urządzeń (DTB)
  • Koncepcje opisu sprzętu
  • Modyfikowanie plików drzewa urządzeń
  • Budowanie i wdrażanie drzew urządzeń

6. Moduły jądra Linux

  • Architektura modułów jądra
  • Budowanie ładowalnych modułów jądra
  • Ładowanie i usuwanie modułów
  • Parametry modułów
  • Zależności modułów
  • Interakcja z modułami jądra
  • Techniki debugowania modułów

7. Debugowanie jądra Linux

  • Logowanie jądra za pomocą printk()
  • Korzystanie z dmesg
  • Dynamiczne debugowanie
  • Analiza paniki jądra
  • Komunikaty Oops
  • Debugowanie za pomocą GDB
  • Podstawowe narzędzia do śledzenia wydajności

8. Sterowniki urządzeń znakowych

  • Model sterowników urządzeń w Linuxie
  • Urządzenia znakowe
  • Rejestracja sterowników
  • Operacje na plikach
  • Operacje odczytu i zapisu
  • Interfejs IOCTL
  • Zarządzanie pamięcią
  • Zwalnianie zasobów sterownika

9. Integracja sterowników i dostęp do sprzętu

  • Urządzenia i sterowniki platformowe
  • Programowanie GPIO
  • Obsługa przerwań
  • Czasomierze i praca odroczona
  • Dostęp do rejestrów sprzętowych
  • Praca z wejściem/wyjściem mapowanym w pamięci

10. Kontrola wersji z Git

  • Podstawy Git
  • Zarządzanie kodem źródłowym jądra
  • Rozgałęzienia i scalanie
  • Tworzenie poprawek
  • Przeglądanie zmian
  • Współpraca przy rozwijaniu jądra

11. Praktyczne laboratoria rozwijania jądra

  • Konfiguracja niestandardowego jądra
  • Budowanie i wdrażanie jądra
  • Tworzenie prostego modułu jądra
  • Rozwijanie podstawowego sterownika urządzenia znakowego
  • Modyfikowanie plików drzewa urządzeń
  • Debugowanie problemów jądra na BeagleBone Black

12. Najlepsze praktyki i podsumowanie

  • Styl kodowania jądra
  • Pisanie łatwych w utrzymaniu sterowników
  • Częste pułapki programistyczne
  • Zasoby dokumentacji jądra
  • Przepływ pracy przy współtworzeniu open source
  • Powtórka kluczowych pojęć
  • Pytania i odpowiedzi
  • Kolejne kroki w rozwijaniu jądra Linux

Wymagania

Podstawowa znajomość obsługi systemu GNU/Linux

Liczba uczestników


Cena za uczestnika (netto)

Opinie uczestników (6)

Propozycje terminów

Powiązane Kategorie