OffBoardIdeInterface

Installing Linux on Offfboard IDE Interfaces

Certain motherboards (notably from Abit) come with multiple IDE interfaces. Typically the standard slow IDE controller is the default one (onboard), and a fast UDMA-66 or 100 controller acts like a separate additional (offboard) controller. It is possible to install Linux directly on a drive connected to the fast bus, but the default configuration will be unbootable. Basically you need to feed LILO the correct addresses for the fast controller so it knows how to find it.

Note that the typical symptom of this is you can install the OS on the UDMA-100-attached drive, but on system boot you see 'PANIC: can't mount root'.

        * Boot linux with a boot floppy or rescue CD.
        * Switch to a prompt and examine the PCI addresses with 'cat /proc/pci'.
        * Look for your high-speed controller and note the addresses listed for it.  You might see something like this:
        Unknown mass storage controller: Triones Technologies, Inc. HPT366 IDE  UltraDMA/66 (rev 1).
        Medium devsel.  IRQ 11.  Master Capable.  Latency=120.  Min Gnt=8.Max Lat=8.
        I/O at __0xb800__ [0xb801].
        I/O at __0xbc00__ [0xbc01].
        I/O at 0xc000 [0xc001].
        * Reboot the system and do the OS install.  Reboot system after install.
        * When the system gets to the lilo: prompt, type in the following, which is the first highlighted address above and the second address plus 2.
        linux ide0=0xb800,0xbc02
        * The system should boot, and you should see ide0 listed at the addresses you gave.
        * To make this change permananent, edit /etc/lilo.conf and add the following to the boot image you are using:
        append="0xb800,0xbc02"

Note that any time you add or remove PCI cards from the system, the IDE addresses will probably change and you will have to boot a rescue disk again to get the new one.

This idea is taken from The Ultra-DMA Howto.

--phil 6/11/01

CategoryGeekStuff

CategoryLinuxStuff



Our Founder
ToolboxClick to hide/show