Hardware über Device Tree anbinden
I2C-, SPI- und weitere Geräte in der Hardwarebeschreibung des Systems aktivieren.
Der Device Tree beschreibt die Hardware, die das Betriebssystem vorfindet. Dazu gehören unter anderem Busse, angeschlossene Bausteine, Chip-Selects, Interrupts und GPIOs. Je nach SoC lassen sich außerdem Pinmux- und Pin-Konfigurationen vorgeben.
Wann ist dieser Weg sinnvoll?
Nutze die Device-Tree-Variante, wenn:
- ein Gerät vom Kernel-Treiber erkannt und verwaltet werden soll,
- ein Bus oder ein angeschlossenes Gerät im System noch nicht beschrieben ist,
- feste Hardwareparameter wie Interrupts, GPIOs oder Chip-Selects erforderlich sind,
- die Konfiguration für alle Geräte eines System-Images reproduzierbar sein soll.
Typischer Ablauf
- Prüfe, ob der benötigte Kernel-Treiber und der Bus aktiviert sind.
- Ermittle die konkrete Hardwarebeschreibung für
[SYSTEM]. - Ergänze den passenden Node für das Gerät und seine Verbindungen.
- Baue das Image und starte das Zielsystem mit der neuen Beschreibung.
- Prüfe im laufenden System, welches Gerät oder welcher Service entstanden ist.
/* Beispielstruktur – Werte und Treiber sind systemspezifisch. */
&[I2C-ODER-SPI-BUS] {
status = "okay";
[GERAET]@[ADRESSE-ODER-CHIP-SELECT] {
compatible = "[TREIBER-KOMPATIBILITÄT]";
reg = <[ADRESSE-ODER-CHIP-SELECT]>;
status = "okay";
};
};Die zulässigen Properties, Adressen und Treiber hängen vom konkreten Baustein und der Hardwarevariante ab.
Hardware- und Systemgrenzen beachten
Änderungen am Device Tree können Pinmux, Versorgung, Bootverhalten und bereits verwendete Schnittstellen beeinflussen. Verwende nur freigegebene Pins, Busse und elektrische Parameter und prüfe die Änderung auf jeder betroffenen Hardwarevariante.
Übergang zum Userspace
Der Device Tree ist normalerweise nicht die Anwendungsschnittstelle. Nach der Initialisierung greift die Anwendung über das bereitgestellte Gerät oder über einen Systemservice darauf zu. Für diesen Teil siehe Schnittstellen aus dem Userspace verwenden.
[PLATZHALTER: Pfad der Hardwarebeschreibung, Buildroot-Konfiguration, Treiberliste und freigegebene Device-Tree-Beispiele]