Was ist los mit dem Raspberry Pi



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.

 # vcgencmd get_config int arm_freq=1000 core_freq=500 sdram_freq=600 over_voltage=6 disable_overscan=1 force_pwm_open=1 

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 .

 # With a crappy PSU and/or Micro USB cable output looks like this # on a RPi 3: # # 44.0'C 600 MHz 1010000000000000000 1.2V # 44.5'C 600 MHz 1010000000000000000 1.2V # 44.0'C 600 MHz 1010000000000000101 1.2V # 44.0'C 600 MHz 1010000000000000101 1.2V # 44.0'C 600 MHz 1010000000000000101 1.2V # 44.5'C 600 MHz 1010000000000000000 1.2V # 45.1'C 600 MHz 1010000000000000101 1.2V # # With an ok-ish cable it looks like this (when running cpuburn-a53): # # 48.3'C 1200 MHz 0000000000000000000 1.3312V # 48.3'C 1200 MHz 0000000000000000000 1.3312V # 48.3'C 1200 MHz 0000000000000000000 1.3312V # 48.3'C 1200 MHz 0000000000000000000 1.3312V # 50.5'C 1200 MHz 0000000000000000000 1.3312V # 56.4'C 600 MHz 0000000000000000000 1.2V # 54.8'C 600 MHz 1010000000000000101 1.2V # 55.3'C 600 MHz 1010000000000000101 1.2V # 55.8'C 600 MHz 1010000000000000101 1.3312V # 53.7'C 600 MHz 1010000000000000101 1.2V # 51.5'C 600 MHz 1010000000000000101 1.2V # 51.0'C 600 MHz 1010000000000000101 1.2V # # And only by bypassing the crappy connector you can enjoy RPi 3 # performing as it should (please note, there's a heatsink on my RPi # -- without throttling would start and then reported clockspeed # numbers start to get funny): # # 75.2'C 1200 MHz 1010000000000000000 1.3250V # 75.8'C 1200 MHz 1010000000000000000 1.3250V # 75.8'C 1200 MHz 1010000000000000000 1.3250V # 76.3'C 1200 MHz 1010000000000000000 1.3250V # 76.3'C 1200 MHz 1010000000000000000 1.3250V # 73.6'C 1200 MHz 1010000000000000000 1.3250V # 72.0'C 1200 MHz 1010000000000000000 1.3250V # 70.4'C 1200 MHz 1010000000000000000 1.3250V # # Now with a pillow on top for some throttling: # # 82.2'C 1200/ 947 MHz 1110000000000000010 1.3250V # 82.7'C 1200/ 933 MHz 1110000000000000010 1.3250V # 82.7'C 1200/ 931 MHz 1110000000000000010 1.3250V # 82.7'C 1200/ 918 MHz 1110000000000000010 1.3250V # 82.2'C 1200/ 935 MHz 1110000000000000010 1.3250V # 79.9'C 1200/1163 MHz 1110000000000000000 1.3250V # 75.8'C 1200 MHz 1110000000000000000 1.3250V # # And here on RPi 2 with crappy USB cable and some load # # 50.8'C 900 MHz 1010000000000000000 1.3125V # 49.8'C 900 MHz 1010000000000000000 1.3125V # 49.8'C 900/ 600 MHz 1010000000000000101 1.2V # 49.8'C 900/ 600 MHz 1010000000000000101 1.2V # 48.7'C 900/ 600 MHz 1010000000000000101 1.2V # 49.2'C 900/ 600 MHz 1010000000000000101 1.2V # 48.7'C 900 MHz 1010000000000000000 1.3125V # 46.5'C 900 MHz 1010000000000000000 1.3125V # # The funny thing is that while the kernel thinks it's running # with 900 MHz (performance governor) in reality the 'firmware' # throttles down to 600 MHz but no one knows :) 


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.

Source: https://habr.com/ru/post/de440584/


All Articles