USBとスキャン遅延を遅くするのはなぜですか?

USBとスキャン遅延を遅くするのはなぜですか?

私はgenkernelでコンパイルし、USB HDDから起動したlinux-3.4.9を実行しています。特にmodprobeとmdevの段階でgenkernelスクリプトを実行している間、遅い起動プロセスのために少し面倒です。

そのため、モジュールをロードした後、デバイスが初期化されるまで待つ時間が一定に決まっているようです。これには根本的な理由はありますか?特定のルートデバイスが利用可能になるのを待ちませんか?それとも状況を完全に間違って理解していますか?

ベストアンサー1

ここで最初に考慮すべき点は、USBで起動できることは、PCのBIOSがUSBデバイスからの起動をサポートしていることです。これは、BIOSにUSBプロトコルスタックを含むファームウェアが組み込まれており、ユニバーサルシリアルバスを介してUSB HDDなどのターゲットデバイスを制御できることを意味します。 USBホスト(ブートする必要があるPC)とUSBデバイス(USB HDD)の間にUSBハンドシェイクプロトコルが設定された後、USBが提供する制御およびデータメカニズムが抽象化され、上位層のBIOS起動コードが可能になります。ぼんやり。 USB HDDを内蔵HDDと考えてください。つまり、MBR(マスターブートレコード)を取得するには、「ディスクドライブ」の最初のセクタを読み取る必要があります。

ただし、USB 初期化方式の一部の変更により、お客様などの一部の問題が発生します。以前は、初期化中の各USBの省電力時間は100msでした。ただし、新しいUSBは遅延メカニズムを使用して、今後100ミリ秒後に次の初期化をスケジュールします。 USB 変更が組み込まれたカーネルの場合、実行スレッドはこの遅延を待たずに他のタスクを実行できます。ただし、将来のレイテンシの変更により、この機能がないカーネルは起動に時間がかかります。

おすすめ記事