Buildroot
Willemers Informatik-Ecke
Mit Buildroot kann ein Linux-Dateisystem für embedded Linux-Systeme generiert werden. Neben dem eigentlichen Kernel wird für ein funktionstüchtiges Linux-System noch eine Reihe von Programmen und Bibliotheken benötigt. Bei einem normalen Linux-System wird dies alles durch die Distribution erstellt. Normale Distributionen eignen sich für embedded Systeme oft weniger, weil diese zu viel Platz benötigen oder für den gewünschten Prozessor gar nicht vorliegen.

Embedded Systeme haben nämlich nicht unbedingt Standard Intel-Prozessor, sondern arbeiten oft mit einem ARM (wie beispielsweise auch der Raspberry Pi), einem PowerPC oder einem stromsparenden Prozessor, der nur einen reduzierten Befehlssatz eines 386 oder 486 beherrscht.

Auf der Heimatseite http://buildroot.org/ steht ein gepacktes Tar-File zum Download bereit. Im Dateinamen ist auch immer Jahr und Monat der Entstehung kodiert.

tar xzf buildroot-xxxx.xx.tar.gz
Nach dem Entpacken der Datei steht eine Umgebung zur Verfügung, mit der das eigentliche Dateisystem erstellt wird. Der erste Schritt besteht also darin, das Zielsystem zu konfigurieren. Ähnlich wie bei der Kernelgenerierung wird mit dem Befehl make gearbeitet.
cd buildroot-2015-02
make menuconfig
Vermutlich muss zum weiteren Arbeiten erst das Entwicklungspaket für ncurses installiert werden. Auf einem Debian-System erfolgt dies mit den folgenden Befehlen:
su -
# apt-get install ncurses-dev
Nach diesem Aufruf erscheint ein Menü, in welchem das Zielsystem konfiguriert wird.

Mit den Cursortasten wechselt man, mit der Returntaste wechselt man in einen Unterbereich, dem man mit Exit wieder verlässt. Mit der Leertaste lassen sich Punkte an- und abwählen.

Im Bereich Kernel kann angewählt werden, dass mit dem Buildroot auch ein Kernel eingebunden werden kann. Dazu muss ein Defconfig name angegeben werden, beispielsweise i386 oder armel. Er gibt die Zielplattform an.

Unter den Linux Kernel Extensions kann auch der Patch für Realtime angewählt werden, der für viele embedded Systems wichtig ist.

In den Filesystem images sollte ext-Unterstützung angewählt werden.

Auch eine Bootloader-Unterstützung ist vorhanden.

Nach dem Verlassen der Hauptebene ist die Konfiguration beendet. Die Konfiguration ist wie bei der Kernel-Generierung in der Datei .config hinterlegt. Nun wird das System erstellt.

make
Das fertige Dateisystem befindet sich in einer Tar-Datei namens rootfs.tar im Unterverzeichnis output/images. Im nächsten Schritt wird ein Medium vorbereitet, das später zum Booten des embedded Systems verwendet werden soll. Das kann beispielsweise eine Flash-Speicherkarte sein. Nach der Partitionierung und erstellung des Dateisystems wird das Root-Filesystem des Mediums gemountet.

# mount /dev/sdb1 /mnt
# cd /mnt
# tar xf /home/arnold/buildroot/output/images/rootfs.tar