FILE NAME:      hp-qla4xxx-5.01.01.04-2.src.rpm

TITLE:          QLogic iSCSI Driver for Linux

VERSION:        5.01.01.04-2

LANGUAGE:       English

CATEGORY:       Software

DIVISIONS:      Enterprise and Mainstream Servers

PRODUCTS AFFECTED: QLogic QMH4062 1GbE iSCSI Adapter for c-Class BladeSystem

OPERATING SYSTEM:  
      Red Hat Enterprise Linux 5 AS for AMD64/EM64T 
      Red Hat Enterprise Linux 5 AS for x86 
      SUSE LINUX Enterprise Server 11 for AMD64/EM64T 
      SUSE LINUX Enterprise Server 11 for x86
      SUSE LINUX Enterprise Server 10 for AMD64/EM64T
      SUSE LINUX Enterprise Server 10 for x86

PREREQUISITES:  HP BladeSystem c-Class server supporting one of the above operating systems

EFFECTIVE DATE: 02/02/2010

SUPERSEDES:     N/A

DESCRIPTION:    This RPM contains the iSCSI driver for QLogic QMH4062 1GbE iSCSI Adapter for HP BladeSystem c-Class for Linux.

ENHANCEMENTS/FIXES: Updated the RPM spec file for KMP (Kernel Module
Packaging) 

Table of Contents
=================
  Introduction
  Packaging
  Build Prerequisites
  Installing the RPM Package
  Uninstalling the RPM Package
  Driver Parameters
  Limitations
  
Introduction
============
This file describes the Linux driver for the HP iSCSI HBA Adapters mentioned 
in the PRODUCTS AFFECTED section of this document. 


Packaging
=========
The driver is released in a source RPM format. The file name for
the package is hp-qla4xxx-<version>.src.rpm. Please read the 'build 
prerequisites' and 'Installing rpm' sections to convert the source
rpm to binary rpm which is the final installable

Build Prerequisites
========================
The qlogic driver requires the presence of current header and symbol
files to build the binary module. The packages that provide them are
different on Red Hat and SLES

   Red Hat installation:
   Appropriate kernel-devel package has to be installed.
	
   SLES Installation:
   Appropriate kernel-source and kernel-syms file has to be installed

Installing the RPM Package
=============================
1. This package requires certain other packages to be installed. 
   Refer to the "Build prerequisites" section before proceeding further

2. Install the source RPM package.
   
   # rpm -ivh hp-qla4xxx-<version>.src.rpm

3. Build the binary RPM for the hp-qla4xxx driver.

   Red Hat Installation:
   # cd /usr/src/redhat
   # rpmbuild -bb SPECS/hp-qla4xxx.spec

   SLES Installations:
   # cd /usr/src/packages
   # rpmbuild -bb SPECS/hp-qla4xxx.spec

	caveat: On Redhat 5 32 bit architecture an additional switch has 
	to be passed to the rpmbuild to build the kmp packages
	
	#rpmbuild --target=i686 -bb SPECS/hp-qla4xxx.spec

4. Check for the existence of a current version of the hp-qla4xx package as
   follows:

        # rpm -q hp-qla4xxx

        If an old version of the package exists, the RPM package should be
        removed.

        # rpm -e hp-qla4xxx

        Remove hp-qla4xxx. 
 
        # rmmod qla4xxx

        Verify that the old hp-qla4xxx package has been removed as follows:

        # rpm -q hp-qla4xxx

5. Install the new RPM package. This installs the qla4xxx driver. Do not use 
   the U (Upgrade) flag in the RPM command below - previous qla4xxx drivers 
   must be removed as described in step 4 above before installing this
   version.

   # rpm -ivh RPMS/<arch>/hp-qla4xxx-<version>.<arch>.rpm 

   The qla4xxx.ko module is installed in the following directory on SLES:

   /lib/modules/<kernel_version>/extra/hp-qla4xxx/

   and on RedHat at

   /lib/modules/<kernel_version>/updates/hp-qla4xxx/


7. Ensure that the /etc/modprobe.conf file is configured similar to the
   example listed below. 

   alias scsi_hostadpater1 qla4xxx

   For SLES, the configuration file is  /etc/modprobe.conf.local

   Note: If the above entry does not exist, add it in the configuration file.

8. Reboot your server. Upon reboot the qla4xxx driver should be loaded.
	verify by executing the below command.

   # lsmod
   If qla4xxx is listed then the qla4xxx driver loaded.

Uninstalling the RPM Package
=============================

The following command will uninstall the qla4xxx RPM.

     # rpm -e hp-qla4xxx-<version>


Driver Parameters
==============================

   1  System Parameters
   ========================

Most driver and device parameters are exported via sysfs as a
regular file, so you can change parameters using regular commands.
Device parameters are located in the following path:

/sys/class/scsi_device/<host>:<bus>:<target>:<lun>/device/

*Timeout parameter.  In the 2.6 kernel, a command timeout is 
30 seconds. If a command takes longer than 30 seconds, which could 
happen in a network environment, it may be necessary to increase
the timeout value in sysfs for the device. For example:

	echo 60  >/sys/class/scsi_device/4:0:0:0/device/timeout

*Rescan parameter. This parameter initiates a rescan on the device. 
The Linux driver does not recognize dynamically added devices
automatically; therefore, a manual rescan must be performed. 
The following is an example of the rescan parameter:

	echo "- - -" > /sys/class/scsi_host/hostX/scan
For example:
	echo "- - -" > /sys/class/scsi_host/host6/scan

Where "hostX" is replaced by your "Host number".


    2  Multiple LUN Support
    ==========================

Support for multiple LUNs can be configured as follows:

If the SCSI Mid-Layer is compiled as a module, add the following
line to the loadable module configuration file modprobe.conf to 
scan for multiple LUNs. The file is located in the /etc directory. 

	options scsi_mod max_luns=255
	
NOTE:  If you have multiple adapters, set max_luns to the
          largest number of LUNs supported by any one of these adapters.

    3  Driver Command Line Parameters
    =================================

The driver gets its parameters from the command line itself or from the
modprobe 'option' directive found in the modules.conf file. 
The parameters are in the <keyword>=value format. For example:  

              ql4xdiscoverwait=60

In this format, <keyword> is one of the following option parameters:

Usage: insmod qla4xxx <keyword>=value

*ql4xmaxqdepth. This parameter defines the maximum queue depth 
reported to the SCSI Mid-Level per device. The queue depth specifies
the number of outstanding requests per LUN. (obsolete with sysfs)
Default=2

*ql4xdiscoverywait. This parameter defines how long to wait for a port
during boot-time.
Default=60
	
*ql4xcmdretrycount. This parameter defines the maximum number of
SCSI Mid-Level retries allowed per command.
Default: 20

*extended_error_logging. This parameter enables debug and defines
the debug level to use. The debug information is written to the 
/var/log/messages file.
Default=0  (disable)

All the available parameters can be viewed using the following command:

	# modinfo -p qla4xxx.ko

 Usage examples:

    # insmod qla4xxx.ko ql4xdiscoverwait=60


Limitations
===========

(C) Copyright 2010  Hewlett-Packard Development Company, L.P.
Product names mentioned herein may be trademarks and/or registered trademarks
of their respective companies.