SATA: 基本サポートにはどのような Linux カーネル ドライバーが必要ですか?

SATA: 基本サポートにはどのような Linux カーネル ドライバーが必要ですか?

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)のみを有効にすると、おそらく最終的には、非常に最小限の機能的な構成になります。

関連情報