web-dev-qa-db-ja.com

ランダムなノンブロッキングプールの初期化を高速化するにはどうすればよいですか?

Buildrootで生成されたLinuxとZynqボードのrootfsイメージに問題があります。問題は、次のようなカーネルメッセージを受け取った直後に、起動後約2分でランダムな非ブロッキングプールが生成されることです。

random: nonblocking pool is initialized

TCF Agent lanuchをブロックするため、煩わしいです。リモートで何かを実行するのを待つか、最初の2分間はscpを使用する必要があります。

Buildroot2017.08を使用しています。それで何かできることはありますか?

3
Staszek

多くの場合、VMおよびiOTデバイスのエントロピーでは不十分な場合があります。

havegedをインストールします。

man havegedから:

名前
haveged-乱数を生成し、Linuxのランダムデバイスにフィードします。

説明
havegedは、HAVEGE(HArdware Volatile Entropy Gathering)を使用して、隠れたプロセッサ状態(キャッシュ、分岐予測子、メモリ変換テーブルなど)に対するハードウェアイベントの間接的な影響から収集された予測不可能な乱数ストリームを生成します。および拡張)アルゴリズム。アルゴリズムはユーザースペースで動作し、出力ストリームへのファイルシステムアクセスに特別な特権は必要ありません。

Linuxは、/dev/randomおよび/dev/urandomデバイスインターフェイスによる配布のためにランダム性をプールします。 /dev/randomプールを埋める標準的なメカニズムでは、ニーズが高いシステムやユーザー操作が制限されているシステムの需要を満たすには不十分な場合があります。このような状況では、/dev/randomのランダムビットの供給がデバイスの最低水準点を下回ると、havegedを特権デーモンとして実行して/dev/randomプールを埋めることができます。

3
Rui F Ribeiro