Serial ATA (SATA) chipsets — Linux support status 

http://linuxmafia.com/faq/Hardware/sata.html

Problem: Serial ATA (also known as S-ATA or SATA) chipsets are rapidly replacing legacy "parallel ATA" (PATA, i.e., regular ATA/133) chipsets - - but many Linux installers' kernels don't yet support many Serial ATA chipsets. If yours isn't supported, you have an installation obstacle. SuSE's, Fedora Core 2's, Gentoo's, Knoppix's, Debian-sarge release candidates, and Mandrakelinux's installation kernels have a good selection of the required drivers. Scott Kveton's Debian netinst image does, likewise, see Links/Resources.

Note: There is no such thing as a distribution or its installer (generically) "having SATA support" (or not). Please send anyone speaking in such terms to this page. (Some SATA chipsets have been supported since practically forever, as their programming interfaces are unchanged from PATA predecessors. Others are brand-new and require new drivers from scratch.)

workarounds 

There are three workaround options:

  1. Switch the motherboard BIOS back to "legacy ATA mode" (parallel ATA = PATA). Complete a Linux installation. Fetch or build a kernel with support for your chipset. Switch the BIOS setting back. (Potential catch: It's claimed that Dell Optiplex GX270 and Dell Precision Workstation 360 desktop units, using Intel ICH5 SATA chipsets, don't support switching to legacy ATA mode. This might be true of some others.)
  2. Rebuild your installer using kernel 2.4.27 or later, which includes libata, desirable since it adds many new chipsets and gives a (potential, subject to physical read limits, etc.) ~10M/s speed boost to some others compared to the quite slow 2.4.x drivers/ide set.
  3. Temporarily add a regular PATA drive to your system. Install Linux onto that. Fetch or build a kernel with support for your chipset. Migrate your system to the SATA drives.

Driver Overview 

Linux kernels have two ATA ("IDE") driver sets:

  • "drivers/ide": This is the traditional ATA driver set, maintained by Bartlomiej Zolnierkiewicz (before that, Andre Hedrick). Contrary to popular belief, it includes low-level drivers for many common SATA chipsets.

    Optionally, on top of drivers/ide block-device (generic mass storage
    access) drivers, one can load drivers to provide software-level suport for
    BIOS services enabling various types of manufacturer-specific software
    RAID (called "fakeraid", below):
    1. For 2.4 kernels, Linux's software-RAID (fakeraid) driver collection is called "ataraid", which has subdrivers for the various manufacturers' different software RAID schemes. Using ataraid results in your partitions being addressed using a /dev/ataraid/d0p1 (etc.) device- naming convention. Note: Support greatly improved circa-2.4.23.
    2. For 2.6 kernels, Linux's software-RAID (fakeraid) driver collection is called "dmraid" (Device Mapper RAID). So far (Sept 2004), Promise Fasttrack, Highpoint 37X, Intel ICH5/6, LSI, and SiI 3112A/Medley are supported: http://tienstra4.flatnet.tudelft.nl/~gerte/gen2dmraid/

      I'm pretty sure manufacturers' proprietary drivers, where available, are
      designed to fit the above framework.
  • "libata": This is the newer ATA driver set for selected SATA chipsets only, maintained by Jeff Garzik, leveraging the kernel's well-tested SCSI layer. Garzik developed it in the 2.6 kernel series. 2.4 support was available only with a backported patch until libata's inclusion in 2.4.27 and later.

    libata causes each SATA port appear as a new SCSI bus. There are
    individual low-level drivers for the individual SATA chipsets, e.g., ahci,
    ata adma, ata piix, sata nv, sata promise, sata sil, sata sx4, sata svw,
    sata via, sata vsc.

Hardware RAID cards have drivers outside these two collections (e.g., 3w- xxxx, 3w-9xxx, aacraid, cciss, dac960, dpt i2o, gdth, ips, megaraid, megaraid2, mpt*).

Driver Support for Each Known SATA Chipset: 

(Caveats: Don't assume this page's data are perfect. Also, if a card's price makes it seem too good to be true, it probably is.)

RAID issues (a separate wrinkle): (link) 

Most ATA RAID host adapters (except 3Ware Escalade, Adaptec 24x0, Areca, HP/ Compaq, IBM ServeRAID, Intel SRC*/ICP Vortex, LSI Logic MegaRAID 150-4/150- 6, and Tekram) turn out, upon examination, to not be real hardware RAID, but rather software/BIOS-dependent fakeraid. (I.e., missing hardware functionality is traditionally emulated inside idiosyncratic, undocumented, and proprietary software drivers, to hit low price points). Fakeraid is difficult to support in Linux — absent either reverse-engineering, special proprietary drivers, or (rare) manufacturer cooperation. (HighPoint, LSI Logic, Nvidia, Promise, and VIA provide proprietary drivers to support their respective fakeraids. I personally would steer clear.)

Linux often cannot read existing fakeraid volumes on such host adapters, unless you're willing to use proprietary fakeraid drivers (where available). But unless you're dual-booting MS-Windows, you shouldn't care, because Linux's software RAID (kernel "md" driver) is much faster and more reliable. You're advised to blow away fakeraid volumes, use SATA drives as straight block devices, and enable Linux software RAID instead, during Linux installation.

Kernel coders are slowly figuring out some fakeraid variants, and coding ataraid/dmraid modules.

Warning about media errors and RAID 

Be aware that if any one drive of your SATA-based RAID array goes offline for any reason, including a significant string of media errors, depending on the SATA host adapter, the array may hang and need to be rebooted. This is because many SATA host adapters, like ATA generally absent special hardware provisions, simply don't support hotplug functionality.

This is known to be true, in particular, of Intel's ICH5/ICH5R series, and Garzik has pointed out that that chip series, plus Intel ICH6 (in non-AHCI mode), Pacific Digital Talon, and Promise SATA SX4 — at minimum — will never support hotplug.

Troubleshooting: 

If your installer finds no block devices or has other problems, please realise that all Linux SATA support is still (2004-01) hit or miss. (Users of 3Ware cards should have no problems, though. Those with Intel ICH5 chipset may be OK with the 2.4.22 or later drivers/ide piix driver, as that chipset is very nearly identical to prior Intel chips in the PIIX series.) Your best option is to find or build an installer with a recent version of libata, either by virtue of its inclusion in stock 2.6.x kernels, its merger into 2.4.27 and later, or by your applying it as a patch to a (pre-2.4.27) 2.4 installation kernel.

Links/Resources: