Wie kann ich die Raspberry Pi-Startzeit verbessern?

15

Ich erstelle ein Haushaltsgerät, das intern als Raspberry Pi verwendet wird, um die Benutzeroberfläche und die erforderliche WiFi-Verbindung zu verwalten. Verbunden mit dem R-Pi habe ich einen AdaFruit LCD-Bildschirm:

Adafruit LCD

und ein USB Wifi Dongle:

USB WiFi Dongle

Und auch eine Tastatur. Nichts anderes. Das Betriebssystem ist OpenElec , ein ziemlich abgespecktes Betriebssystem.

Wenn der Benutzer das Gerät einschaltet, dauert es jedoch einige Sekunden , bis der R-Pi Benutzereingaben akzeptieren kann.

Warum dauert es so lange, bis der Blitz hochfährt? Zehn Sekunden scheinen eine Menge Rechenarbeit zu sein.

Kann man irgendetwas tun, um einen Raspberry Pi-Boot in weniger als 5 Sekunden zu machen? Können sie in einen Ruhezustand wechseln, in dem der Arbeitsspeicher in den FLASH-Modus geschrieben und beim Einschalten wieder gelesen wird?

Gibt es ansonsten eine Alternative zum Raspberry-Pi mit ähnlichen Funktionen (kleiner LCD-Bildschirm, USB für den WiFi-Dongle), die in weniger als 5 Sekunden gestartet werden könnte?

Raketenmagnet
quelle
Gute Frage, könnten Sie das Startprotokoll einfügen und einen Link dazu erstellen? Kann nicht viel tun, ohne zu wissen, was es während des Bootens tut;)
MDMoore313
2
Was bootet es? Führen Sie ein minimales Betriebssystem aus und ziehen Sie es auf den Kopf - kein Desktop usw.?
Scott Seidman
2
@ScottSeidman - OpenElec wurde zu meiner Frage hinzugefügt.
1
Ich bin mit @BigHomie einverstanden. Es ist nicht ganz möglich, Verbesserungen vorzuschlagen, ohne zu sehen, was während des Startvorgangs vor sich geht.
1
@NickAlexeev - Aah, das alte überlappende Stackexchanges-Problem. Ich denke, alle R-Pi-Fragen wären dort drüben zum Thema.

Antworten:

13

Ich habe nicht mit einem Raspberry Pi gearbeitet, aber ich habe die Startzeiten mit eingebetteten Linux-Systemen verkürzt, sodass ich einige allgemeine Antworten habe.

1) OpenElec ist zwar eine perfekt funktionierende Embedded-Distribution, Anfänger- / Demo-Distributionen werfen jedoch in der Regel die Spüle ein, um Ihnen ein breites Spektrum an Funktionen zu bieten. Dies bedeutet jedoch häufig, dass Dienste verfügbar sind, die Sie nicht benötigen. Schauen Sie also in die init-Verzeichnisse und schalten Sie alles aus oder verschieben Sie es, was für Ihre Zwecke nicht wesentlich ist. Wenn Sie keine grafischen Elemente benötigen, können auf langsameren Systemen X-Fenster oder Grafikprozesse zu Echtzeitproblemen werden. Nicht unbedingt, weil Grafiken nicht ausreichend generiert werden können, aber es dauert einige Zeit, bis alle Bibliotheken in den Speicher geladen sind. Ab dem Laden dauert es eine Weile, bis alles, was Sie möchten, geladen ist oder auf das Laden wartet.

2) SD-Karten haben unterschiedliche Lesegeschwindigkeiten. Kaufen Sie die schnellste, die das Gerät verarbeiten kann. Oder sehen Sie, ob ein USB-Stick schneller geladen wird. Sie werden wahrscheinlich keine 40-MBit / s-Karten benötigen, aber der Wechsel von einer billigen SD-Karte zu einer Karte, die 10-MBit / s-Übertragungen verarbeiten kann, kann einen Unterschied bewirken - auch dies hängt davon ab, welche SD-Karten der Pi verarbeiten kann. Eine Tangente: Wenn Sie eine SD-Karte verwenden, wenn das Dateisystem beschreibbar ist, ist dies für die Langzeitstabilität nicht geeignet. Wenn Sie dies benötigen, müssen Sie möglicherweise die Konfiguration Ihrer Starteinstellungen in Betracht ziehen, um die Karte als schreibgeschützt zu behandeln, oder andere Systemvorbereitungen treffen.

3) Wenn Sie wirklich Grafiken benötigen, ist die Illusion, gebootet zu werden, manchmal einfacher zu erreichen, als tatsächlich zu 100% für Eingaben bereit zu sein. Es gibt Startbildschirmprogramme für die Konsole, die eine Grafik sehr schnell anzeigen können, während alle anderen Dienste gestartet werden, die Sie benötigen. Ich habe Fälle gesehen, in denen eine anfängliche Bedienfeldgrafik als statischer Startbildschirm verwendet wird, der bei Systembereitschaft gegen einen aktiven ausgetauscht wird. Der Benutzer möchte selten wirklich Daten innerhalb von 2-3 Sekunden nach dem angezeigten Bildschirm eingeben oben.

Wenn Sie immer noch nach schnelleren Startzeiten suchen, finden Sie hier eine Liste der Bereiche, in denen Sie nachsehen müssen.


quelle
2
Konzentrieren Sie sich insbesondere auf Punkt 2. Kernel-Boot- und Init-Skripte benötigen ungefähr 30: 70% der Boot-Zeit. Benutzerdefinierter Kernel startet ca. 40% schneller. Benutzerdefinierte Startskripte können die Startzeit von Originalen um 90% verkürzen.
SF.
Sie haben vollkommen recht, ich habe # 1 und # 2 getauscht, weil ich vor allem anderen Zeit mit den Init-Skripten verbracht habe.
8

Warum dauert es so lange, bis der Blitz hochfährt?

Ein Teil der Antwort kann ein Problem des Durchsatzes sein. Während SD-Karten NAND-Flash-Speicher verwenden, können sie Daten nur seriell übertragen. Zum Beispiel im Vergleich zu einem NAND-Flash-Chip, der auf die Platine gelötet wurde und über einen parallelen Bus direkt mit der CPU kommunizieren konnte. Die Gesamtübertragungsrate hängt in etwa von einigen Faktoren wie der Taktrate des Busses und der Größe der zu übertragenden Dateien ab.

Die Übertragungsrate einer SD-Karte ist im Vergleich zu einer modernen SATA III- oder sogar SATA II-Festplatte eigentlich recht niedrig. Neben einem SATA-Anschluss ist USB 3.0 eine weitere Alternative, die eine recht hohe Übertragungsrate zu relativ niedrigen Kosten bietet.

Weitere Informationen finden Sie hier , hier und hier .

Kann man irgendetwas tun, um einen Raspberry Pi-Boot in weniger als 5 Sekunden zu machen?

Die CPU, die der Pi verwendet, ist ziemlich billig (daher der Preis). Dies bedeutet, dass es an Hochgeschwindigkeitsschnittstellen wie SATA oder USB 3.0 mangelt. Abgesehen von der Software-Emulation dieser Protokolle (die wahrscheinlich auch unter größeren Durchsatzproblemen leiden wird) kann nicht viel anderes getan werden, als das Fett des Betriebssystems zu reduzieren.

Können sie in einen Ruhezustand wechseln, in dem der Arbeitsspeicher in den FLASH-Modus geschrieben und beim Einschalten wieder gelesen wird?

Laut OpenElec unterstützt der Pi den Ruhezustand nicht , aber wenn Sie weiter unten nachlesen, erhalten Sie einige Ratschläge, wie Sie den Pi beschleunigen können .

David Freitag
quelle
3

Im Allgemeinen ist das Lesen von SD sehr langsam, was sich drastisch auswirkt.

Probieren Sie es aus und finden Sie heraus, ob es sinnvoll ist , die Startzeit zu verkürzen .

Oder Sie können Ihren eigenen Kernel so konfigurieren, dass er nur eine sehr geringe Größe hat. Oder es kann hilfreich sein, unnötige Initialisierungen zu überspringen (ungerade oder etwas anderes nachzuschlagen).

Younggun Kim
quelle