Schlagwort-Archive: RaspberryPi

piCore: Zwischen Einplatinencomputer und Microcontroller

Der RaspberryPi ist ein Einplatinencomputer, der über GPIO Pins mit angeschlossener Elektronik kommunizieren kann. Mikrocontroller (µC) können das auch. Dafür hat der Pi ein ausgewachsenes Betriebssystem (meist Raspbian), ein Dateisystem, ein Netzwerk etc. Andererseits benötigt der µC wenig Strom und man kann ihn ohne Bedenken ausschalten. Der Pi mag das Ausschalten nicht so gerne: er möchte sauber heruntergefahren werden. Und auch sonst muss man sich mehr um ihn „kümmern“ – Software aktuell halten, ggf. das Betriebssystem aktualisieren.

Besonders der Punkt des Herunterfahrens störte mich bei vielen Pi-Projekten, die irgendwann in den Dauerbetrieb gehen sollen. Wenn ich eine LED-Wand damit ansteuere, möchte ich sie ausschalten können, ohne mich zuvor per SSH anmelden zu müssen.

Diese Lücke zwischen ausgewachsenem OS und µC-Firmware adressiert die Distribution piCore – ein auf TinyCoreLinux aufbauendes Linux, das komplett im RAM läuft. Mittlerweile gibt es schon Version 9 und ein aktives Forum mit Nutzern und Entwicklern. Das Basisimage von PiCore ist weniger als 40 MB groß und lässt sich daher schnell installieren. Eine Testinstallation bootete flott in weniger als zehn Sekunden. Weil alle Programme direkt im RAM laufen und es keine langsamen Zugriffe auf die SD-Karte gibt, verhält sich das System äußerst responsiv und flott. Da das OS von SD-Karte bootet und diese anschließend nicht mehr benötigt, kann der Pi ohne schlechtes Gewissen ausgeschaltet werden – alle Daten liegen ja im RAM. Sollen Daten das Ausschalten überleben und auch beim nächsten Bootvorgang erhalten bleiben, gibt es hierfür das Programm filetool.sh, das die Userdaten auf die SD-Karte schreibt.

Fazit: Die Grenzen von piCore liegen klar bei Anwendungen, die viele Daten schreiben – insbesondere, wenn diese Daten nicht mehr in der RAM passen und auch beim nächsten Bootvorgang erhalten bleiben sollen. Wer jedoch die umfangreiche Hardwareausstattung des Pi nutzen möchte und keine Sorgen mit dem Blinden Trennen von der Stromversorgung haben möchte, sollten einen Blick auf piCore werfen.

Docker auf dem RaspberryPi

Mit HyprioOS gibt es seit einiger Zeit ein Image für den RaspberryPi, das docker container auf den Pi holt. Man muss beachten, dass die docker images für ARM-Architekturen gebaut sind. Davon gibt es aber immer mehr – hypriot selbst stellt bereits einige zur Verfügung. Man kann z.B. mit einem schlanken alpine-Basisimage starten und sich darauf aufbauend mit Hilfe eines Dockerfile den Container für den eigenen Bedarf stricken.

$ docker build -t containername .

Mehrere Container können schließlich zu einem Service zusammengebaut werden. Das macht docker-compose und ein docker-compose-yml-File.

$ docker-compose up

Mehrere Services lassen sich schließlich zu einem Swam zusammenfügen und auf mehrere Pis verteilen. HypriotOS bringt alle wichtigen Tools mit und läuft zuverlässig.