2007年9月4日 星期二

Linux SATA HowTo

關於 Linux 對於 SATA chipset 的支援,隨著 kernel 版本的持續更新,以及社群的強大協助開發下,陸陸續續將許多廠商所生產的 SATA chipset driver 都已經加入,因此在目前比較新的 Linux distribution 如 Fedora 7Ubuntu 7.04OpenSUSE 10.2Mandriva Free 2007.....等,對於 SATA 的支援度都已經相當的好。

此外,若想要清楚了解目前 Linux 已經支援了哪些 SATA chipset,可以參考以下兩個網站,資料整理的相當詳細:

因此在購買硬體前,事先進行確認,可以避免掉後續許多硬體不支援的麻煩。

但若是因為一時不察,買到了內建目前各大 Linux distribution 都不支援的 SATA chiset 的產品(例如:主機板、SATA RAID Card .... 等等),雖然麻煩了點,但還是可以透過幾個方式解決:

1、進入 BIOS 設定為相容模式
在 BIOS 中尋找 SATA 的設定,假設在 IBM X60 上,可以找到 Config -> Serial ATA(SATA),設定為 Compatibility。

在其他不同廠牌的 BIOS 中,可能會有 Legacy ATA Mode 可供設定!

透過此種方式,BIOS 會將 SATA Device 視為 PATA 處理,當然效能會有所折損,不過可以在順利安裝 Linux 後,可以透過以下方式讓 Linux 支援 SATA 的裝置:
  1. 透過線上更新將 kernel 換成最新版的
    在 Fedora 中可以使用 yum;在 Ubuntu 中可以使用 apt。kernel 更新完成後,可能就支援原本不支援的 SATA 了,但也有可能一樣不支援!
  2. 重新編譯 kernel
    若是在 kernel 官方網站中,發現其實在新版的 kernel 中已經支援了該 SATA 裝置,就可以下載 kernel 的 source code 後,開啟 SATA 的支援並重新進行編譯,如此一來就可以正確驅動該 SATA chipset,接著置換原本的 kernel,就可以解決 SATA 裝置無法驅動的問題。而編譯 kernel 的方式可以參考此篇文章(鳥哥的 Linux 私房菜 - 核心編譯)


2、使用廠商提供的 SATA chipset driver

若是很清楚 SATA chipset 是哪家廠商所生產的,並找到該廠商所提供的官方版 driver,就可以在安裝時,使用「linux dd」指令在安裝前載入 SATA chipset driver,如此一來安裝時,就可以正確的驅動 SATA device。

PS. 其實此種解決方式跟在 Windows 的模式是差不多的,在安裝 Windows 前若要載入 SATA driver,必須按 F6;只是在 Linux 的安裝中,必須下達指令「linux dd」。


結論
假設廠商沒有提供任何的 driver,線上更新 kernel 後也還是不支援,甚至在 Linux kernel 官方網站中都沒有提供支援該 SATA chipset 的計劃,就表示目前該 SATA chipset 在 Linux 是無法正常運作的,因此可能要重新購買其他已經支援的產品。


參考資訊

沒有留言:

張貼留言