SATA サポートを有効にするための基本的なカーネル ドライバーを探しています。
Braswell (Intel SoC) セットアップを使用していますが、カーネル ドライバーの数を最小限に抑えたいと考えています。SATA サポートには ATA ドライバーが必要ですか? SCSI ドライバーはどうですか? またはデバイス マッパー サポート (RAID メニューから) は必要ですか? SATA をサポートするには、製造元のドライバーの他に 10 種類以上の汎用ドライバーが必要であるようです。
私は Linux カーネル 4.4 を使用していますが、ドキュメントではあまり情報が見つかりませんでした。ATA、SATA、および SCSI の menuconfig オプションが複数のセクションに分散しているようです。
最も重要なのはlibata
ドライバだと思いますが、ATAドライバとSCSIドライバのどちらが必要なのかはわかりません。
Device Drivers --->
Serial ATA and Parallel ATA drivers (libata) --->
この件について検索しましたが、明確な答えは見つかりませんでした。ATAとSCSIの歴史的観点と、それらがどのように話し合う。
また、ベンダー固有のドライバー以外に、ARM SoC などの別の SoC で SATA を有効にすると大きな違いはありますか? 理想的な回答は、 menuconfig の特定のオプションを参照することです。
ありがとう !
答え1
部分的な回答:
カーネル レイヤーは少々複雑なので、全体像を説明することはできません。現在、ほぼすべてのストレージ デバイスは何らかの SCSI コマンドを使用しています ( では/dev/sdX
なく と表示されるのはそのため/dev/hdX
です)。ただし、これはさまざまなメカニズム (ATA パケット、USB など) で転送できます。したがって、少なくとも次のものが必要です。
- 特定のハードウェア用の SATA ドライバー (複数のモジュールなど
libahci
) - 汎用 ATA レイヤー (複数のモジュールを含む可能性がある
libata
) - 汎用 SCSI レイヤー。少なくとも、使用するストレージ デバイスの種類 (を含む複数のモジュール
scsi_mod
) 向けです。
私考えるカーネルは、 内の最小限の依存関係を自分で把握できるはずですmenuconfig
。最初にすべてを無効にし、次に下部のドライバ(ハードウェア固有)と上部のドライバ(SCSIディスク、CONFIG_BLK_DEV_SD
、モジュールsd_mod
)のみを有効にすると、おそらく最終的には、非常に最小限の機能的な構成になります。