How to get SATA working - my solution anyway
Having had some real problems getting a SATA drive set up and working, I thought I would try to save others some of the frustration whilst it was still fresh in my mind.
I have recently upgraded to a 3.2 GHz AMD chip on an AOpen AK86L motherboard, the latter chosen because it uses the Via chipset which is reported compatable and supported with Linux. It also retains both IDE channels so all your IDE drives, CDs etc can remain with up to 2 SATA HDDs extra
I installed a Maxstor 160GB SATA HDD also.
There are 2 approaches to using a SATA HDD (I'm not talking RAID here just a standard drive):-
Either using libsata (module sata_via in this case) and addressing as SCSI discs /dev/sda etc
Or using the BIOS recognition of the drive as a IDE drive and manipulating the drive assignment numbers in lilo.conf
I tried the former first, but could not get the sata module loaded early enough for the SATA drive to be recognised and able to have the root file system mounted on it. Building the kernel with it in did not help, I could not push it high enough up the process to be able to boot directly from it.
The eventual solution involved the latter option.
lilo.conf was amended to reassign drives 0x80 and 0x81 (my 2 IDE drives) & push them up the chain with /dev assignments of /dev/hde and /dev/hdg respectively.
My SATA disc is then assigned /dev/hda and listed as the root for the filesystem.
Mandrake 10 will do this for you if you make a new installation onto the drive, which it recognises from the BIOS as IDE.
BEWARE HOWEVER - if you boot directly from the MBR of your SATA disc to that disc as the root filesystem, if something goes wrong you can have no end of trouble trying to access the drive again to fix it.
You may well need a rescue CD with the libsata modules available, just to be able to see it.
My solution was to write to the MBR of my IDE:0.0 drive (what is conventionally /dev/hda) with the root file system to be mounted on the SATA drive with all the reassignments as above. I have a base installation of MDK 9.2 on this drive from which I called lilo and wrote the MBR. The only thing you can't do is list drives at that stage which don't yet 'exist' (ie /dev/hde and /dev/hdg)
Then boot up and once up and mounted on the SATA disc as /dev/hda go into lilo.conf again and put hde and hdg back on the boot list and remember to write to MBR of /dev/hde this time!
The fstab file will need editing to suit of course at these stages
The beauty of having a base system from which everything else is booted is repairability and ease of experimentation.
Just create a bootxxx directory with the kernel etc for your new distro on and try it. If it breaks go back to the base distro and chroot onto the new one to fix it.
Incidentally I had major problems with ACPI power management and this motherboard & MDK 10. After going into hibernation, once woken I found I had lost all access to the X Server because it kept trying to access the hiberfile on the swap partition which was presumably corrupt
The motherboard BIOS does not allow you to disble ACPI so I entered the kernel parameter acpi=off in lilo.conf which sorted it.
Everything seems a lot simpler once you have found the answer!!
I've got most of the hair I started with.
I can recommend the hardware, the performance is blistering, video streaming and authoring which used to take 1.5 hrs done in 19 mins!!!