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

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

SATAサポートを有効にするための基本的なカーネルドライバを探しています。

Braswell(Intel SoC)設定があり、カーネルドライバの数を最小限に抑えたいです。 SATAをサポートするにはATAドライバが必要ですか? SCSIドライバはどうですか?それともデバイスマッパーサポート(RAIDメニューから)?製造元のドライバに加えて、SATAをサポートするために必要な一般的なドライバが10個以上あるようです。

私はLinuxカーネル4.4を使用していますが、ドキュメントに多くの情報が見つかりません。 ATA、SATA、およびSCSIメニュー設定オプションは、複数のセクションに分散しているようです。

最も重要なのはドライバーだと思います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)のみを有効にすると可能その結果、かなり最小限の実行可能な構成が生まれました。

関連情報