Archive for October, 2008|Monthly archive page

Ubuntu Linux and XP on ICH10 with AHCI

I recently bought a computer through the Intel Chip Loan progam. The motherboard is a Gigabyte EP45-DS3R, and I had some issues with getting AHCI to work, so I wanted to share my experiences to help others who might want to do something similar…
This might be useful for anyone who wants to work with AHCI on this particular board.

My desired setup:

– A small partition for XP (~50GB) – NTFS
– A small partition for Ubuntu (~50GB) – ext3
– A shared Fat32 partition over left-over space (~900GB).

By default, the BIOS came with AHCI disabled. I did not enable it because I needed to install XP first (Ubuntu later installs Grub which will take care of boot loading for both OSs), and not having a 1.44 diskette, I could not install the AHCI drivers during startup. So, I installed XP with AHCI disabled. The only issue I encountered was the for some reason XP no longer lets you format FAT32 partitions. There is no way to create FAT32 partitions either during or after the installation – I had to do it through linux later.

After the XP installation, I tried installing linux. The Ubuntu CD failed every time right after I chose ‘install’. After changing the BIOS to use AHCI, the installation worked like a charm. So: Ubuntu did not work with the AHCI turned off; XP did not work with AHCI turned on. Nice…
The Ubuntu installation was very quick (about 10 minutes I think) and passed with no issues. Right after the installation I used Parted and mkfs.msdos to create the FAT32 partition I needed for OS interoperability (you can install gParted or qtParted through the Synaptic Package Manager to make your life a little easier here).

Next is the ugly part: getting AHCI to work on XP.
This might be worth doing whether or not you’re installing Linux as well; AHCI has better performance than the failback IDE mode.
I rebooted, went back to BIOS, turned off AHCI, and loaded Windows (yuch). Installing the motherboard drivers was simply not enough – booting with AHCI turned on causes blue screens. Finally I found this post which proved very useful..

I downloaded the drivers for Intel 4 series chipsets from here.

I started the installation process and got a question on whether I want to proceed and override the drivers the motherboard CD installed. At this point (while the files are extracted), go to %systemroot%\temp (I think), find iaStor.sys and copy it to C:\WINDOWS\system32\drivers. Next I created the registry entries from the post above: Create a .reg file with the contents below, then double-click it to load it to registry.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_3a22&cc_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iaStor"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2822&cc_0104]
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
"Service"="iaStor"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI Miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\iaStor.sys"
"tag"=dword:00000019
"DisplayName"="Intel AHCI+RAID Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000
"BusType"=dword:00000003

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port0]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port1]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port2]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port3]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port4]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port5]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_3A22&SUBSYS_B0051458&REV_00\\3&13c0b0c5&0&FA"
"1"="PCI\\VEN_8086&DEV_2822&SUBSYS_B0001458&REV_02\\3&13c0b0c5&0&FA"
"Count"=dword:00000002
"NextInstance"=dword:00000002

That’s it. I rebooted, turned on AHCI in BIOS, and that was that. Both Ubuntu and XP working with AHCI !

If you run into any problems, turn to the post I linked above – that’s where most of the complicated stuff is from 🙂

Good luck !

Advertisements