HPT linux booting hints
Although I learned that the hpt udma66 IDE controller was "supported" under
linux now.... I've had a great deal of difficulty actually BOOTING from it.
I have an ABit BP6 Dual Celeron motherboard, which has an intel BX chipset,
with two geenooine intel IDE controllers. But they're limited to UDMA33, so
Abit generously decided to throw on an EXTRA SET of UDMA66 capable
IDE buses, courtesy of a separate hpt366 controller chip.
Great! 4 independant IDE chains!
Trouble is, LILO only wants to boot off your primary IDE chain. And most of
the existing pre-built kernels dont recognize the hpt IDE controller
either.
I found a Helpful
HPT366 mini-HOWTO page, which gave me hints to get the linux kernel to
at least USE the extra IDE chain. It claimed you could boot from it, but no
matter what I tried with LILO (lilo-21-6), it got stuck at the "LI" part.
So finally I resorted to the following steps:
- Unplug all my other IDE drives (you can leave the cdrom in)
- Run fdisk /mbr to restore the boot record for the disk.
Unfortunately, fdisk does not take an argument on WHICH DISK to do this
for. This is why I had to unplug my other drives!
- Run fdisk and give myself a small FAT16 Primary DOS partition on the
drive on the hpt bus (as hde1)
- Run msdos format on it (Why isn't there an easy way to do this in
linux?)
- Run fdisk to set the new msdos partition as active
- Copy /vmlinuz to the hde1 as file "linux", and copy "loadline.exe"
there also.
- Set up autoexec.bat to do
loadlin linux ide2=0xd000,0xd402 root=/dev/hde3
and FINALLY... I could set my BIOS to boot from that disk directly!
WARNING: the "0xd000,0xd402" is specific to **my**
machine. You'll have to look through /proc/pci for
Vendor id=1103, Device id=4
I/O at 0xXXXX [0xXXXX+1]
I/O at 0xYYYY [0xYYY+1]
Then XXXX becomes the first value, and YYYY+2 becomes the second value.