Installation Instructions for SLES:
-----------------------------------

o Make sure "kernel-source" and "kernel-sysms" packages are installed

o Copy binary RPMS to /usr/src/packages/RPMS/<arch> directory

Where <arch> is x86_64, i586 etc.

o Install binary RPM based on the architecture (x86_64, i586 etc.) and kernel type (xen, smp, default etc.)

e.g.,

# uname -a 
Linux qlge-test1 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux

In the above example, architecture is x86_64 and kernel type is "smp", so install "smp" flavour of x86_64 RPM 

rpm -ivh /usr/src/packages/RPMS/x86_64/<vendor>-qlcnic-kmp-smp-<drv_ver>_<kernel_ver>-<release>.x86_64.rpm

o After binary rpms are installed, run "modinfo qlcnic" and verify driver version is <drv_ver>
 
o Run "modprobe qlcnic" to load "qlcnic" module

<kernel_version> can be obtained using "uname -r"


Installation Instructions for RHEL:
-----------------------------------

o Make sure "kernel-headers" package is installed

o Set RPM_BUILD_ROOT to
        /usr/src/redhat for RHEL 5.x
        /root/rpmbuild for RHEL 6.x

o Copy binary RPMS to $RPM_BUILD_ROOT/RPMS/<arch> directory

Where <arch> is x86_64, i686 etc.

o Install the binary RPM based on architecture (x86_64, i686 etc.) and kernel type (PAE, xen etc.)

e.g.,

#uname -a

Linux qlge-test2 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux

In the above example, architecture is i686 and kernel type is "PAE", so install "PAE" flavour of i686 RPM 

rpm -ivh $RPM_BUILD_ROOT/RPMS/i686/kmod-<vendor>-qlcnic-PAE-<drv_ver>-<release>.i686.rpm

Note: In case of RHEL5.x  use --nodeps option to avoid GRO/AER related missing symbols.

o After binary rpms are installed, run "modinfo qlcnic" and verify driver version is <drv_ver>
 
o Run "modprobe qlcnic" to load "qlcnic" module

<kernel_version> can be obtained using "uname -r"


Installation Instructions for Citrix XenServer:
-----------------------------------------------

o Copy the binary rpm to XenServer. Install it there

rpm -ivh <vendor>-qlcnic-modules-xen-<kernel_ver>-<drv_ver>-<release>.i386.rpm. 

e.g., 

rpm -ivh <vendor>-qlcnic-modules-xen-2.6.27.42-0.1.1.xs5.6.0.44.111158-5.0.3-00.i386.rpm

o After binary rpms are installed, run "modinfo qlcnic" and verify driver version is <drv_ver>
 
o Run "modprobe qlcnic" to load "qlcnic" module

<kernel_version> can be obtained using "uname -r"


Uninstalling the driver
-----------------------

1. Unload the driver module
   modprobe -r qlcnic"

Note:

    * qlcnic : "ERROR: Module qlcnic is in use" message may be seen while 
      unloading qlcnic module

      If you see the above error message during unload of the driver, 
      retry the module unload after performing "service netqlremote stop"

2. List the installed qlcnic RPMs
   rpm -qa | grep qlcnic

3. Remove the unwanted qlcnic RPMs using "rpm -e <name of qlcnic rpm>"