http://www-public.tu-bs.de:8080/~y0002235/ataraid/rh7.2/
Just use a DOS/Windows formatted floppy and copy the files onto the disk as they appear on Helge's site. I haven't used this method myself as the only box I had with a Promise driver is now sitting in a colo rack. There seem to be some conflicting reports as to whether or not it works with the actual release version of 7.2, but I'm sure any problems will be worked out rather quickly.
If RedHat 7.2 isn't an option, or if the above method isn't working properly, then I'll speculate a bit on what might be causing your compilation and boot problems :).
partition.c has a #ifndef on DOS_EXTENDED_PARTITION (and LINUX/WIN98). These are defined in linux/genhd.h (which is included in common.h, which is included in partition.c). If you are getting EXTENDED_PARTITION undefined, it probably means there is an older copy of linux/genhd.h lying around (and if that, then no doubt an older copy of kernel-headers is installed - it'd probably be a good idea to grab the latest). I'm not sure why or how this would be the case on a freshly installed 7.1 box (perhaps you didn't include kernel development on install, but I imagine you'd see more than just one problem if this were the case).
rpm -qa | grep kernel-headers to check what you have installed. kernel-headers-2.4.2-2.rpm was what was installed on mine when I compiled lilo-21.7.3 without complications. You can try to place the correct #defines directly in partition.c (before the #ifndefs begin) and see if that works:
#define DOS_EXTENDED_PARTITION 5
#define LINUX_EXTENDED_PARTITION 0x85
#define WIN98_EXTENDED_PARTITION 0x0f
If this is the only error you are getting this should work, but I would recommend you try installing a newer version of the kernel headers first as you may have other problems. Looking at the source, it doesn't seem like incorrectly defining EXTENDED_PARTITION (as I suspect you did from what you indicated below) would actually cause the problems you reported with booting, but you never know.
I think you meant LIL- and not LILO- ? If 'LILO' is printed, it means all parts of LILO successfully loaded, 'LIL-' means 'the descriptor table is corrupt', and I can't find any reference to 'LILO-' in the documentation.
Also, I'm not exactly clear on what you did before you tried to reboot. I couldn't get lilo to run directly from the Promise-driver kernel with the correct lilo.conf. I had to compile and install lilo-21.7.3, then copy the new lilo and lilo.conf to a disk and reboot off the boot CD-ROM, then run lilo -C lilo.conf from the shell to install. I'm not sure if you did this from reading your message.
I've attached my lilo.conf for both Arjan's (GPL) and Promise's drivers as I think that might be part of your problem. My best guess right now as for what caused your problem is that you ran lilo against a lilo.conf that contains references to /dev/sda*. I've also attached some detailed instructions I sent to another person from this list which explains what I needed to do to make the switch. Some of it is tailored to his information, so bear that in mind. If you wish, I can send you the same .img file I mention in the attached email.
Hope this is of some help.
- Adam
From: "Igor Dirkov" <i_dirkov@xxxxxxxxxxx>
Reply-To: ataraid-list@xxxxxxxxxx
To: ataraid-list@xxxxxxxxxx
Subject: Promise FastTrak 100 RedHat 7.1 install and boot details (Adam McKay )
Date: Tue, 23 Oct 2001 11:55:24 +0400
Dear Mr. Adam McKay
I am sysadmin from Moscow (Russia) and I have the same task (Redhat 7.1 on FastTrak Promise). I?d appricate if you send me some more detailed instructions of installation process. Thank you for your permission to ask you for help.
PS. What I have done that works Your first 5 steps 1) Obtained relevant RedHat 7.1 drivers from: http://support.promise.com/Linux/Default.htm 2) tar xfv ftrhup_120b9.tar on a floppy took ft.o 3) Boot off CD-ROM, enter linux dd or expert at the boot prompt. Then I went through install process.I skiped you steps 5 and 6. I finish the install, and Redhat 7.1 boot from sda1.
Then 4) I place http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.12.tar.gz and http://people.redhat.com/arjanv/pdcraid/patch-to-2.4.12 Compiled and booted a kernel with ataraid drivers.
I tried to compile lilo from http://ataraid.slimyhorror.com/lilo-ataraid.tar.gz but I got an error : undifined EXTENDED_PARTITION in partition.c (I assigned value to EXTENDED_PARTITION according fdisk ), but after installing LILO and rebooting I got LILO- Would you enlighten me what is wrong?
sincere regards
_________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
_______________________________________________ Ataraid-list@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/ataraid-list
_________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
boot=/dev/ataraid/d0 root=/dev/ataraid/d0p5 disk=/dev/ataraid/d0 bios=0x80 lba32 install=/boot/boot.b ignore-table prompt timeout=50 map=/boot/map message=/boot/message default=ataraid read-only image=/boot/bzImage-2.4.10-ataraid label=ataraid
boot=/dev/sda root=/dev/sda5 lba32 install=/boot/boot.b ignore-table prompt timeout=50 map=/boot/map message=/boot/message default=linux read-only image=/boot/bzImage-2.4.10-ataraid label=ataraid
image=/boot/vmlinuz-2.4.2-2 label=linux read-only initrd=/boot/initrd-2.4.2-2.img root=/dev/sda5
I'll give you the generic promise -> GPL driver conversion using 2.4.10 step by step (how I did it, at any rate) and hopefully that will help.
I should note there are some possibly significant differences in our configurations - I'm using PDC20267 and am not multi-booting (only linux on that box). I don't think either will be a problem, but you never know. Also, you'll need at least the first bootable CD of the two redhat 7.1 install CDs (this is useful both to aid in recovery if something goes wrong and needed to switch over to the ataraid drivers). Also, I assume you know what to do with a .img file, so I won't explain that.
Converting the lilo.conf isn't explained as well as I'd like, but hopefully it isn't too difficult to figure out. I suspect it may not work on the first go - make sure to save copies of your existing /etc/lilo.conf and /etc/fstab so you can restore your prior configuration (I copied mine to /etc/lilo.conf.sda.PROMISE and /etc/fstab.sda.PROMISE - they are also on the driver disk I've attached in etc). I had to switch back and forth three or four times before I figured everything out.
Standard disclaimers apply :). I'm pretty sure I didn't miss anything, but I can't guarantee this will work for configurations other than mine.
=== Compiling 2.4.10 with patch (or latest kernel) *** Latest kernel right now is 2.4.11, I haven't tried Arjan's patch against 2.4.11 yet, so I'm not sure that you don't have to do some tweaking to get it to work. - http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.10.tar.gz - http://people.redhat.com/arjanv/pdcraid/patch-to-2.4.10 - Log into box and cd /usr/src as root - Get linux-2.4.10.tar.gz and patch-to-2.4.10 in /usr/src directory - mkdir linux-2.4.10 - ln -s /usr/src/linux-2.4.10 /usr/src/linux (make sure you delete or move linux directory/link if it is already there) - ln -s /usr/src/linux-2.4.10 /usr/src/linux2410 - patch -p0 < patch-to-2.4.10 - cd linux - make mrproper - make menuconfig (or whatever) - Be sure to pick everything that has to do with the ataraid drivers - besides basic ide support, the following should be configured: CONFIG_BLK_DEV_PDC202XX=y, CONFIG_PDC202XX_FORCE=y,CONFIG_BLK_DEV_ATARAID=y, CONFIG_BLK_DEV_ATARAID_PDC=y - check this by doing a grep on .config after make menuconfig completes and you've saved the config. If anything isn't configured, just manually edit the Makefile so the above lines are there. - make dep - make clean - make bzImage - make modules - make modules_install - cp `find . -name bzImage` /boot/bzImage-2.4.10-ataraid_GPL
=== Booting off ataraid via lilo... - Get http://ataraid.slimyhorror.com/lilo-ataraid.tar.gz and put in home directory (/root) - Get http://ataraid.slimyhorror.com/lilo.conf and also place in home directory (/root) (use as a reference) - tar zxvf lilo-ataraid.tar.gz - cd lilo-21.7.3 - make - make install ********************************************************************** *** Everything between the stars is on the .img I'm attaching. ********************************************************************** - Get a disk which has been formatted in Windows (VFAT format) and has the de-tarred ftrhup_120b9.tar in it (I'm not sure the format matters, but I couldn't get the install to recognize ext2fs formatted floppies for whatever reason). - Place it in floppy drive and mount /dev/fd0 /mnt/floppy - mkdir /mnt/floppy/bin - cp lilo /mnt/floppy/bin - mkdir /mnt/floppy/etc - cp /root/lilo.conf /mnt/floppy/etc - mkdir /mnt/floppy/2.4.2-2BOOT - cp ataraid.o /mnt/floppy/2.4.2-2BOOT (this should be the 2.4.2-2BOOT version you made) - cp pdcraid.o /mnt/floppy/2.4.2-2BOOT (ditto) * On both modules, make sure to objcopy --strip-all (e.g. objcopy --strip-all ataraid.o) before copying them - umount /mnt/floppy (if it says device is busy, you are probably in the /mnt/floppy directory) ********************************************************************** - Reboot off Redhat 7.1 CD-ROM - At boot prompt: expert ide1=0xd000,0xd402 ide2=0xd800,0xdc02 (this will differ for each person most likely) - how to get this information: * Boot off the CD-ROM as below, ignore all driver instructions. If you are already able to boot (in your case, this is true), you can skip three lines down and just cat /proc/pci. * Continue until you get a shell. * If you get to where it looks for the drive (and fails), you're still ok. * Don't click ok, just alt-F2 and type cat /proc/pci - the relevant section from my machine follows (this is after I already had the ataraid GPL drivers working, so it may not actually display Promise Technology or RAID or have the same IRQ, etc. (just look for 5 I/O at 0x#### in a row) when this is done on other systems): ----------------------------------------------------------------------- Bus 0, device 12, function 0: RAID bus controller: Promise Technology, Inc. 20267 (rev 2). IRQ 11. Master Capable. Latency=32. I/O at 0xd000 [0xd007]. I/O at 0xd400 [0xd403]. I/O at 0xd800 [0xd807]. I/O at 0xdc00 [0xdc03]. I/O at 0xe000 [0xe03f]. Non-prefetchable 32 bit memory at 0xd6200000 [0xd621ffff]. ----------------------------------------------------------------------- * You should see a device that has 5 I/O at 0x#### [0x####] * You don't care about the number in the []s. * We'll call the first number (0xd000 in my case) a, followed by b, c, and d. * We don't care about the 5th number. * Given that, the format of the parameters is: - ide1=a,b+2 ide2=c,d+2 (full command: expert ide1=a,b+2 ide2=c,d+2) - When it asks for driver disk, place the above disk in the drive and hit OK. - It will say loading ft.o, but it will fail because you specified ide1 and ide2 above. * If you don't specify ide1 and ide2 parameters, it will load ft.o, which is fine you can rmmod ft to get rid of it, but insmod ataraid.o works and insmod pdcraid.o fails if you don't specify ide1/ide2 at the boot prompt (it did for me at least). - You will have to get to and select the Local CD screen (it will try, and fail, to load ft.o a couple times, once after you indicate you've put in a driver disk and once after you select Local CD - after the last one fails, continue by doing Alt-F2 (or Ctrl-Alt-F2) to get to the shell. - cd /tmp - mount -t vfat fd0 drivers - cp drivers/bin/lilo . - cp drivers/etc/lilo.conf.ataraid.GPL ./lilo.conf * Or just copy your existing lilo.conf (/r/etc/lilo.conf) here and edit that (this is probably the more efficient way to go about it). Use drivers/etc/lilo.conf.ataraid.GPL for reference. - cp drivers/2.4.2-2BOOT/*.o . - insmod ataraid.o - insmod pdcraid.o - Both of these should succeed without error (Alt-F4 should display that they've loaded) - Do everything in MAKEDEV script (if drivers/bin/MAKEDEV fails, do the following): mkdir /dev/ataraid;cd /dev/ataraid;mknod d0 b 114 0; for((I=1;I<16;I++));do mknod d0p$I b 114 $I;done - mkdir /boot;mount /dev/ataraid/d0p1 /boot * It is important that /boot points to the correct place - it can either be directly mounted there or it can be a symbolic link, but /boot must lead to your redhat /boot partition or lilo will not work properly. /dev/ataraid/d0p1 is the partition on which /boot resides in my system. - mkdir /r;mount /dev/ataraid/d0p5 /r * Root was partition 5 for me, I assume anyone who chooses to allow redhat to partition for them on a clean system will get the same results (boot was partition 1, swap was partition 6) - export PATH=/r/bin:/r/usr/bin:/r/sbin:/r/usr/sbin:$PATH - vi /tmp/lilo.conf - Change appropriately (change (or add) linux image to image=/boot/bzImage-2.4.10-ataraid_GPL (or whatever you called it)). The drivers_disk_vfat.img contains my lilo.conf (etc/lilo.conf.ataraid.GPL). The short answer is change everything that has /dev/sda# in it to /dev/ataraid/d0p#, but there are a few other lines which are important. You can pretty safely use the directives contained until the first image=/boot/... line, just change them to reflect local information. Make sure to preserve information needed to boot other operating systems. - /tmp/lilo -C /tmp/lilo.conf -v - This should run without error. - vi /r/etc/fstab - Change all instances of sda to the equivalent /dev/ataraid partition and remove LABELs and replace with partitions: * /dev/sda6 == /dev/ataraid/d0p6 (swap partition for me) * LABEL=/ == /dev/ataraid/d0p5, LABEL=/boot == /dev/ataraid/d0p1 in my case. - cd /;umount /r;umount /boot;sync;sync;sync * Immediate reboot without doing this probably won't leave enough time for data to be written to disk (fstab in particular). The act of unmounting the partitions probably does the sync, but it never hurts to be paranoid. - Reboot should get you to a login prompt.
- Adam