SATA:基本支持需要哪些 Linux 内核驱动程序?

SATA:基本支持需要哪些 Linux 内核驱动程序?

我正在寻找基本的内核驱动程序来启用 SATA 支持。

我有一个 Braswell(英特尔 SoC)设置,我想将内核驱动程序的数量减少到最少。 SATA 支持是否需要 ATA 驱动程序? SCSI 驱动程序怎么样?或者设备映射器支持(从 RAID 菜单)?除了制造商的驱动程序之外,似乎还需要 10 多种不同的通用驱动程序来支持 SATA。

我使用的是 linux 内核 4.4,我在文档中找不到太多信息。 ATA、SATA 和 SCSI 菜单配置选项似乎分散在多个部分。

我想最重要的是驱动libata程序,但我不清楚他们是否需要 ATA 或 SCSI 驱动程序

Device Drivers  --->
    Serial ATA and Parallel ATA drivers (libata)   --->

我搜索了该主题,但没有找到明确的答案。我喜欢这个关于 ATA 和 SCSI 的历史观点以及它们如何能够搭腔

此外,除了供应商特定的驱动程序之外,为另一个 SoC(例如 ARM 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),您将可能最终得到一个相当最小的可行配置。

相关内容