HP Supported Emulex HBA Driver for 2.4 kernels ---------------------------------------------- This kit contains the scripts and utilities necessary to deploy the HP supported Emulex HBA drivers on Linux. Kit Contents - LPFC Adapter Driver Version 7.xx for Linux 2.4 kernels - LPFC IOCTL (LPFCDFC) Driver - Emulex Rubah library support - Emulex DFC library Supported Distributions - SUSE Linux Enterprise Server 8, Service Pack 3 or higher - Red Hat Enterprise Linux 3 Supported Architectures - x86 - x86_64 Installation To install the driver kit RPM, use the command: # rpm -ivh hp-lpfc-.linux.rpm To upgrade the driver kit RPM, use the command: # rpm -Uvh hp-lpfc-.linux.rpm To extract the files contained in this driver kit without installing the driver (note that you will have to uninstall the driver with the --noscripts option as well so that you do not modify your system during the uninstall): # rpm -i --noscripts hp-lpfc-.linux.rpm You can alter the behavior of the installation by setting certain environmental variables: - If you do not want to install the LPFC Adapter driver module (lpfc.o) you can set the HPELXLPFC environmental variable to "n" and then export it (This can be useful if you do not want to overwrite the installed lpfc.ko module): # export HPELXLPFC=n - If you want to compile the driver for all installed kernels on the system, you can set the INSTALLALLKERNELS environmental variable to "y": # export INSTALLALLKERNELS=y Uninstall To uninstall the driver kit RPM use the command: # rpm -e hp-lpfc Loading the Driver Modules There are two kernel modules that come with the driver kit RPM, lpfc.ko and lpfcdfc.o. The lpfc.o is the main adapter driver. It is loaded from the initrd during system boot so that if the boot path is through the LPFC adapter, the kernel will recognize the external storage device. The IOCTL module, lpfcdfc.ko, is loaded later in the boot process through system V startup scripts. You can load the lpfc.o driver when the system is up by using the modprobe command: # modprobe lpfc lpfcdfc.o can be loaded in a similar manner: # modprobe lpfcdfc Driver Source Code and Utilities The driver kit utilities and source code are located in the /opt/hp/hp-lpfc directory. Here is a summary of the installed components: Source Code /opt/hp/hp-lpfc/lpfc lpfc.ko source code /opt/hp/hp-lpfc/lpfc/ioctls lpfcdfc.ko source code Utilities master.sh Main compilation script build_driver Builds modules from source code edit_conf Edits system configuration files elxlpfc DFC driver startup script make_initrd Creates new ramdisk image compile_all_kernels Compiles driver(s) for all installed kernels set_parm Used by the driver installer to set default lpfc driver parameters Driver Parameters The driver kit installer sets the following lpfc driver parameters: Name Value Description lpfc_nodev_timeout 30 Time in seconds the driver will hold i/o for a device that has gone away lpfc_lun_queue_depth 8 Queue depth per LUN lpfc_discovery_threads 1 The number of kernel threads that are created during device discovery; Setting this value to 1 serializes the discovery process lpfc_inq_pqb_filter 1 Filter the peripheral qualifier bit from INQUIRY data to fix device discovery issues on SLES 8 SP 4 Changing Queue Depth The default queue depth per LUN is 8. If you want to change this setting to increase performance, perform the following steps: 1. Change directory to /opt/hp/hp-lpfc 2. Execute the command "./set_parm -q XX" where XX is the desired queue depth 3. Execute the command "./edit_conf" 4. Execute the command "./make_initrd" 5. Reload the driver or reboot your system If you increase your queue depth and you start to experience i/o errors, it is possible that you are overloading the array too much and will have to reduce the queue depth setting. Libraries This driver kit contains two libraries: libemsdm.so and libdfc.so. The libemsdm.so is the Emulex Rubah library. This library is used by some HP applications to gather information about the Emulex HBAs in the system as well as the targets that are attached to them. The libdfc.so is needed by libemsdm.so as it implements some of the function calls that libemsdm.so makes. Compiling Driver for New Kernels If you install or upgrade the kernel on your system, you can compile the supported HP driver for that kernel before you reboot. You can do this by specifying the new kernel new kernel version with the -m switch of the master.sh script. For example if your kernel version is 2.6.9-5.EL then the command would be: # /opt/hp/hp-lpfc/master.sh -m 2.6.5-5.EL After the script finishes you should be able to reboot into the new kernel and have the HP supported Emulex driver already loaded.