To determine the correct Append Line, we should first know how all our ide devices are connected. IDE devices can be hard disks, ATAPI CDROM(s) etc. Once we determine the Append Line, we can append it to the boot: options (at the time of booting) or we can alternatively assign it as a string value to the append paramater in /etc/lilo.conf. Unless you love to remember complicated boot: options and type them at boot time every time, you should choose the second method, i.e., insert it into /etc/lilo.conf . You can do so by inserting append="Your Append Line Here", saving file and then activating new /etc/lilo.conf by running the command /sbin/lilo.
For the purpose of understanding better, lets say that your ide devices are as follows:
The two free disks above (hde and hdg) are the ones we would like to setup as RAID 1 to create /dev/ataraid/d0 raid device. Note that we do not have hdf or hdh because that is how we used the IDE/RAID ports on Promise chip. It is not a good idea to connect two hard disks to the same Promise controller IDE port. In the above example, we used Primary Master and Secondary Master connections on the Promise Technology card.
If you do not know how various ide devices are connected in your computer, take a look at /proc/devices and /proc/ide/*. You can also carefully go through boot log file, /var/log/bootlog (or type dmesg | more right after your Linux system boots) to find your ide devices. Now type less /proc/pci and locate appropriate information about Promise Technology. In the output of less /proc/pci, you can see somewhere information about your Promise chip, something like:
Bus 0, device 17, function 0:
Unknown mass storage controller: Promise Technology Unknown device (rev 2).
Vendor id=105a. Device id=d30.
Medium devsel. IRQ 10. Master Capable. Latency=32.
I/O at 0x9400 [0x9401].
I/O at 0x9000 [0x9001].
I/O at 0x8800 [0x8801].
I/O at 0x8400 [0x8401].
I/O at 0x8000 [0x8001].
Non-prefetchable 32 bit memory at 0xd5800000 [0xd5800000]. |
From this output, we learn that our Promise Technology card uses IRQ 10 for both ide ports (ide2 and ide3). Using same IRQ is perfectly alright as long as your kernel supports PCI IRQ Sharing. By default, our Linux kernel is configured to support PCI IRQ sharing. From the above output, we also learn that our Promise Technology card uses various IO addresses. For the purpose of identifying Promise Technology disks properly at boot time, we only want the IRQ number(s) and the first four IO Address numbers outside [ ]. Write down on a piece of paper this information. In this case, from the above output:
IRQ1 = 10
IRQ2 = 10
IO1 = 0x9400
IO2 = 0x9000
IO3 = 0x8800
IO4 = 0x8400 |
Now, we have to evaluate the following to obtain the correct Append Line. Then either specify this Append Line at boot time or specify it in lilo configuration file.
ideX=IO1,IO2+0x0002,IRQ1 ideY=IO3,IO4+0x0002,IRQ2
where ideX and ideY are the two IDE ports of Promise card our free disks are using. |
In our example, the above Append Line will become:
ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10
If, for example, we want to boot kernel version 2.4.18, labelled linux according to /etc/lilo.conf, then we specify our Append Line in one of the following two methods:
At boot time
boot: linux ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10 |
If you choose this method, you should manually type the Append Line after the kernel label linux everytime you boot your Linux machine.In /etc/lilo.conf
image=/boot/vmlinuz-2.2.18
label=linux
read-only
root=/dev/hda1
append="ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10" |
If you choose this method, you have to run lilo once to activate changes by typing /sbin/lilo. And you do not have to type anything extra at boot time.