我正在尋找基本的核心驅動程式來啟用 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
),您將可能最終得到一個相當最小的可行配置。