SOFTPAQ NUMBER: N/A PART NUMBER: N/A FILE NAME: cpq_cpqarray_RedHat73-2.4.22-1.i386.rpm TITLE: Compaq Linux driver for the Smart Array 2xx, 3xxx and 42xx family of controllers for Red Hat Linux 7.3 (2.4.18-3) and 7.3 errata (2.4.18-4) kernels VERSION: 2.4.22-1 LANGUAGE: English CATEGORY: Storage DIVISIONS: N/A PRODUCTS AFFECTED: ProLiant DL760 All Models ProLiant DL580 G2 (1400MHz+), (700-900MHz) ProLiant DL580 (667-1000MHz) ProLiant DL380 G2 (1133MHz+), (667-1000MHz) ProLiant DL380 Packaged Cluster G2 (1266MHz) ProLiant DL360 G2 (1400MHz+), (667-1266MHz) ProLiant DL320 All Models ProLiant ML750 All Models ProLiant ML570 (667-1000MHz) ProLiant ML530 (667-1000MHz) ProLiant ML370 G2 (1133MHz+), (667-1000MHz) ProLiant ML350 G2 (1133MHz+), (700MHz -1GHz) ProLiant ML330e All Models ProLiant ML330 G2 (1000MHz+), (667-999MHz) ProLiant 8500 All Models ProLiant 8000 All Models OPERATING SYSTEM: Red Hat Linux 7.3 (2.4.18-3) and 7.3 errata (2.4.18-4) kernels SYSTEM CONFIGURATION: All shipping configurations PREREQUISITES: N/A EFFECTIVE DATE: August 09, 2002 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.3 to enable Compaq Smart Array controllers. This RPM provides a customer friendly approach to install a pre-built binary drivers. Enhancements: * Provide CPQARRAY 2.4.22-1 for RedHat Linux 7.3 and 7.3 errata kernels * Contains fix for the Sense Surface Status BMIC command returning more than 1K of data * Resolve issue of driver still stays loaded when there is no devices attached to IDA controller * Add IDAGETLOGINFO ioctl * Resolve divide by zero error that happened on the Caldera kernel (calling fdisk on a drive that didn't really exist) * Add support for dynamically adding and removing logical volumes. * /proc file system entry now just "array" instead of "driver/array" * Flush cache on rmmod * Add HDIO_GETGEO_BIG ioctl * Add IDADEREGDISK, IDAREGNEWDISK ioctls * Add COLLECT_BUFFER command support * Add WRITE_FLASH_ROM command support. * Use new PCI DMA routines. A changelog for the Smart Array drivers is available at: ftp://ftp.compaq.com/pub/products/drivers/linux/released/cpqarray/cpqarray_history.htm IMPORTANT: Additional instructions may be viewed: rpm -q -i -p cpq_cpqarray_RedHat73-2.4.22-1.rpm | more Please read this section before proceeding. This RPM will install binary drivers that will only work with the default Red Hat Linux 7.3 kernel version and configuration that they have been built for. Earlier or later versions of Red Hat Linux are not supported. Special actions are required if you have modified the default kernel configuration that Red Hat ships for their Red Hat 7.3 product. If you have modified the default kernel configuration you will need to rebuild the kernel to use the updated drivers after installing the RPM with the --noscripts option. 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 a gzipped tar file in the /opt/compaq/storage_drivers directory after installing the RPM with the --noscripts option. The RPM will not install if it detects that your configuration is different than the Red Hat 7.3 stock configuration. 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_cpqarray_RedHat73-2.4.22-1.i386.rpm You can expect to see a message similar to: # rpm -ihv cpq_cpqarray_RedHat73-2.4.22-1.i386.rpm Preparing... ################################################## cpq_cpqarray_RedHat73 ################################################## Attempting dry run first... ./install --drivers cpqarray --lilo --grub --initrd --noskip --dry-run ---> THIS IS A DRY RUN <--- Cannot find lilo config file /etc/lilo.conf, will not update. 2.4.18-4smp 2.4.18-3 The default kernel image is not the same as the currently loaded kernel image 2.4.18-4smp 2.4.18-4bigmem 2.4.18-4 2.4.18-3 Kernel image is vmlinuz-2.4.18-3 mkdir -p /usr/src/COMPAQ/driver_backup mkdir -p /usr/src/COMPAQ/driver_backup//./lib/modules/2.4.18-3/kernel/drivers/block cp -p /./lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o /usr/src/COMPAQ/driver_backup//./lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o Installing cpqarray for 2.4.18-3 kernel... cp -p ./lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o /./lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o done mkdir -p /usr/src/COMPAQ/driver_backup//./lib/modules/2.4.18-4/kernel/drivers/block cp -p /./lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o /usr/src/COMPAQ/driver_backup//./lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o Installing cpqarray for 2.4.18-4 kernel... cp -p ./lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o /./lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o done mkdir -p /usr/src/COMPAQ/driver_backup//./lib/modules/2.4.18-4bigmem/kernel/drivers/block cp -p /./lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o /usr/src/COMPAQ/driver_backup//./lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o Installing cpqarray for 2.4.18-4bigmem kernel... cp -p ./lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o /./lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o done mkdir -p /usr/src/COMPAQ/driver_backup//./lib/modules/2.4.18-4smp/kernel/drivers/block cp -p /./lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o /usr/src/COMPAQ/driver_backup//./lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o Installing cpqarray for 2.4.18-4smp kernel... cp -p ./lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o /./lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o done /sbin/mkinitrd /boot/cpq-initrd-2.4.18-3.img-1 2.4.18-3 The following changes would have been made to /boot/grub/menu.lst --- /boot/grub/menu.lst Fri Aug 9 13:45:48 2002 +++ /tmp/grub.conf.15688 Fri Aug 9 14:07:16 2002 @@ -1,5 +1,8 @@ System has boot partition vmlinuz-2.4.18-3 +/cpq-initrd-2.4.18-3.img-1 +System has boot partition +vmlinuz-2.4.18-3 /cpq-initrd-2.4.18-3.img-0 System has boot partition vmlinuz-2.4.18-3 @@ -15,8 +18,10 @@ #boot=/dev/cciss/c0d0 # default=3 # commented out by Compaq HBA install script # default=4 # commented out by Compaq HBA install script -default=5 -fallback=4 +# default=5 # commented out by Compaq HBA install script +default=6 +fallback=5 +# fallback=4 # commented out by Compaq HBA install script # fallback=3 # commented out by Compaq HBA install script timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz @@ -50,3 +55,10 @@ kernel /vmlinuz-2.4.18-3 ro root=/dev/cciss/c0d0p2 initrd /cpq-initrd-2.4.18-3.img-0 + +# This entry (no. 6) added by Compaq HBA install script +title cpq-2.4.18-3-1 + root (hd0,0) + kernel /vmlinuz-2.4.18-3 ro root=/dev/cciss/c0d0p2 + initrd /cpq-initrd-2.4.18-3.img-1 + ---> THIS WAS A DRY RUN <--- Dry run succeeded, installing for real... ./install --drivers cpqarray --lilo --grub --initrd --noskip Cannot find lilo config file /etc/lilo.conf, will not update. 2.4.18-4smp 2.4.18-3 The default kernel image is not the same as the currently loaded kernel image 2.4.18-4smp 2.4.18-4bigmem 2.4.18-4 2.4.18-3 Kernel image is vmlinuz-2.4.18-3 Installing cpqarray for 2.4.18-3 kernel...done Installing cpqarray for 2.4.18-4 kernel...done Installing cpqarray for 2.4.18-4bigmem kernel...done Installing cpqarray for 2.4.18-4smp kernel...done /sbin/mkinitrd /boot/cpq-initrd-2.4.18-3.img-1 2.4.18-3 Updating /boot/grub/menu.lst 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_cpqarray_RedHat73-2.4.22-1 The removal of the RPM restores the original cpqarray.o module, builds a new initrd image with the previous (or no) module, and adds a new entry into /etc/lilo.conf or /boot/grub/menu.lst. You can then boot using the newest entry, or a prior known working entry. The successful installation will replace the driver that shipped with Red Hat Linux 7.3 with the 2.4.22 version of the driver, create a new Initial RAM Disk Image (initrd) that contains the 2.4.22 version of the driver and modify /etc/lilo.conf (or /boot/grub/menu.lst) to allow the Linux Loader, lilo, (or grub) to boot using the new ramdisk image. The installation of this RPM modifies the following files: /etc/lilo.conf (or /boot/grub/menu.lst) /etc/lilo.conf.bak-* (backup files) /boot/grub/menu.lst.bak-* (backup files) /boot/cpq-initrd-*.img-* (initrd images) if you have multiple processors installed in your server expect: /lib/modules/2.4.18-3smp/kernel/drivers/block/cpqarray.o if you have a single processor server expect: /lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o Backups of your previous files will be kept in the /usr/src/COMPAQ/driver_backup directory. The driver version can be verified by typing: # strings /lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o | grep Compaq Expect output similar to: %s: Compaq %s Controller Compaq SMART2 Driver (v 2.4.22) 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 cpqarray Expect the following output if you have Symmetric Multi-Processing support enabled: Using /lib/modules/2.4.18-3smp/kernel/drivers/block/cpqarray.o Expect the following output if you have a single processor server: Using /lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.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 observe error messages loading the modules, remove the entire RPM by typing: # rpm -e cpq_cpqarray_RedHat73-2.4.22-1 The removal of the RPM restores the original cpqarray.o module, builds a new initrd image with the previous (or no) module, and adds a new entry into /etc/lilo.conf or /boot/grub/menu.lst. You can then boot using the newest entry, or a prior known working entry. 5. To check whether the driver is loaded properly, type # lsmod Expect to see the module name cpqarray 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_cpqarray_RedHat73-2.4.22-1 7. Uninstalling the driver: 1) Uninstall using RPM by typing # rpm -e cpq_cpqarray_RedHat73-2.4.22-1 Expect to see output similar to: # rpm -e cpq_cpqarray_RedHat73-2.4.22-1 Attempting dry run first... ---> THIS IS A DRY RUN <--- Cannot find lilo config file /etc/lilo.conf, will not update. 2.4.18-4smp 2.4.18-3 The default kernel image is not the same as the currently loaded kernel image 2.4.18-4smp 2.4.18-4bigmem 2.4.18-4 2.4.18-3 Kernel image is vmlinuz-2.4.18-3 mkdir -p /usr/src/COMPAQ/driver_backup Uninstalling /lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o mv /lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o /tmp/cpqarray.o.old.16389 Restoring previous cpqarray.o from backup. cp -f /usr/src/COMPAQ/driver_backup//lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o /lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o rm -f /usr/src/COMPAQ/driver_backup//lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o rm -f /tmp/cpqarray.o.old.16389 Uninstalling /lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o mv /lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o /tmp/cpqarray.o.old.16389 Restoring previous cpqarray.o from backup. cp -f /usr/src/COMPAQ/driver_backup//lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o /lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o rm -f /usr/src/COMPAQ/driver_backup//lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o rm -f /tmp/cpqarray.o.old.16389 Uninstalling /lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o mv /lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o /tmp/cpqarray.o.old.16389 Restoring previous cpqarray.o from backup. cp -f /usr/src/COMPAQ/driver_backup//lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o /lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o rm -f /usr/src/COMPAQ/driver_backup//lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o rm -f /tmp/cpqarray.o.old.16389 Uninstalling /lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o mv /lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o /tmp/cpqarray.o.old.16389 Restoring previous cpqarray.o from backup. cp -f /usr/src/COMPAQ/driver_backup//lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o /lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o rm -f /usr/src/COMPAQ/driver_backup//lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o rm -f /tmp/cpqarray.o.old.16389 /sbin/mkinitrd /boot/cpq-initrd-2.4.18-3.img-2 2.4.18-3 The following changes would have been made to /boot/grub/menu.lst --- /boot/grub/menu.lst Fri Aug 9 14:07:19 2002 +++ /tmp/grub.conf.16389 Fri Aug 9 14:08:10 2002 @@ -1,5 +1,8 @@ System has boot partition vmlinuz-2.4.18-3 +/cpq-initrd-2.4.18-3.img-2 +System has boot partition +vmlinuz-2.4.18-3 /cpq-initrd-2.4.18-3.img-1 System has boot partition vmlinuz-2.4.18-3 @@ -19,8 +22,10 @@ # default=3 # commented out by Compaq HBA install script # default=4 # commented out by Compaq HBA install script # default=5 # commented out by Compaq HBA install script -default=6 -fallback=5 +# default=6 # commented out by Compaq HBA install script +default=7 +fallback=6 +# fallback=5 # commented out by Compaq HBA install script # fallback=4 # commented out by Compaq HBA install script # fallback=3 # commented out by Compaq HBA install script timeout=10 @@ -62,3 +67,10 @@ kernel /vmlinuz-2.4.18-3 ro root=/dev/cciss/c0d0p2 initrd /cpq-initrd-2.4.18-3.img-1 + +# This entry (no. 7) added by Compaq HBA install script +title cpq-2.4.18-3-2 + root (hd0,0) + kernel /vmlinuz-2.4.18-3 ro root=/dev/cciss/c0d0p2 + initrd /cpq-initrd-2.4.18-3.img-2 + ---> THIS WAS A DRY RUN <--- ./uninstall --drivers cpqarray --lilo --grub --initrd --noskip --dry-run Dry run succeeded, uninstalling for real... ./uninstall --drivers cpqarray --lilo --grub --initrd --noskip Cannot find lilo config file /etc/lilo.conf, will not update. 2.4.18-4smp 2.4.18-3 The default kernel image is not the same as the currently loaded kernel image 2.4.18-4smp 2.4.18-4bigmem 2.4.18-4 2.4.18-3 Kernel image is vmlinuz-2.4.18-3 Uninstalling /lib/modules/2.4.18-3/kernel/drivers/block/cpqarray.o Restoring previous cpqarray.o from backup. Uninstalling /lib/modules/2.4.18-4/kernel/drivers/block/cpqarray.o Restoring previous cpqarray.o from backup. Uninstalling /lib/modules/2.4.18-4bigmem/kernel/drivers/block/cpqarray.o Restoring previous cpqarray.o from backup. Uninstalling /lib/modules/2.4.18-4smp/kernel/drivers/block/cpqarray.o Restoring previous cpqarray.o from backup. /sbin/mkinitrd /boot/cpq-initrd-2.4.18-3.img-2 2.4.18-3 Updating /boot/grub/menu.lst Work-around for Controller Number Change Your controller number MAY change after upgrading from an older version of the CPQARRAY driver to version 2.4.20 or higher. This re-numbering is caused because version 2.4.20 of the CPQARRAY driver started using the new PCI API provided by the 2.4 kernel. The previous PCI API provided an interface that scanned for CPQARRAY 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 CPQARRAY controller at the same time. As a result, all CPQARRAY controllers are now ordered in PCI bus scan order. This is only a problem if the server had different types of CPQARRAY controllers installed. For example, if the server had Smart Array 4200, Integrated Smart Array, and a Smart-2/P installed in the server, using the older PCI API, the driver would search for the SA42XX by specifying its PCI Vendor/Device ID and assign controller number values based on PCI bus scan order. It would then search for Integrated Smart Array controler and Smart-2/P, 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 CPQARRAY controllers in PCI bus scan order and assign the controller number as the controllers are found. Another example, if the server had a Integrated Array Controller and a Smart Array 4200 installed, the controller order would look like this using the previous version of the CPQARRAY driver: Integrated Array Controller would be /dev/ida/c1xxxx Smart Array 4200 would be /dev/ida/c0xxxx After upgrading to CPQARRAY driver version 2.4.20 or higher: Integrated Array Controller would be /dev/ida/c0xxxx Smart Array 4200 would be /dev/ida/c1xxxx This will cause your kernel to report that it is unable to mount root because it is looking for root attached to the Integrated Array Controller on /dev/ida/c1xxxx, but it is now /dev/ida/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 4913 In this example 49 means c1 48 = c0 # controller 0 49 = c1 # controller 1 4A = c2 # controller 2 4B = c3 # controller 3 4C = 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 48, our minor is still 13 and the new-kernel is cpq-2.4.18-3 cpq-2.4.18-3 root=4813 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/ida/c1d1p3 swap swap defaults 0 0 Using this example, change the /dev/ida/c1d1p3 entry to /dev/ida/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/ida/c1d0 map=/boot/map prompt message=/boot/message default=linux image=/boot/vmlinuz-2.4.18-3 label=linux read-only root=/dev/ida/c1d1p3 image=/boot/fdfs label=cpq-2.4.18-3 read-only root=/dev/ida/c1d1p3 Specify the correct boot device by changing the boot=/dev/ida/c1d0 entry to boot=/dev/ida/c0d0. In this example the new kernel has the label "cpq-2.4.18-3". Locate the root= entry line in this section and change the root=/dev/ida/c1d1p3 entry to root=/dev/ida/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-2.4.18-3 10) Reboot and your system will now come up normally on the new kernel. Feedback -------- To provide kernel/driver development feedback send email to cpqarray-discuss@lists.sourceforge.net Customer Service -------- For support for Compaq Smart Array controllers, please send email to support@compaq.com. Copyright 2002, Compaq Computer Corporation. All rights reserved. Product names mentioned herein may be trademarks and/or registered trademarks of their respective companies