Linux and the Abit KG7-RAID motherboard

I bought this motherboard with a 1.4 GHz Athlon CPU a few weeks ago and I must say it's great. This page described my efforts to get it going, the few problems I've had and my attempts to squeeze the last ounce of power out of it running Linux. If people let me know other tricks and tips, I'll add them as well.

Before I bought this mobo, I did a heap of research into lots of other boards out there. I'd decided to make as close to my ultimate system as my budget would allow. The sites which helped me make my decision are: Tom's Hardware, Anand Tech, Ars Technica and Linux Hardware. Thanks for all the good advice folks!

Other sites

As far as I know there is one other site with much detail on this motherboard. It's very comprehensive and I won't be covering anything on it. Paul's Unofficial ABIT KG7-RAID and KR7-RAID FAQ is excellent but on the software side mostly talks about Windows.

BIOS

My only problem with the BIOS so far has been using the IDE RAID interfaces for my sexy new 40 gig RAID-0 array. At first it worked flawlessly. Then when I installed Windows on the master drive of IDE0 which of course overwrote my Master Boot Record, LILO stopped working. After much frustration I finally worked out that I needed the following in my lilo.conf so it knows where to find IDE2.

disk = /dev/hde
     bios = 0xdc00

Works fine now and the IDE RAID striping does seem quite a bit faster. Kernel compiles are nice and quick, though that could be the half gig of RAM and 1.4 gig Athlon.

AGP

The AGP interface on this mobo is the AMD-760 chipset. This is supported by the current Linux kernel 2.4.9 but it doesn't know it yet. The revision is pretty new so it doesn't natively recognise it just yet. You'll probably get something like this:

Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: Unsupported AMD chipset (device id: 700e), you might want to try agp_try_unsupported=1.
agpgart: no supported devices found.
Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: Unsupported AMD chipset (device id: 700e), you might want to try agp_try_unsupported=1.
agpgart: no supported devices found.

So to get it going you need to tell the module to try the unsupported chipset which means adding agp_try_unsupported=1 to your insmod. Then add this to your modules.conf:

option  agpgart         agp_try_unsupported=1
alias   /dev/agpgart    agpgart

Oh and make sure you adjust the lame default of 1x AGP speed. Duh! Most new graphics cards are quite capable of 4x speed.

lm_sensors

Coming when I get around to it.

IDE controller

Compile in CONFIG_BLK_DEV_VIA82CXXX for maximum IDE performance on IDE0 and IDE1.

RAID controller

Coming soon. For now check out this documentation from the kernel:

CONFIG_BLK_DEV_HPT366:

HPT366 is an Ultra DMA chipset for ATA-66.
HPT368 is an Ultra DMA chipset for ATA-66 RAID Based.
HPT370 is an Ultra DMA chipset for ATA-100.
 
This driver adds up to 4 more EIDE devices sharing a single
interrupt. 

The HPT366 chipset in its current form is bootable. One solution
for this problem are special LILO commands for redirecting the
reference to device 0x80. The other solution is to say Y to "Boot
off-board chipsets first support" (CONFIG_BLK_DEV_OFFBOARD) unless
your mother board has the chipset natively mounted. Regardless one
should use the fore mentioned option and call at LILO or include
"ide=reverse" in LILO's append-line.

This driver requires dynamic tuning of the chipset during the
ide-probe at boot. It is reported to support DVD II drives, by the
manufacturer.

And check out this site about the new ATARAID kernel stuff.

hdparm

To get the most out of your hard drives you really do need to tweak the IDE interface in Linux a long way from the defaults. The following works for me. I stuck it in my rc.local script so it runs every time I boot up.

hdparm -c 1 -d 1 -k 1/dev/hde

What this does (see man hdparm) is turn on 32-bit addressing and DMA and, potentially, save that for future boots. For some reason that doesn't seem to work on my machine hence the rc.local script.

Send me your experiences and tips

If you have any experiences to add, let me know.