SOFTPAQ NUMBER: N/A PART NUMBER: N/A FILE NAME: cpq_cciss_RedHat71-2.4.6-1.i386.rpm TITLE: Compaq Linux driver for the Smart Array 5i, 5300 Series for Red Hat Linux 7.1 VERSION: 2.4.6-1 LANGUAGE: English CATEGORY: Storage Controllers DIVISIONS: N/A PRODUCTS AFFECTED: ProLiant 8000 ProLiant 8500 ProLiant DL320 ProLiant DL360 ProLiant DL380 ProLiant DL580 ProLiant DL760 ProLiant ML330 ProLiant ML330e ProLiant ML350 1 GHz ProLiant ML370 ProLiant ML530 ProLiant ML570 ProLiant ML750 OPERATING SYSTEM: Red Hat Linux 7.1 SYSTEM CONFIGURATION: All shipping configurations PREREQUISITES: N/A EFFECTIVE DATE: September 14, 2001 ELECTRONIC DISTRIBUTION ALLOWED: Yes SOFTPAQ UTILITY VERSION: N/A SUPERSEDES: N/A DESCRIPTION: This RPM Package Manager (RPM) is used to provide binary driver modules that have been pre-built for Red Hat Linux 7.1 to enable Compaq Smart Array 53xx and Smart Array 5i controllers. Enhancements: This RPM provides a customer friendly approach to install a pre-built binary drivers. Please read this section before proceeding. This RPM will install binary drivers that will only work with the default Red Hat Linux 7.1 kernel version and configuration that they have been built for. Earlier or later versions of Red Hat Linux are not supported. Do not use them if you have modified the default kernel configuration that Red Hat ships for their Red Hat 7.1 product. If you have modified the default kernel configuration you will need to rebuild the kernel to use the updated drivers. For directions to patch the existing driver and rebuild your kernel please refer to the Red Hat documentation. The driver patches will be available in the /usr/src/COMPAQ/SOURCES/7.1_PATCHES directory. The CCISS driver RPM will not install if it detects that your configuration is different than the Red Hat 7.1 stock configuration. Because of changes to the PCI API used in the 2.4 kernel, this RPM will replace the existing driver with a driver that changes the way the controllers are numbered after the PCI bus is scanned. If you have multiple CCISS storage controllers installed and you have the combination of a Smart Array 5300 and either a Smart Array 5i or a Smart Array 532, when the server reboots you will see the message "Cannot mount root". The section titled: Work-around for Controller Number Change, provides detailed instructions how to correct the problem. HOW TO USE: 1. Login as the system administrator (root), download the RPM to a directory on your hard drive and change to that directory. 2. To install the driver type: # rpm -ivh cpq_cciss_RedHat71-2.4.6-1.i386.rpm You can expect to see a message similar to: # rpm -ihv cpq_cciss_RedHat71-2.4.6-1.i386.rpm Preparing... ########################################### [100%] Now Updating your Compaq Driver Files... Making Copies of Files Into Your Kernel... 1:cpq_cciss_RedHat71 ########################################### [100%] i686 Update(s) Completed Successfully! Creating New Boot Image(s)... Boot Image Created... Modifying /etc/lilo.conf To Support Your New Image(s) Added linux Added linux-up Added cpq-rh71up Added cpq-rh71smp * Setup Is Now Complete. Please REBOOT Your Computer NOW!! NOTE: If the installation fails or if you see any warning or error messages, STOP, do NOT reboot the computer. The driver will not be operational and you must uninstall the driver by typing the following command: # rpm -e cpq_cciss_RedHat71 The removal of the RPM restores the original cciss.o module, and restores the initrd image and the /etc/lilo.conf file to their original state. The successful installation will replace the driver that shipped with Red Hat 7.1 with the 2.4.6 version of the driver, create a new Initial RAM Disk Image (initrd) that contains the 2.4.6 version of the driver and modify /etc/lilo.conf to allow the Linux Loader (lilo) to boot the new ramdisk image. The installation of this RPM modifies the following files: /etc/lilo.conf /etc/lilo.conf.save /boot/cpq-rh71up /boot/cpq-rh71smp if you have multiple processors installed in your server expect: /lib/modules/2.4.2-2smp/kernel/drivers/block/cciss.o if you have a single processor server expect: /lib/modules/2.4.2-2/kernel/drivers/block/cciss.o Backups of your previous files will be kept in /usr/src/COMPAQ/RESTORE. The driver version can be verified by typing: # strings /lib/modules/2.4.2/kernel/drivers/block/cciss.o | grep Compaq Expect output similar to: %s: Compaq %s Controller Compaq CISS Driver (v 2.4.6) 3. The driver will be inserted in the Initial RAM Disk Image (initrd) and is automatically loaded every time the server boots. 4. To load the module use the insmod command. Type: # insmod cciss Expect the following output if you have Symmetric Multi-Processing support enabled: Using /lib/modules/2.4.2-2smp/kernel/drivers/block/cciss.o Expect the following output if you have a single processor server: Using /lib/modules/2.4.2-2/kernel/drivers/block/cciss.o NOTE: You will experience error messages if the Smart Array controller is not installed. Please ensure that the hardware is installed properly. NOTE: If the hardware is properly installed and you experience error messages loading the modules, remove the entire RPM by typing: # rpm -e cpq_cciss_RedHat71 The removal of the RPM will restore the driver modules, the /etc/lilo.conf file and the ram disk image to its original state. 5. To check whether the driver is loaded properly, type: # lsmod Expect to see the module name cciss displayed 6. If you attempt to install the RPM on an unsupported system, you will get an error message. The driver will not be operational and must be uninstalled by typing the following command: # rpm -e cpq_ciss_RedHat71 7. To remove the RPM package use the following command: # rpm -e cpq_cciss_RedHat71 Expect to see output similar to: # rpm -e cpq_cciss_RedHat71 Your Previous /etc/lilo.conf Has Been Saved As /etc/lilo.conf.save Added linux * Added linux-up The Package Is Now Uninstalled! Please Check /etc/lilo.conf To Make Sure All Information Is Correct! /lib/module/ /etc/lilo.conf /boot/ 8. List of files added to the system. /usr/src/COMPAQ: total 8 drwxr-xr-x 4 root root 4096 Aug 29 20:09 RESTORE drwxr-xr-x 4 root root 4096 Aug 29 20:09 SOURCES /usr/src/COMPAQ/RESTORE: total 8 drwxr-xr-x 2 root root 4096 Aug 29 20:12 2.4.2-2 drwxr-xr-x 2 root root 4096 Aug 29 20:09 lilo /usr/src/COMPAQ/RESTORE/2.4.2-2: total 56 -rw-r--r-- 1 root root 26384 Aug 29 20:09 cciss.o /usr/src/COMPAQ/RESTORE/lilo: total 4 -rw-r--r-- 1 root root 212 Aug 29 20:09 lilo.conf /usr/src/COMPAQ/SOURCES: total 8 drwxr-xr-x 2 root root 4096 Aug 29 20:12 7.1_PATCHES drwxr-xr-x 3 root root 4096 Aug 29 20:09 lib-i686 /usr/src/COMPAQ/SOURCES/7.1_PATCHES: total 272 -rwxr-xr-x 1 root root 18640 Aug 23 13:47 cciss_2.4.3B_for_2.4.3.patch -rwxr-xr-x 1 root root 19223 Aug 23 13:47 cciss_2.4.3C_for_2.4.3.patch -rwxr-xr-x 1 root root 4208 Aug 23 13:47 cciss_2.4.3D_for_2.4.3.patch -rwxr-xr-x 1 root root 18174 Aug 23 13:47 cciss_2.4.3_for_2.4.3.patch -rwxr-xr-x 1 root root 19552 Aug 23 13:47 cciss_2.4.4_for_2.4.3.patch -rwxr-xr-x 1 root root 31198 Aug 23 13:47 cciss_2.4.5_for_2.4.3.patch -rwxr-xr-x 1 root root 31095 Aug 23 13:47 cciss_2.4.5_for_2.4.4.patch -rw-r--r-- 1 root root 31155 Aug 23 13:47 cciss_2.4.5_for_RH71.patch -rwxr-xr-x 1 root root 2935 Aug 23 13:47 cciss_2.4.6B_for_2.4.5.patch -rw-r--r-- 1 root root 2250 Aug 23 13:47 cciss.README /usr/src/COMPAQ/SOURCES/lib-i686: total 4 drwxr-xr-x 4 root root 4096 Aug 29 20:09 modules /usr/src/COMPAQ/SOURCES/lib-i686/modules: total 8 drwxr-xr-x 3 root root 4096 Aug 29 20:09 2.4.2-2 drwxr-xr-x 3 root root 4096 Aug 29 20:09 2.4.2-2smp /usr/src/COMPAQ/SOURCES/lib-i686/modules/2.4.2-2: total 4 drwxr-xr-x 3 root root 4096 Aug 29 20:09 kernel /usr/src/COMPAQ/SOURCES/lib-i686/modules/2.4.2-2/kernel: total 4 drwxr-xr-x 3 root root 4096 Aug 29 20:09 drivers /usr/src/COMPAQ/SOURCES/lib-i686/modules/2.4.2-2/kernel/drivers: total 4 drwxr-xr-x 2 root root 4096 Aug 29 20:12 block /usr/src/COMPAQ/SOURCES/lib-i686/modules/2.4.2-2/kernel/drivers/block: total 56 -rw-r--r-- 1 root root 26748 Aug 23 13:47 cciss.o /usr/src/COMPAQ/SOURCES/lib-i686/modules/2.4.2-2smp: total 4 drwxr-xr-x 3 root root 4096 Aug 29 20:09 kernel /usr/src/COMPAQ/SOURCES/lib-i686/modules/2.4.2-2smp/kernel: total 4 drwxr-xr-x 3 root root 4096 Aug 29 20:09 drivers /usr/src/COMPAQ/SOURCES/lib-i686/modules/2.4.2-2smp/kernel/drivers: total 4 drwxr-xr-x 2 root root 4096 Aug 29 20:12 block /usr/src/COMPAQ/SOURCES/lib-i686/modules/2.4.2-2smp/kernel/drivers/block: total 56 -rw-r--r-- 1 root root 27348 Aug 23 13:47 cciss.o Work-around for Controller Number Change Your controller number MAY change after upgrading from an older version of the CCISS driver to version 2.4.5 or higher. This re-numbering is caused because version 2.4.5 of the CCISS driver started using the new PCI API provided by the 2.4 kernel. The previous PCI API provided an interface that scanned for CISS controllers by matching the specified PCI vendor/device ID. As the controllers were found for that particular vendor/device ID pair, the controller numbers were assigned. The new API now scans for ALL CISS controller at the same time. As a result, all CISS controllers are now ordered in PCI bus scan order. This is only a problem if the server has Smart Array 5300 installed and either Smart Array 5i or Smart Array 532. For example, if the server had Smart Array 5300, Smart Array 5i, and Smart Array 532 installed in the server, using the older PCI API, the driver would search for the SA5300 by specifying its PCI Vendor/Device ID and assign controller number values based on PCI bus scan order. It would then search for Smart Array 5i and Smart Array 532, they have the same PCI Vendor/Device ID, and assign controller numbers values as it found the controllers. The PCI API routines provided With the 2.4 kernel search for all PCI CCISS controllers in PCI bus scan order and assign the controller number as the controllers are found. Another example, if the server had a Smart Array 5i and a Smart Array 5300 installed, the controller order would look like this using the previous version of the CCISS driver: Smart Array 5i would be /dev/cciss/c1xxxx Smart Array 5300 would be /dev/cciss/c0xxxx After upgrading to CCISS driver version 2.4.5 or higher: Smart Array 5i would be /dev/cciss/c0xxxx Smart Array 5300 would be /dev/cciss/c1xxxx This will cause your kernel to report that it is unable to mount root because it is looking for root attached to the Smart Array 5i on /dev/cciss/c1xxxx, but it is now /dev/cciss/c0xxxx. To get your system to correctly boot again, you must modify the filesystem table file /etc/fstab and the lilo config file /etc/lilo.conf and re-run the Linux install loader, /sbin/lilo. To get the system to boot: When you get the system panic "Unable to Mount root..." two lines above it you will see a message like: VFS: Cannot open root device 6913 In this example 69 means c1 68 = c0 # controller 0 69 = c1 # controller 1 70 = c2 # controller 2 71 = c3 # controller 3 72 = c4 # controller 4 ... the 13 means d1p3 01 = d0p1 # disk 0, partition 1 02 = d0p2 # disk 0, partition 2 ... 10 = d1p0 # disk 1, partition 0 11 = d1p1 # disk 1, partition 1 12 = d1p2 # disk 1, partition 2 13 = d1p3 # disk 1, partition 3 ... 1) when lilo boots do to get lilo text mode 2) hit to get a listing of the available kernels 3) type root= In this example we want to use c0 so the new-major number is 68, our minor is still 13 and the new-kernel is cpq-rh71up cpq-rh71up root=6813 4) Checking of the filesystems will fail (because the fstab entries are wrong), you will then be prompted to "Give root password for maintenance mode". Enter your root password and hit 5) The / filesystem is now mounted read-only, to change the mount flags to make the filesystem writeable type: # mount -o remount rw / 6) Edit /etc/fstab and change the mount points entries. Our example /etc/fstab file contains the following text: LABEL=/ / ext2 defaults 1 1 LABEL=/home /home ext2 defaults 1 2 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner 0 0 none /proc devpts gid=5,mode=620 0 0 /dev/cciss/c1d1p3 swap swap defaults 0 0 Using this example, change the /dev/cciss/c1d1p3 entry to /dev/cciss/c0d1p3. Make sure you search the whole list.. swap is usually at the bottom. 7) Mount all the other filesystems that are listed in your corrected /etc/fstab file with the mountall option to mount. # mount -a 8) Edit the lilo configuration file /etc/lilo.conf to specify the device that contains the master boot record and the device that should be mounted as root. The options are labled "boot=" and "root=" respectively. Our example lilo.conf file contains the following text: boot=/dev/cciss/c1d0 map=/boot/map prompt message=/boot/message default=linux image=/boot/vmlinuz-2.4.2-2 label=linux read-only root=/dev/cciss/c1d1p3 image=/boot/fdfs label=cpq-rh71up read-only root=/dev/cciss/c1d1p3 Specify the correct boot device by changing the boot=/dev/cciss/c1d0 entry to boot=/dev/cciss/c0d0. In this example the new kernel has the label "cpq-rh71up". Locate the root= entry line in this section and change the root=/dev/cciss/c1d1p3 entry to root=/dev/cciss/c0d1p3. 9) run /sbin/lilo. You should not get any errors out of lilo. If you do, you have missed the new kernel entry. # lilo Added linux * Added cpq-rh71up 10) Reboot and your system will now come up normally on the new kernel. Copyright 2001, Compaq Computer Corporation. All rights reserved. Product names mentioned herein may be trademarks and/or registered trademarks of their respective companies