After a couple of days of searching for data, here are the results of my
quest to install a Promise Ultra 133 TX2 IDE controller card as a third
and fourth IDE controller in a Mandrake 8.0 installation.
I'm posting this so someone else doesn't have to go through what I
went through to figure it out. FYI, this example uses LILO for the
bootloader.
Note that this method is not a performance oriented installation. It does
not use the high-speed driver that Promise is developing for Linux. I
am simply using the Promise card to provide me with two additional
IDE controllers beside the two on my motherboard.
1) Install the card.
Note that I installed the card and it was already working in Windows
when I decided to load Mandrake 8.0. This gave me the advantage
of knowing that the card did not conflict with anything else prior to my
attempts to get the card recognized under Linux. This isn't really a
necessary thing if your BIOS messages show that it is properly seeing
any attached drives.
2) Locate the I/O address used by the Promise Controller
a) Boot your linux system.
b) Get a command prompt.
c) Enter the command:
less /proc/pci
d) Find the section that looks like this:
Bus 0, device 8, function 0:
Unknown mass storage controller: PCI device 105a:4d69 (Promise
Technology, Inc.) (rev 2).
IRQ 4.
Master Capable. Latency=32. Min Gnt=4.Max Lat=18.
I/O at 0x2800 [0x2807].
I/O at 0x2c00 [0x2c03].
I/O at 0x3000 [0x3007].
I/O at 0x3400 [0x3403].
I/O at 0x2000 [0x200f].
Non-prefetchable 32 bit memory at 0xd9000000 [0xd9003fff].
NOTE: Your specific numbers will probably be different, but, for
purposes of these instructions, consider the I/O lines to be named
A, B, C, D, and E. For example, I/O at 0x2800 .. is setting A, I/O
at 0x2c00 is setting B, etc.
This gives us, for example:
A = 0x2800
B = 0x2c00
C = 0x3000
D = 0x3400
E = 0x2000
3) Set up your bootloader to add parameters for the Promise controller:
a) Construct bootloader parameters using this template:
ide2=A,B+2 ide3=C,D+2
Using our sample data shown above, this results in:
ide2=0x2800,0x2c02 ide3=0x3000,0x3402
b) Save off a copy of lilo.conf for safety.
c) Edit the step e) information into /etc/lilo.conf append statements.
I'd be careful to avoid editing the "failsafe" entry, but that's just
my suggestion. Add the edits to which ever boot choices you
want to. For purposes of this example, I'm only adding the
Promise controller drives to the Linux and Linux-NonFB
boot options.
Example before the edits (yours may look different!):
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
default=Windows-98
keytable=/boot/us.klt
lba32
prompt
timeout=1500
message=/boot/message-graphic
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
label=Linux
root=/dev/hda5
initrd=/boot/initrd.img
append=" hdc=ide-scsi quiet"
vga=788
read-only
image=/boot/vmlinuz
label=Linux-NonFB
root=/dev/hda5
initrd=/boot/initrd.img
append=" hdc=ide-scsi"
vga=0x030A
read-only
image=/boot/vmlinuz
label=Linux-failsafe
root=/dev/hda5
initrd=/boot/initrd.img
append=" hdc=ide-scsi failsafe"
read-only
other=/dev/hda1
label=Windows-98
table=/dev/hda
other=/dev/fd0
label=Floppy
unsafe
This example is pretty much straight out of the default Mandrake 8.0
installation where I have a dual boot to Windows 98 set up.
The new, updated lilo.conf would look like:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
default=Windows-98
keytable=/boot/us.klt
lba32
prompt
timeout=1500
message=/boot/message-graphic
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz
label=Linux
root=/dev/hda5
initrd=/boot/initrd.img
append=" hdc=ide-scsi ide2=0x2800,0x2c02 ide3=0x3000,0x3402 quiet"
vga=788
read-only
image=/boot/vmlinuz
label=Linux-NonFB
root=/dev/hda5
initrd=/boot/initrd.img
append=" hdc=ide-scsi ide2=0x2800,0x2c02 ide3=0x3000,0x3402"
vga=0x030A
read-only
image=/boot/vmlinuz
label=Linux-failsafe
root=/dev/hda5
initrd=/boot/initrd.img
append=" hdc=ide-scsi failsafe"
read-only
other=/dev/hda1
label=Windows-98
table=/dev/hda
other=/dev/fd0
label=Floppy
unsafe
d) Save the changes.
Again, your data may vary depending on the installation. The only data
changes are in two "append" statements. Be careful to leave spaces in
the appropriate places.
e) Run the lilo command and make sure that no errors occur. The output of
lilo for this example is:
# lilo
Added Linux
Added Linux-NonFB
Added Linux-failsafe
Added Windows-98 *
Added Floppy
#
Note that there are no error messages. Do not proceed until you can run
lilo successfully. Naturally, one would encourage another to be careful
and do it all correctly the first time.
4) Test the changes:
a) Reboot the system
If you are looking at the boot messages, the would look similar to this:
Linux version 2.4.3-20mdk ([EMAIL PROTECTED]) (gcc version
egcs-2.91.66 19990314/Linux (egcs-1.1.2 release / Linux-Mandrake 8.0)) #1 Sun
Apr 15 23:03:10 CEST 2001
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000000a000000 (usable)
BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
On node 0 totalpages: 40960
zone(0): 4096 pages.
zone(1): 36864 pages.
zone(2): 0 pages.
hm, page 01000000 reserved twice.
Kernel command line: BOOT_IMAGE=Linux-NonFB ro root=305 hdc=ide-scsi
ide2=0x2800,0x2c02 ide3=0x3000,0x3402
ide_setup: hdc=ide-scsi
ide_setup: ide2=0x2800,0x2c02
ide_setup: ide3=0x3000,0x3402
<snip>
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
ALI15X3: IDE controller on PCI bus 00 dev 78
PCI: Assigned IRQ 4 for device 00:0f.0
ALI15X3: chipset revision 194
ALI15X3: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x3800-0x3807, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x3808-0x380f, BIOS settings: hdc:DMA, hdd:pio
hda: IBM-DJNA-352030, ATA DISK drive
hdc: PLEXTOR CD-R PX-W2410A, ATAPI CD/DVD-ROM drive
hde: FUJITSU M1638TAU, ATA DISK drive
hdf: WDC AC24300B, ATA DISK drive
hdg: KENWOOD CD-ROM UCR-421 V226G, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide2 at 0x2800-0x2807,0x2c02 on irq 4
ide3 at 0x3000-0x3007,0x3402 on irq 4 (shared with ide2)
hda: 39876480 sectors (20417 MB) w/1966KiB Cache, CHS=39560/16/63,
UDMA(66)
hde: 5023680 sectors (2572 MB) w/128KiB Cache, CHS=4983/16/63
hdf: 8421840 sectors (4312 MB) w/512KiB Cache, CHS=8912/15/63
Partition check:
hda: hda1 hda2 < hda5 hda6 hda7 >
hde: [PTBL] [622/128/63] hde1 < hde5 hde6 > hde3 hde4
hdf: [PTBL] [524/255/63] hdf1 hdf2 < hdf5 hdf6 > hdf3
RAMDISK: Compressed image found at block 0
Uncompressing....done.
<snip>
b) Points to beware of:
The boot process will hang the computer during the Partition check: if
the ide2 and ide3 addresses are incorrect.
Actually, I doctored this example... With my hardware (the WDC
AC24300B, ATA DISK drive to be precise) this configuration will also
hang the system during the partition checks. This Western Digital
drive also required an " ide3=noautotune" statement to prevent the
boot failure. (Oddly, this was not necessary on Mandrake 7.2 with
the same drive, but, that is another long story...)
I have not studied what other similar issues may exist for other hard
drives, but, take this as a warning.
I'd suggest only changing one boot option until you get things working
properly. I used the non-framebuffer boot as the test, and then added
the commands to the other boot options when it was all working properly.
5) Enjoy being able to use more than four IDE devices in your system... or,
simply enjoy the performance benefits of running one one drive per
controller.
Hopefully this message can end up in the archive so that the data is not so
hard to find for the next guy...
BTW, Promise Technologies is currently beta testing a driver that will allow
us to properly utilize the performance features of this card, or so I was told
by one of their support technicians.
Kevin R. Bulgrien
[EMAIL PROTECTED]
Want to buy your Pack or Services from MandrakeSoft?
Go to http://www.mandrakestore.com