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
)のみを有効にすると可能その結果、かなり最小限の実行可能な構成が生まれました。