codehunter
Goto Top

Raspberry Pi als Embedded-Device

Hallo zusammen!

Ich habe den Raspi schon für viele Projekte verwendet und kenne daher seine Stärken und Schwächen. Eine seiner größten Schwächen ist das Booten von Linux von einer SD-Karte. Diese Karten sind als Datengrab für lineare Zugriffe gemacht, nicht für Random-Zugriffe und schon gar nicht als RAM-Auslagerungsmedium. Die Controller in den Karten sind nicht dafür optimiert (kein TRIM etc.). Ein Betrieb als Embedded-Device scheitert oft daran, dass diese SD-Karten relativ schnell kaputt geschrieben sind.

Ein weiteres Problem ist, dass Embedded-Geräte Hard-Off-fähig sein müssen. Also Ausschalten im laufenden Betrieb muss möglich sein. Siehe z.B. WLAN-Accesspoints, welche oftmals auch mit einem Embedded-Linux laufen und problemlos vom Strom getrennt und wieder eingeschaltet werden können, ohne dass man dafür irgendwelche Shutdown-Befehle ausführen muss. Macht man selbiges mit einem Raspi, so ist die Wahrscheinlichkeit hoch, dass die SD-Karte irreparabel beschädigt wird.

Ich habe schon mit Overlay-FS experimentiert und das Bootmedium readonly gemacht. Das hat aber seine Grenzen und zwar in der Größe vom RAM des Raspi. Der Bootloader lässt sich nicht overlayen und wenn es den beim Hard-Off erwischt, hat die SD-Karte zum letzten Mal gebootet.

Eine weitere Idee war ein USV-Shield mit einer Lithiumbatterie. Dabei wird der Raspi bei einem Powerloss nicht hart abgeschaltet, sondern ein Monitoring-Script im Raspi bekommt ein Triggersignal, das dann einen sauberen Shutdown auslöst. Sollte während des Runterfahrens der Strom wieder eingeschaltet werden, triggert das USV-Shield auch einen Reboot.

Overlay-FS und USV-Shield haben schon einiges gebracht. Kaputte SD-Karten habe ich seitdem nicht mehr. Trotzdem wechsle ich sie vorsichtshalber einmal im Jahr. Mich stören da jetzt weniger die 0,2 Gramm Plastikmüll, sondern die Arbeit die damit verbunden ist. Entweder habe ich ein Ersatz-Image gleich dabei, dann heißt es vorher neue Karte erstellen und einfach austauschen. Bei manchen Anwendungen geht das aber nicht so einfach, weil ich vorher noch Nutzdaten vom Embedded-Device kopieren muss. Nicht immer kann man sowas über eine Cloud lösen, weil keine Netzanbindung besteht. Auch wundert sich manchmal jemand, dass so eine Kiste nicht gleich aus geht wenn man den Stecker zieht, sondern erstmal noch eine Minute mit dem Mäusekino blinkert.

Jetzt überlege ich, ob man die Sache nicht noch auf anderen Wegen angehen könnte. Zum Beispiel nicht mehr von SD booten sondern von USB-SSD, die für Random-Zugriffe besser geeignet sind. Das habe ich bisher noch nie versucht. Auch habe ich noch keine Erfahrungen bzgl. Journaling-FS. Sind die in der Praxis tatsächlich resistent gegen solche Hard-Offs oder wird da übertrieben? Und vorallem, ist der Raspi überhaupt in der Lage, über USB von einem JFS zu booten?

Was gäbe es noch für Möglichkeiten, das Problem anzugehen? Vorschläge sind willkommen!

Grüße
Cody

Content-Key: 1030907241

Url: https://administrator.de/contentid/1030907241

Printed on: April 25, 2024 at 02:04 o'clock

Member: wiesi200
wiesi200 Jul 17, 2021 at 10:21:14 (UTC)
Goto Top
Hallo,

Es gibt übrigens auch Industrie SD Karten.
Die sind da unempfindlicher.
Member: aqui
aqui Jul 17, 2021 at 10:56:53 (UTC)
Goto Top
Ein / Aus Taster von Pimoroni elimiert die Probleme beim harten Ausschalten:
https://shop.pimoroni.com/products/onoff-shim
Member: Codehunter
Codehunter Jul 17, 2021 at 12:20:56 (UTC)
Goto Top
Bzgl. dem Hard-Off sollte ich noch ergänzen, dass das nicht unbedingt geplante Abschaltungen sind. Das könnte man ja bei manchen Anwendungen den Nutzern noch erklären. Es gibt aber auch andere Fälle, da läuft so ein Raspi komplett Headless in irgendeinem Gehäuse an der Wand. Jeder FI-Schalter geht irgendwann mal aus. Dann sollte die kleine Kiste zuverlässig wieder anlaufen. Eben das sehe ich im Moment noch nicht gewährleistet.
Member: GrueneSosseMitSpeck
GrueneSosseMitSpeck Jul 18, 2021 updated at 11:28:52 (UTC)
Goto Top
nimm robustere Betriebsystem und Speichermedien - Linux und Windows sind genauso wie Mark-Fuffzig SD Karten für so einen Einsatzzweck vollkommen ungeeignet. Das booten dauert übrigens bei beiden schon im Regelfall so lange weil die CPU des Raspi schlichtweg nicht für ein voll ausgewachsenes Windows gedacht ist und SD Karten wie eingangs schon jemand geschrieben hat, nicht für Random Zugirffe gedacht sind.

Ich hab z.B. seit 12 Jahren einen semiprofessionellen Camcorder, mit dem hab ich auch tausende Stunden an Aufnahmen gemacht (eine Stunde kann schon mal 12 GB groß sein) und Terabytes an Daten produziert. Eine Durchscnitts-SD Karte zu 32 GB konnte man mit dem Camcorder 20-50 mal vollschreiben, dann fingen die schon an rumzuzicken, Dateisystemdefekt, formatieren u.s.w. quer über alle Hersteller.

Und aktuell geht die Qualität mal so richtig in den Keller, eine SD Karte war nach 7x Vollschreiben hin ... USB Sticks können mit Random Zugriffen übrigens besser umgehen. Ich hab mal so ein Experiment gemacht, Windows 7 bootfähig auf SD Karte mit nem Adapter und auf USB Stick. Mit dem USB Stick war die Installation nach 10 Minuten fertig, mit der SD Karte (beide mit 20 MB/Sec spezifiziert) 30-40 Minuten.
Mitglied: 148656
148656 Jul 18, 2021 at 11:36:08 (UTC)
Goto Top
@GrueneSosseMitSpeck welches Betriebssystem würdest du vorschlagen?
Member: Codehunter
Codehunter Jul 18, 2021 at 21:02:57 (UTC)
Goto Top
Würde mich auch mal interessieren. Zumal wir hier im Linux-Forum sind und ich nie auf die Idee kommen würde, Windows auf dem Raspi einzusetzen. Geschweige denn Headless als Embedded-Device. Bei Linux hängt die Bootzeit stark von der Konfiguration ab. Je mehr man beim Start lädt, umso länger dauert es. Braucht man z.B. kein WLAN, lädt man auch keinen Treiber und WPASupplicant. Dito für Bluetooth oder Sound. Mein Debian braucht auf dem Raspi ca. 5 Sekunden zum Booten (Bootloader und Regenbogen-Screen nicht mitgerechnet). Also absolut auf dem Niveau anderer Embedded-Geräte.

Welche andere Systeme gäbe es denn für den Raspi? Da fällt mir nicht mehr viel ein. Höchstens so Exoten wie AROS und das würde ich nicht als robust bezeichnen. VxWorks? Passt weder preislich noch technisch.

PS: SD- und auch CF-Karten in Camcordern sterben oftmals nicht an Überbeanspruchung sondern den Hitzetod. Das habe ich z.B. auch schon in der DJI Phantom 3 erlebt. Die Speicherkarte kommt in die Gimbal Base, die auch die Treiber für die Gimbal-Motoren enthält, welche sehr hoch takten. Die Base wird schnell sehr warm und Speicherkarten im 4K-Videocapture-Modus sterben in wenigen Minuten. Beim Raspi 3 ist das weniger ein Problem, der wird nicht sehr warm. Wohl aber der Raspi 4, den ich in mancher Hinsicht für eine Fehlkonstruktion halte.
Member: wiesi200
wiesi200 Jul 19, 2021 at 03:56:15 (UTC)
Goto Top
Mitglied: 148656
148656 Jul 19, 2021 at 05:15:09 (UTC)
Goto Top
Zitat von @Codehunter:

Würde mich auch mal interessieren. Zumal wir hier im Linux-Forum sind und ich nie auf die Idee kommen würde, Windows auf dem Raspi einzusetzen. Geschweige denn Headless als Embedded-Device.

Jetzt wird es Kurios. Ich dachte, dies sei ein Administrator-Forum. Ja, als Basis dient ein Ubuntu, aber ist es deshalb gleich ein Linux-Forum?
Member: Lochkartenstanzer
Lochkartenstanzer Jul 19, 2021 at 05:18:52 (UTC)
Goto Top
Zitat von @148656:

Zitat von @Codehunter:

Würde mich auch mal interessieren. Zumal wir hier im Linux-Forum sind und ich nie auf die Idee kommen würde, Windows auf dem Raspi einzusetzen. Geschweige denn Headless als Embedded-Device.

Jetzt wird es Kurios. Ich dachte, dies sei ein Administrator-Forum. Ja, als Basis dient ein Ubuntu, aber ist es deshalb gleich ein Linux-Forum?

Er meinte vermutlich, daß er als Kategorie Linux angegeben hat.

lks
Mitglied: 148656
148656 Jul 19, 2021 at 05:50:13 (UTC)
Goto Top
Joar lks,

Du sagst es. Vermutlich.😉

Gruß
C.C.
Member: mbehrens
mbehrens Jul 20, 2021 at 20:37:02 (UTC)
Goto Top
Zitat von @Codehunter:

Ich habe den Raspi schon für viele Projekte verwendet und kenne daher seine Stärken und Schwächen. Eine seiner größten Schwächen ist das Booten von Linux von einer SD-Karte. Diese Karten sind als Datengrab für lineare Zugriffe gemacht, nicht für Random-Zugriffe und schon gar nicht als RAM-Auslagerungsmedium. Die Controller in den Karten sind nicht dafür optimiert (kein TRIM etc.). Ein Betrieb als Embedded-Device scheitert oft daran, dass diese SD-Karten relativ schnell kaputt geschrieben sind.

Ich würde mal einen Blick in Richtung CM4 Industrial IoT Systeme werfen. Dort wären dann durchaus auch M.2 Medien möglich.
Member: aqui
aqui Jul 21, 2021 updated at 14:23:01 (UTC)
Goto Top
Geht mit dem 3B und 4er ja auch. Die können ja direkt von einer USB SSD oder USB Stick mit m.2 Modul booten. Da ist ja nicht das Problem. Der Ein/Ausschalter ist der eigentliche Knackpunkt....
Obwohl es zumindestens für den RasPi 4 eine elegante Lösung mit einem UPS Board gibt:
https://www.cnx-software.com/2021/07/13/diy-raspberry-pi-4-mini-server-i ...
Member: aqui
aqui Jul 25, 2021 at 13:22:59 (UTC)
Goto Top
Ein interessanter Artikel zu dem Thema der auch das SD Kartenproblem elegant löst findet sich in der aktuellen ct'
https://www.heise.de/select/ct/2021/16/2112313321295857638