iconimage - Fotolia

Tipps und Tools zum Kompilieren und Anpassen von Linux für IoT-Geräte

Für IoT-Geräte kommen sehr speziell angepasste Linux-Versionen zum Einsatz. Diese Tipps und Tools helfen bei Konfiguration und Kompilierung.

Mit zunehmender Dynamik im IoT-Markt (Internet of Things) wird auch der Umgang mit IoT-Geräten immer wichtiger. Am Anfang steht dabei die Verwendung des richtigen Linux-Betriebssystems – aber Achtung, bei Linux für IoT-Geräte handelt es sich um ein ganz anderes Betriebssystem, als bei Linux für Server oder Desktop-PCs.

Bei IoT-Geräten handelt es sich um sehr spezifische Hardware, die meist auch speziell angefertigte Komponenten enthält. Diese Geräte benötigen also eine ebenso speziell angepasste Linux-Version, die oft manuell konfiguriert werden muss – anders als generische Linux-Distributionen für Server.

Um Linux für ein IoT-Gerät vorzubereiten, wird meist eine Entwickler-Workstation benötigt. Dabei handelt es sich einfach um den Computer, mit dem man sich dann mit der IoT-Hardware verbindet, um so das selbstkonfigurierte Linux-System dort zu installieren. Anders als im Serverumfeld gibt es hierbei keine Konfigurationsdateien, die auch später noch geändert werden können. Alle Einstellungen müssen also vom Entwickler-PC aus durchgeführt werden, und zwar idealerweise gleich von Anfang an in der richtigen Art und Weise.

Cross Compiler für IoT-Geräte

Eine der wichtigsten Komponenten bei der Verwendung von Linux für das Internet der Dinge ist der Cross-Compiler. Dabei handelt  es sich um einen C-Compiler zusammen mit den nötigen Utilities zum Erstellen des Bootloaders, des Kernels und der C-Bibliothek. Ebenfalls Teil der Cross-Compiler-Tools sind die Applikationen, die später auf den IoT-Geräten ausgeführt werden sollen, die sich natürlich je nach Einsatzzweck unterscheiden. Der Cross-Compiler ermöglicht also nicht nur das Kompilieren von Code für den lokalen Computer, sondern auch für den Code, der auf der IoT-Hardware ausgeführt werden soll.

Raspbian-Linux für Rapsberry Pi

Für die meisten IoT-Geräte sollten speziell angefertigte Linux-Versionen zum Einsatz kommen, wobei oft auch generische IoT-Distributionen wie Raspbian für den Raspberry Pi funktionieren. Verglichen mit den Konfigurationsmöglichkeiten selbst kompilierter Distributionen ähnelt Raspbian eher einem normalen Betriebssystem. Das Raspberry-Pi-Linux kann als fertiges Image heruntergeladen und direkt verwendet werden.

Raspbian funktioniert aber vollkommen anders als selbst erstellte Linux-Versionen, weil das damit betriebene Gerät mehr einem herkömmlichen Linux-Computer als IoT-Hardware ähnelt. Mit Raspbian haben Administratoren zum Beispiel Schreibzugriff auf Storage, was bei selbstkompilierten Linux-Distributionen für das Internet der Dinge meist nicht der Fall ist. Die Möglichkeiten von Rapsbian können in IoT-Umgebungen durchaus hilfreich sein, adressieren letztlich aber andere Anforderungen.

Wer nach einem minimalen und optimierten Betriebssystem sucht, der wird mit einer eigenen Cross-Compiler-Toolchain auf einer dedizierten Entwickler-Workstation sicherlich glücklicher. Rasbpian-Linux dagegen arbeitet naturgemäß auf Raspberry-Hardware am besten, die wiederum durchaus Basis einer IoT-Umgebung sein kann. Wer aber eine große Anzahl an IoT-Geräten mit der gleichen optimierten Konfiguration benötigt, für den funktioniert ein selbstkompiliertes Linux meist besser.

Nachdem die Toolchain für den Cross-Compiler erstellt wurde, werden die unterschiedlichen Komponenten des IoT-Linux-Betriebssystems hochgeladen, wobei mit dem Bootloader begonnen wird. Da dieser Bestandteil sehr eng in Linux integriert sein muss, besteht er meist aus unterschiedlichen Teilen, die speziell für einzelne Teile der IoT-Hardware entwickelt wurden. Wenn das IoT-Gerät hochgefahren wird, wird zunächst ein RomBOOT-Programm geladen, gefolgt von einem Bootstrap-Programm, woraufhin schließlich der tatsächliche Bootloader U-Boot geladen wird. Dabei handelt es sich um die Komponente, die den Linux-Kernel lädt.

Kompilieren des Linux-Kernels

Während Linux für Server oder Desktop-PCs einen weitgehend modularen Kernel verwendet, muss für IoT-Geräte ein speziell angepasster Kernel erstellt werden, der die geringen Hardwareressourcen so effizient wie möglich verwendet.

Im nächsten Schritt wird die Shell-Umgebung hochgeladen. Bei den meisten regulären Linux-Betriebssystemen adressiert die Shell-Umgebung viele externe Befehle, ein IoT-Linux benötigt demgegenüber eine minimale Shell. Busybox ist eine der am häufigsten verwendeten Shells und enthält nur minimale Versionen gängiger Linux-Programme. Wenn Kernel und Shell implementiert sind, kann das Root-Dateisystem angegangen werden. Auch dabei sollte kein reguläres Linux-Dateisystem zum Einsatz kommen, sondern wiederum ein stark optimiertes Dateisystem, das vor allem mit dem Flash-Speicher der IoT-Hardware umgehen kann.

Verwaltung des IoT-Gerätes mit Yocto

Sobald die angepasste Linux-Distribution erstellt wurde, kann sie auf das IoT-Gerät aufgespielt werden. Hierfür ist spezielle Management-Software nötig, derzeit ist etwa Yocto eines der führenden Produkte hierfür. Mit Yocto ist die Verwaltung und Konfiguration eines IoT-Linux über verschiedene Geräte hinweg relativ einfach möglich.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Erfahren Sie mehr über Serverbetriebssysteme

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close