dpt_i2o SmartRAID V controller module fails to load

Support knowledgebase (randall_dpt)
Applies to

SuSE Linux: Version 7.0
This article refers to an older version of SuSE Linux. Therefore some of the informations given in this article may be outdated or the article may contain stale links.

dpt_i2o

Symptom:

You have a scsi raid card with the dpt smartRAID V chip. Cards that use this chip are: DPT smartRAID V and Adaptec 2100s, 3200s, 3400s, and the Millenium.
If you do:
		lspci -v | grep -i -A2 i2o 
or do system info: pci from the yast1 install menu, you should see something like this:
	00:0d.1 I2O: Distributed Processing Technology SmartRAID V Controller 
                     Subsystem: Distributed Processing Technology: Unknown
	             device 018 
Unfortunately, the dpt_i2o module for this card will fail to load during the install or thereafter manually.

Cause:

This module needed to be updated and also compiled on a pre-2.91 ggc compiler.

Solution: follow these instructions to install the dpt_i2o driver.

Steps to install SuSE 7.0 from scratch using the updated dpt_i2o driver.

  1. If you are installing SuSE 7.0 from scratch, download the modules disk image ftp://ftp.suse.com/pub/suse/i386/update/7.0/kernel/dpt_i2o-1.14/modules. You can copy this file onto a floppy with the rawrite tool in the /dosutils directory of CD1 or just copy using dd:

                    dd if=modules of=/dev/fd0 
    Label this floppy as the SuSE 7.0 updated modules disk. Also please determine if you are going to use the smp kernel for multi-processor computers or a uniprocessor kernel. Please download the uniprocessor module ftp://ftp.suse.com/pub/suse/i386/update/7.0/kernel/dpt_i2o-1.14/dpt_i2o.o or the multiprocessor module ftp://ftp.suse.com/pub/suse/i386/update/7.0/kernel/dpt_i2o-1.14/dpt_i2o-smp.o to a second pre-formatted dos floppy, labelled as the dpt floppy disk.

  2. Install SuSE 7.0 via yast1 with the boot floppy disk or CD2 so that you can do a text based install. At the main install menu, select kernel modules and then load scsi modules . In the scsi modules menu, use the menu item -- More Modules -- and put the SuSE 7.0 updated modules disk, that you have created, into the floppy drive. After you have loaded the dpt_i2o module, press the back button and in the main menu select Start installation / system and continue with the install process.

  3. After you have selected the correct kernel, you will see a new screen asking if you want to configure lilo. At this point, go to an alternate console by pressing alt-F2.

  4. Please issue the following commands after putting the dpt floppy disk in the floppy drive:

    		cd /mnt
    		cp /etc/mtab /mnt/etc/mtab
    		chroot /mnt
    		mount /floppy 
    If you have a uniprocessor system do:
    		cp /floppy/dpt_i2o.o /lib/modules/2.2.16/scsi/dpt_i2o.o
    		umount /floppy
    		depmod -a 
    or if you have a smp system do:
    		cp /floppy/dpt_i2o-smp.o /lib/modules/2.2.16-SMP/scsi/dpt_i2o.o
    		umount /floppy
    		depmod -a 

  5. Open the file: /etc/rc.config with your favourite editor and check if the line:

    		INITRD_MODULES="dpt_i2o" 
    exists (there may be other module names, separated by spaces, listed). If it does not, please edit and save /etc/rc.config .

  6. Before we create the ram disk we must edit /etc/mtab to reflect the mounted files of the chroot environment. Please edit /etc/mtab as follows:

    	/dev/initrd on / type minix (rw)	#erase this line
    	none on /proc type proc (rw)		#keep this line
    	/dev/hdc on /var/adm/mount type iso9660 (ro)#erase this line
    	/dev/sda3 on /mnt type ext2 (rw)	#change /mnt to / 
    	/dev/sda1 on /mnt/boot type ext2 (rw)	#change /mnt/boot to /boot
    Please note that your / partition may be on a different device than /dev/sda3 and likewise your /boot partition may be on a different device than /dev/sda1. After editing the file. Do:
    		mount
    which should give look something like this, except possibly for the device numbers:
    	none on /proc type proc (rw)     
    	/dev/sda3 on / type ext2 (rw)	 
    	/dev/sda1 on /boot type ext2 (rw) 

  7. You are now ready to create your ramdisk. Create your ramdisk image by doing this command:

    		mk_initrd 

  8. Exit out of the chroot environment by issuing these commands:

    		rm /etc/mtab
    		touch /etc/mtab
    		exit 
    and then going to the install console by pressing alt-F1.

  9. And continue with the installation by configuring lilo. You can now proceed through the rest of the install.

Steps to install updated dpt_i2o driver on an already running SuSE 7.0 system.

  1. Determine if you are running a multiprocessor kernel or a uniprocessor kernel. You can check this by doing:

    		uname -a 
    and see if the strings that is returned contains the word: smp (smp signifies that you have a multiprocessor kernel). Please download the uniprocessor module ftp://ftp.suse.com/pub/suse/i386/update/7.0/kernel/dpt_i2o-1.14/dpt_i2o.o or the multiprocessor module ftp://ftp.suse.com/pub/suse/i386/update/7.0/kernel/dpt_i2o-1.14/dpt_i2o-smp.o to the /tmp directory. If you have a smp system please issue the following command:
    		cp /tmp/dpt_i2o-smp.o /lib/modules/2.2.16-SMP/scsi/dpt_i2o.o
    or if you are running a uniprocessor kernel please do:
    		cp /tmp/dpt_i2o.o /lib/modules/2.2.16/scsi/dpt_i2o.o

  2. Open the file: /etc/rc.config with your favourite editor and check if the line:

    		INITRD_MODULES="dpt_i2o"
    exists (there may be other module names, separated by spaces, listed). If it does not, please edit and save /etc/rc.config .

  3. Create your ramdisk image by doing these commands:

    		SuSEconfig
    		depmod -a
    		mk_initrd 

  4. Then check with your favourite editor that the file /etc/lilo.conf includes this line near the beginning of the file:

    		initrd=/boot/initrd 
    If it does not please edit /etc/lilo.conf to include that line. Now run:
    		lilo 
    to create your ramdisk. After rebooting or by issuing this command:
    		modprobe dpt_i2o 
    you will now be able to use the yast utilities under "adjustments of installation" to format, partition, and mount your drives on the raid controller.

Manual compilation

You can download the patch to the SuSE kernel at: ftp://ftp.suse.com/pub/suse/i386/update/7.0/kernel/dpt_i2o-1.14/dpt-1.14-SuSE7.0.gz. Please note that you will need a version of gcc that is less than 2.91 to compile the dpt_i2o module correctly. We offer no support for this procedure, and this compiler is not present on SuSE 7.0. We recommend if you compile your own kernel, that you use the modules provided for the Smartraid V controllers. The next version of this module should work properly with our current compilers.

Final Note

SuSE is working on a solution to update modules much easier in the future!
Keywords: SMARTRAID, DPT_I2O, ADAPTEC, 2100S, 3200S, 3400S, INSTALL, MODULE, MILLENIUM, SCSI, INITRD, RAMDISK, YAST

Categories: SCSI

SDB-randall_dpt, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 07. Okt 2000
SuSE Linux AG - Last generated: 26. Okt 2000 by randall (sdb_gen 1.40.0)