Schulungsübersicht

  1. Erste Schritte
    1. Beschaffung Buildroot
    2. Anforderungen an das Build-System
    3. Compiler-übergreifende Terminologie: Build, Host, Target, Sysroot
    4. Auswahl des richtigen Targets
    5. Ein minimales eingebettetes System bauen und es booten
    6. Inhalt des resultierenden Dateisystemabbilds
    7. Parallele Builds
    8. Vollständige und partielle Rebuilds
  2. Entwurfsziele von Buildroot
  3. Zu treffende Entscheidungen
    1. C-Bibliothek: glibc oder uClibc oder musl?
    2. Init-System: busybox vs. sysVinit vs. systemd
    3. Verwaltung von Geräteknoten in /dev
    4. Andere Pakete auswählen
  4. Verstehen der Build-Anweisungen
    1. Syntax der Kconfig-Dateien (Confog.in)
    2. Eigenschaften von GNU Make, die von Buidroot Makefiles verwendet werden
    3. Style Guide für Config.in und *.mk Dateien
    4. Wie man ein einfaches Autotools-basiertes Paket hinzufügt
    5. Der Unterschied zwischen Staging- und Zielverzeichnissen
    6. Die Notwendigkeit von Host-Paketen
    7. Wie man Abhängigkeiten und optionale Funktionen ausdrückt
    8. Unterstützung für andere Sprachen als C und andere Build-Systeme als Autotools
    9. Debuggen von Makefiles
    10. Ein einzelnes Paket neu bauen
  5. Analysieren der Build-Ergebnisse
    1. Was hat so viel Zeit zum Bauen gebraucht?
    2. Was benötigte so viel Speicherplatz?
    3. Warum wurde dieses Paket gebaut?
  6. Organisieren externer Paketbäume
  7. Arbeitsablauf für Anwendungsentwickler
    1. Wie man ein lokales Quellverzeichnis verwendet
    2. Überschreiben von Bauanweisungen
    3. Fehlersuche in Ihrer Anwendung
    4. Beschleunigung von Rebuilds
    5. Einsehen von Build-Protokollen
  8. Umgang mit häufigen Problemen bei der Cross-Kompilierung
    1. Wie Sie Ihre eigene Software so schreiben, dass sie kompatibel zu Cross-Compilern ist
  9. Arbeitsablauf für Kernel-Entwickler
    1. Wie der Kernel auf einem eingebetteten System bootet
    2. Ändern von Konfigurationsoptionen und Hinzufügen von Patches
    3. Mechanismen zum Laden von Modulen
  10. Herstellung eines fertigen Produkts
    1. Ausführen von Daemons beim Starten
    2. Bereitstellen von benutzerdefinierten Konfigurationsdateien
    3. Verfügbare Mechanismen zur Aktualisierung der Firmware
    4. Aktualisieren auf eine neue Buildroot-Version
    5. Einhalten von Open-Source-Lizenzen

Voraussetzungen

  • Der Teilnehmer muss mindestens einmal einen Kernel für ein herkömmliches (nicht eingebettetes) Linux-Desktop-System erstellt haben.
  • Er weiß, aus welchen Komponenten sich der Linux-Benutzerraum auf einem Desktop-System zusammensetzt.
  • Weiß, wie man Patches erzeugt und verwendet.
  • Muss erklären können, was GNU Make und Autotools ist und welche anderen Build-Systeme es gibt.
  • Idealerweise unterhält er mindestens ein Linux-Paket, entweder als Upstream-Autor oder in einer traditionellen Linux-Desktop-Distribution.
  • Vorherige Erfahrung mit eingebetteter Entwicklung ist nicht erforderlich und ist kein Ersatz für das oben genannte Wissen über traditionelle Linux-Desktops.
 7 Stunden

Teilnehmerzahl


Price per participant (excl. VAT)

Kommende Kurse