Kernel Entwicklung

Wähle den richtigen Linux Kernel für dein System

Kernel Konfiguration
Device Tree
Treiber
Patch Management

Kernel Entwicklung

Viele Chiphersteller liefern eigene Kernel, die selten mit Sicherheitsupdates gepflegt werden. Oft bieten Hersteller auch eigene Treiber zum Download an. Diese Treiberpatches wurden für eine explizite Linux-Kernelversion entwickelt und getestet. Für die langfristige erfolgreiche Pflege ist die Wahl der richtigen Hardware und des richtigen Kernels daher essentiell.

Wichtig ist daher

  • im Hardwaredesign auf gut unterstütze Komponenten zu setzen
  • wenn immer möglich einen LTS-Kernel als Basis nutzen

Die korrekte Kernelkonfiguration ist der erste Schritt um einen Linux Kernel zu bauen. Die Kernelkonfiguration bietet eine Vielzahl an verschiedenen Optionen. Falsche Konfigurationen führen im besten Fall nur zu verminderter Performance im schlechtesten Fall aber zu nicht oder unzuverlässig funktionierenden Systemen.

Die Kernelkonfiguration hat massgeblichen Einfluss auf

  • die Funktionalität
  • die Zuverlässigkeit
  • die Performance

des Gesamtsystems.

Unsere Vereinsmitglieder besitzen die notwendige Erfahrung und wissen worauf besonders geachtet werden muss.

Obwohl der Linuxkernel in der Zwischenzeit eine kaum überschaubare Menge an Treibern enthält, gibt es doch immer wieder Komponenten die nicht optimal unterstützt werden. Funktionale Anpassungen oder gar eine komplette Treiberimplementation sind keine Fremdworte für unsere Vereinsmitglieder.

 

 

Bootvorgang

Der Bootvorgang eines Embedded-Linuxsystems am Beispiel eines iMX6 in 5 Schritten

  • Stage 0
    ROM
    • initialisiert essentielle Hardware
    • lädt den SPL in das interne SRAM

 

  • Stage 1
    SPL, First Stage Bootloader
    • läuft im internen RAM
    • initialisiert grundlegende Hardware wie Datenspeicher und externes SDRAM
    • lädt den Bootloader in das externe SD-RAM

 

  • Stage 2
    U-Boot
    • läuft im externen RAM
    • initialisiert zusätzliche Hardware mittels Device Tree
    • lädt den Kernel und startet ihn mit Bootparametern

 

  • Stage 3
    Kernel
    • Kernel Decompression
    • Initialisierung und Parametrierung der kompletten Hardware mittels Device Tree
    • Autodetektion von Hardware
    • Einbinden von Dateisystemen

 

  • Stage 4
    Init
    • Initialisierung der benötigten Systemdienste
    • Initialisierung Netzwerkschnittstellen

 

  • Stage 5
    Applikation
    • Initialisierung der spezifischen Applikation
    • Initialisierung projektspezifischer Peripherie

kernel_config_spi_2.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

emblex_bootloader.png