Raspberry Piの起動時間を改善するにはどうすればよいですか?


15

Raspberry Piとして内部的に使用して、ユーザーインターフェイスと必要なWiFi接続を処理する家電製品を作成しています。R-Piに接続すると、AdaFruit LCDスクリーンがあります。

Adafruit LCD

およびUSB Wifiドングル:

USB WiFiドングル

また、キーボード。他に何もありません。オペレーティングシステムはOpenElecです。これは非常にスリム化されたオペレーティングシステムです。

ただし、ユーザーがデバイスの電源を入れると、R-Piはユーザー入力を受け入れるまでに何秒もかかります。

フラッシュから起動している場合、なぜそんなに時間がかかるのですか?数十秒は膨大な計算のようです。

5秒未満でRaspberry Piを起動するためにできることはありますか?RAMをFLASHに書き込み、電源を入れたときに再度読み取る何らかの休止状態モードに移行できますか?

そうでなければ、同様の機能(小さなLCD画面、WiFiドングル用のUSB)を備えたRaspberry-Piに代わるものがあり、5秒以内に起動できますか?


すばらしい質問です。ブートログを貼り付けてリンクできますか?ブート中に何をしているのかわからないことはあまりありません;)
MDMoore313

2
何が起動していますか?最小限のOSを実行し、それをむき出しの骨に落としていますか?デスクトップなどはありませんか??
スコットシドマン

2
@ScottSeidman-私の質問にOpenElecを追加しました。

1
@BigHomieに同意します。起動中に何が起こっているかを確認せずに改善を提案することはまったく不可能です。

1
@NickAlexeev-ああ、古いStackstacksの重複問題。すべてのR-Piの質問はあちこちで話題になると思います。

回答:


13

Raspberry Piを使用したことはありませんが、組み込みLinuxシステムの起動時間を短縮したため、いくつかの一般的な回答があります。

1)OpenElecは完全に機能する組み込みディストリビューションかもしれませんが、初心者/デモディストリビューションはキッチンシンクに入れて幅広い機能を提供する傾向がありますが、それは多くの場合、不要なサービスが開始されることを意味します。そのため、initディレクトリを調べて、目的に関係のないものはすべてシャットオフまたは延期します。グラフィカルなものを必要としない場合、遅いシステムでは、Xウィンドウまたはグラフィックスプロセスがリアルタイムの豚になります。必ずしもグラフィックを適切に生成できないためではありませんが、すべてのライブラリをメモリにロードするには時間がかかります。そして、他に必要なものすべてがロード中またはロード待機中の場合、ロードから時間がかかります。

2)SDカードの読み取り速度は異なります。デバイスで処理できる最速のものを購入してください。または、USBスティックの読み込みが速くなるかどうかを確認してください。40Mb / sカードはおそらく必要ありませんが、安価なSDカードから10Mb / sの転送を処理できるカードに変更すると、違いが生じる可能性があります(これもPiが処理できるSDカードによって異なります)。接線として:ファイルシステムが書き込み可能な場合にSDカードから実行することは、長期的な安定性にはあまり適していません。必要な場合は、カードを読み取り専用として扱うようにブート設定を構成することを検討するか、完全に他のシステムを調整する必要があります。

3)本当にグラフィックが必要な場合、実際に入力を100%準備するよりも、起動されているような錯覚に陥りやすい場合があります。コンソールブートスプラッシュスクリーンプログラムがあります。このプログラムは、必要な他のすべてのサービスを起動しながら、非常にすばやくグラフィックを表示できます。システムの準備ができたときにライブの作業用に交換される静的な起動画面として初期コントロールパネルグラフィックが使用される例を見てきました-ユーザーは、画面が表示されてから2-3秒以内にデータを入力することはほとんどありませんアップ。

まだ起動時間を短縮したい場合は、こちらご覧ください。


2
特にポイント2に集中してください。カーネルのブートと初期化スクリプトは、それぞれ約30:70%のブート時間を要します。カスタムカーネルは約40%速く起動し、カスタムスタートアップスクリプトはオリジナルに対して90%向上するため、起動時間を簡単に半分にできます。
SF。

あなたは絶対に正しい、私は#1と#2を入れ替えた。何よりも先にinitスクリプトに時間を費やしたからだ。

8

フラッシュから起動している場合、なぜそんなに時間がかかるのですか?

答えの一部は、完全なスループットの問題かもしれません。SDカードはNANDフラッシュストレージを使用しますが、シリアルでしかデータを送信できません。たとえば、ボードにはんだ付けされたNANDフラッシュチップと比較すると、パラレルバスでCPUと直接通信できます。全体的な転送速度は、バスのクロック速度や転送するファイルのサイズなど、いくつかの事項にほぼ依存します。

SDカードの転送速度は、実際には最新のSATA IIIまたはSATA IIハードドライブと比較しても非常に低いです。SATAポートを除いて、USB 3.0は、比較的低コストで非常に高い転送速度を持つ別の代替手段です。

詳細は、こちらこちらこちらご覧ください

5秒未満でRaspberry Piを起動するためにできることはありますか?

Piが使用するCPUはかなりローエンドです(そのため価格がかかります)。これは、SATAやUSB 3.0などの高速インターフェースが不足していることを意味します。これらのプロトコルのソフトウェアエミュレーション(主要なスループットの問題に苦しむ可能性が高い)が不足しているため、OSから脂肪を取り除く以外にできることはあまりありません。

RAMをFLASHに書き込み、電源を入れたときに再度読み取る何らかの休止状態モードに移行できますか?

OpenElecによると、Piは休止状態をサポートしていませんが、もう少し詳しく読むと、Piを高速化する方法についてアドバイスがあります


3

一般的に、SDからの読み取りは非常に遅いため、劇的に影響します。

ブートチャートを試してみて、ブート時間を改善するポイントがあるかどうかを判断します。

または、サイズが非常に小さくなるように独自のカーネルを構成することもできます。または、いくつかの不必要な初期化をスキップする(奇妙なものを調べる)こともできます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.