
Der Raspberry Pi ist ein unglaublich beliebtes Gerät, das für seine Erschwinglichkeit, Vielseitigkeit, Fähigkeiten und lebendige Community bekannt ist. Es ist leicht, Fanseiten und Artikel zu finden, aber die meisten Leute wissen nichts über ihre Schwächen, bis sie selbst darunter leiden und in den Foren nach Informationen suchen.
Ich werde versuchen, über einige Probleme zu sprechen, auf die ich persönlich gestoßen bin, sowie über einige typische Probleme, die am häufigsten bei Menschen auftreten, die nichts davon ahnen. Und schließlich, warum ich Pi für einige Anwendungen nicht empfehle, insbesondere für NAS-Dienste wie NextCloudPi und Open Media Vault. Ich hoffe, das spart mir Zeit, damit ich das alles nicht in den Foren wiederhole.
Ich hatte viele Raspberry Pi und benutze sie seit vielen Jahren. Als das erste Modell 2012 auf den Markt kam, wurde es zu einem wichtigen Meilenstein auf dem Single-Board-Markt. Obwohl es bereits einige gute Boards gab, wie Beagleboard und Odroid, waren sie ziemlich teuer und nur Hardcore-Fans konnten sie kaufen und testen.
Pi ist im Vergleich zu ihnen nicht so mächtig, aber wegen der erstaunlichen Billigkeit hat es den Markt buchstäblich in die Luft gesprengt. Blogs, Erweiterungskarten, viele persönliche Projekte, jede Menge Bibliotheken ... Raspberry Pi war der erste, der all dies erreicht hat, und bis heute ist eine florierende Community der größte Vorteil von Pi gegenüber anderen Boards.
Aber jetzt ist 2019 und es ist Zeit, sich wieder umzusehen. Meiner Meinung nach gibt es offenere Alternativen von besserer Qualität zum gleichen Preis. Ich werde versuchen zu erklären.
Leistung

Raspberry Pi senkte den Preis durch Ecken und Kanten. Infolgedessen ist das Board für einige Aufgaben im Vergleich zu Wettbewerbern nicht produktiv genug. Insbesondere ist es für Netzwerkaufgaben und USB-Funktionen schlecht geeignet.
Hier ist der
SMSC LAN9514-Chip , der über einen USB-Kanal mit dem SoC verbunden ist und gleichzeitig als USB-zu-Ethernet-Adapter und USB-Hub fungiert. Somit sitzen Ethernet und USB auf demselben Kanal und konkurrieren miteinander, was der typischen Verwendung des NAS widerspricht, wenn etwas über das Netzwerk heruntergeladen und auf einem USB-Laufwerk gespeichert wird, ganz zu schweigen von der Hinzufügung von RAID.
Aus dem gleichen Grund erreichte die tatsächliche Netzwerkleistung, selbst als letztes Jahr endlich ein Gigabit-Ethernet-fähiges Modell veröffentlicht wurde, nicht einmal annähernd Gigabit, sondern betrug
maximal 40 MB / s Nettogeschwindigkeit und maximal 20 MB / s, wenn Übertragung auf ein USB-Gerät . Zu dieser Zeit gab es bereits billige Boards mit echtem Gigabit-Ethernet und USB3.
Tatsächlich geht Wi-Fi
nicht über SMSC , sondern stellt über
SDIO eine Verbindung zum BCM4343-Chip her, sodass dieser Engpass mithilfe von Wi-Fi irgendwie vermieden werden kann. Der Wi-Fi-Chip ist jedoch nicht allmächtig, er muss sich mit Umgebungsstörungen auseinandersetzen, daher ist dies keine ideale Alternative.
Aus diesen Gründen würde ich die Verwendung von Pi als NAS nicht empfehlen, egal ob Open Media Vault oder Nextcloud.
Real Brain Pi - Geschlossene Quelle
Wenn Sie in Streitigkeiten über Softwarefreiheit verwickelt waren, besteht das Hauptproblem in unseren Linux-Systemen in Closed-Source-Binär-Blobs. Ich werde nicht auf Details eingehen, aber das Problem ist, dass diese Teile des Systems nicht überprüft werden können und Zugriff auf alles haben, was im Gerät passiert. Dies führte zu großen Open-Source-Projekten wie
Android Replicant , mit denen unsere Systeme von binären Blobs befreit werden sollen: ein schmerzhafter, langwieriger und langsamer Prozess.
Ein ähnliches Problem ist der Raspberry Pi, bei dem CPU und GPU im selben
BCM2837B0- Chip integriert sind. Der Zentralprozessor ist ein 64-Bit-Quad-Core-ARM A53 mit 1400 MHz (im Pi 3B), und der Grafikprozessor ist ein 32-Bit-Dual-Core-VideoCore IV mit einer Frequenz von 400 MHz. Die Integration von CPU und GPU ist in der mobilen Welt beliebt, da sie den Preis und den Stromverbrauch senkt. Die Wettbewerber NXP iMX und Allwinner verfolgen einen ähnlichen Ansatz.
Somit gibt es im letzten Pi sechs Kerne, aber nur vier davon sind ARM. Linux läuft auf dem Prozessor, aber es kann Sie überraschen, dass Linux auf diesem Gerät ein Bürger zweiter Klasse ist. GPU-Kerne laufen unter dem Echtzeitbetriebssystem ThreadX. Dieses Closed-Source-Betriebssystem verwaltet das System ohne Kenntnis des Linux-Kernels.
Zu Beginn des Downloads ist der Raspberry Pi-Prozessor vollständig deaktiviert (technisch im
Reset- Zustand) und es ist die GPU, die das System startet. Sie können sich den Ordner
/boot
ansehen und Binärblobs finden, mit denen die GPU den Prozessor und ihr eigenes ThreadX-Betriebssystem (
bootcode.bin und
start.elf )
startet . Lesen Sie hier mehr über den Download-Prozess.
Es ist die GPU, die die SD-Karte
einbindet , diese Blobs herunterlädt und die Konfiguration aus der
Textdatei config.txt liest , die wir bearbeiten, um die Videoeinstellungen anzupassen oder die GPU zu übertakten. Linux ist hier nicht beteiligt.
Wenn die GPU der CPU erlaubt, den Linux-Kernel zu laden, verlässt sie nicht nur die Bühne und arbeitet nur als
Grafikprozessor . Nein, die GPU ist immer noch die wichtigste. Haben Sie jemals darüber nachgedacht, wer diese Logos anzeigt, wenn der Pi eine Verbindung zu HDMI herstellt? Oder befinden sich diese
Blitz- oder Temperatursymbole in den Warnsymbolen? Genau das macht das ThreadX-System auf der GPU, und Linux weiß überhaupt nicht, was passiert.
Wir kennen möglicherweise nicht die volle Funktionalität der GPU, aber wir wissen etwas, für das er verantwortlich ist. Für diesen Artikel ist es wichtig, dass ThreadX den Spannungsabfall überwacht - ein weit verbreitetes Problem, wie wir später sehen werden, und die Frequenz des Prozessors reduziert, um Prozessorausfälle und Einfrieren zu verhindern. Daher arbeiten Geräte beim Menschen bestenfalls mit einer Frequenz von 600 MHz anstelle von 1400 MHz. Diese Drosselung beginnt bei 4,65 V und kann auch durch die Temperatur ausgelöst werden. Gleichzeitig glaubt Linux immer noch, dass das System normal mit voller Frequenz arbeitet.
Genau das sehen wir. Da das Hauptbetriebssystem proprietär ist, können wir nicht wissen, was es sonst noch tut oder kann, sodass es immer ein Datenschutzproblem gibt.
Der Closed-Source-Blob enthält mindestens ein Patent, das das Öffnen von Code
bis mindestens 2025 verbietet. Wir wissen jedoch nicht, ob dies auch dann noch geschehen wird. Es gab Versuche,
VideoCore IV zurückzuentwickeln und Open Source-Firmware dafür zu erstellen. Leider ist das
Projekt gestorben, bevor es etwas Nützliches hervorgebracht hat. Wie bei Android-Blobs ist dies ein unglaublich schwieriger Job.
Ernährungsprobleme

Dies ist kein technischer Fehler von Raspberry Pi, sondern ein typischer Benutzerfehler.
Das erste Modell verbrauchte kaum 80 mA, aber jede neue Generation wurde immer leistungsfähiger und aus diesem Grund energieintensiver. Darüber hinaus schließen viele Benutzer USB-Geräte an, die ebenfalls Strom verbrauchen, wenn sie nicht über ein eigenes Netzteil verfügen.
Der microUSB-Anschluss wurde ursprünglich nur für 1,8 A entwickelt, und obwohl es sich um einen alten Standard handelt und Sie Ladegeräte finden, die mehr bieten, versuchen so viele Menschen, alte 1 A-Telefonladegeräte zu verwenden oder billige Adapter im Internet zu kaufen, um ihre Geräte mit Strom zu versorgen Himbeere. Pi ist jedoch ein Computer und erfordert eine qualitativ hochwertige, stabile Stromversorgung, die am Eingang stabile 5 V mit einer Stromstärke von bis zu 2,5 A liefert. Es wird nicht nur ein anständiger Transformator benötigt, sondern auch eine qualitativ hochwertige Verbindung (oder ein Spannungsabfall wird auftreten), aber wichtiger dass Sie ein gutes
Kabel benötigen, sonst fällt die Spannung stark ab. Schlechte Kabel sind noch häufiger als instabile Spannungsquellen. Verwenden Sie daher
unbedingt ein gutes Kabel: vielleicht
20 AWG oder ähnliches, oder kaufen Sie einfach eine offizielle Stromquelle. Die Schlussfolgerung ist, dass nicht jedes USB-Ladegerät ordnungsgemäß funktioniert, selbst wenn es 2,5 A bis 5 V beträgt.
Fügen Sie dies zu dem hinzu, was wir im letzten Abschnitt besprochen haben, und Sie werden beginnen, das Gesamtbild zu verstehen. Die meisten Benutzer arbeiten auf ihren Geräten mit einer reduzierten Frequenz, und die GPU verbirgt dies vor ihnen, sodass sie tatsächlich mit einer reduzierten Frequenz von 600 MHz arbeiten: fast das gleiche wie ARMv6 auf dem ersten Pi.
In vielen Fällen sind die Anstrengungen der GPU unzureichend und das System stürzt zufällig ab oder friert einfach ein, wodurch möglicherweise Daten beschädigt oder die SD-Karte beschädigt werden. Dies geschieht normalerweise
unter Last , dh wenn Transistoren maximale Leistung benötigen. Dann kommt der Benutzer in die Foren und beschwert sich:
Mein Netzteil ist in Ordnung, ich habe dies und das ausgeführt und nichts ist fehlgeschlagen . Natürlich ist das nicht wahr, aber oft glauben sie nicht daran.
Meiner Meinung nach können die Japaner hier
Poka Yoke nennen , das heißt, wir müssen solche Systeme
entwerfen, die es dem Benutzer
aufgrund ihres Designs nicht ermöglichen, sich in den Fuß zu schießen. Auch hier ist die offizielle Stromquelle für ihren Preis von sehr guter Qualität, und ich kann sie nur empfehlen.
Ich mag es nicht, dass ein verstecktes proprietäres System die Frequenz senkt, die außerhalb unserer Kontrolle liegt. Es wäre besser, wenn das System einfriert: Dann können Sie sofort sehen, was passiert, und eine Person kann das Netzteil austauschen. Meiner Meinung nach ist dies besser, als Benutzer zu täuschen und sie
über das Internet beschweren zu lassen. Es ist schwer vorstellbar, warum Pi-Entwickler dies getan hätten, wenn sie das Poka Yoke-Problem nicht versteckt hätten.
Überprüfen Sie, ob Stromprobleme vorliegen
Es hat zu lange gedauert, aber wir haben es
trotzdem geschafft, das Problem auf Kernel-Ebene zu protokollieren. Wenn
Sie eine solche Meldung in den Systemprotokollen sehen:
kern: krit: [1701.464833 2.116656] Unterspannung erkannt! (0x00050005)
kern: info: [1707.668180 6.203347] Spannung normalisiert (0x00000000
dann haben Sie einen Spannungsabfall. Es ist gut, dass Linux jetzt zumindest solche Informationen erfasst, aber wenn wir mehr wissen wollen, brauchen wir direkten Zugriff auf die GPU.
Der Befehl vcgencmd kann Systeminformationen von der ThreadX-Firmware abrufen.
Sie können die
vcgencmd measure_volts
vcgencmd measure_clock arm
und
vcgencmd measure_volts
, um die tatsächliche Frequenz und Spannung zu überprüfen. Hier ist eine Beispielausgabe eines tkaiser-
Überwachungsskripts .
Fazit
Ich denke wirklich, dass Raspberry Pi ein sehr wichtiges Ereignis in der Geschichte der Einplatinencomputer geworden ist, aber heute bleibt es in Bezug auf Qualität, Leistung und Offenheit zurück. Es gibt erschwingliche Alternativen, bei denen Entwickler diesen Problemen mehr Aufmerksamkeit geschenkt haben.
Trotzdem verwende ich immer noch den Raspberry Pi,
um Benutzern beim Einrichten ihres eigenen Cloud-Hostings zu
helfen . Angesichts der Beliebtheit dieses Boards ist es für mich sinnvoll, es beizubehalten, solange es für die Menschen nützlich ist.