FILE NAME: hp-qlcnic-5.0.15.2-2.src.rpm TITLE: HP NC-Series QLogic qlcnic Driver for Linux VERSION: 5.0.15.2 RELEASE: 2 LANGUAGE: English CATEGORY: Software Solutions DIVISIONS: Enterprise and Mainstream Servers PRODUCTS AFFECTED: HP StorageWorks CN1000Q Dual Port Converged Network Adapter HP NC523SFP 10Gb 2-port Flex-10 Ethernet Server Adapter OPERATING SYSTEM: Red Hat Enterprise Linux 6 AS/ES for AMD64/EM64T Red Hat Enterprise Linux 6 AS/ES for x86 Red Hat Enterprise Linux 5 AS/ES for AMD64/EM64T Red Hat Enterprise Linux 5 AS/ES 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: ProLiant server supporting above operating systems 2 GB RAM minimum Latest HP System ROM Build Environment Setup NOTE: Visit the following URL and download latest System ROM http://welcome.hp.com/country/us/en/support.html Select "Download drivers and software" EFFECTIVE DATE: 02/08/11 SUPERSEDES: 5.0.11 DESCRIPTION: This RPM contains the HP Tested and Approved Linux qlcnic driver for use with the Server Adapters mentioned in the PRODUCTS AFFECTED section of this document. ENHANCEMENTS/FIXES: 1) Link-up event is now seen after driver load on SLES10 2) KMP is now built for each SLES kernel flavor 3) RHEL 5 update 6 support has been added 4} SLES10 SP4 support has been added Table of Contents ================= Introduction Packaging Build Environment Setup Installing the RPM Package Uninstalling the RPM Package Additional Information Limitations Caveats Introduction ============ This file describes the Linux Ethernet driver for HP NC-Series Qlogic Adapters mentioned in the PRODUCTS AFFECTED section of this document. User guides and additional HP Network Adapter information can be found at: http://h18004.www1.hp.com/products/servers/networking/index-nic.html Packaging ========= The driver is released in Kernel Module Package (KMP) source RPM format. KMP packages use macros that determine kernel flavors for which binary packages need to be built based on spec file rules. It is important to have the right build environment set up in order to compile a binary RPM from the source package. See "Build Environment Setup" section below. Build Environment Setup ======================== The qlcnic package requires the presence of some packages that provide the right build environment. These packages provide kernel headers, makefiles and symbol files, though the last one is suggested only on SLES distributions. RHEL installation: 1. redhat-rpm-config package 2. kernel-devel-<kernel_version> package 3. kernel-<flavor>-devel-<kernel_version> package Eg: kernel-2.6.18.92.el5 requires kernel-devel-2.6.18-92.el5 kernel-PAE-2.6.18.92.el5 requires kernel-PAE-devel-2.6.18-92.el5 See the "Caveats" section below for more details. SLES Installation: 1. kernel-source-<kernel_version> package 2. kernel-syms-<kernel_version> package 3. SLES11 requires kernel-<flavor>-devel-<kernel_version> package as well Installing the RPM Package ============================= 1. This package is a source rpm so it requires a build environment setup for the build. Please refer to the "Build Environment Setup" section before proceding. 2. Install the source RPM package. # rpm -ivh hp-qlcnic-<version>.src.rpm 3. Build the binary RPM for the qlcnic package. RHEL 5: # rpmbuild -bb /usr/src/redhat/SPECS/hp-qlcnic.spec RHEL 6: # rpmbuild -bb ~/rpmbuild/SPECS/hp-qlcnic.spec SLES: # rpmbuild -bb /usr/src/packages/SPECS/hp-qlcnic.spec If you get an error during the build process, refer to the "Build Environment Setup" section. NOTE: One can build binary RPM for a specfic kernel flavor as follows: # rpmbuild -bb SPECS/hp-qlcnic.spec --define "KVER <kver>" NOTE: RHEL 5 x86 installations require the "--target" switch when building on Intel compatible machines. Please see the "Caveats" section below for more details. # rpmbuild --target=i686 -bb /usr/src/redhat/SPECS/hp-qlcnic.spec 4. Check for the existence of a current version of the qlcnic package as follows: RHEL # rpm -q kmod-hp-qlcnic-<flavor> SLES # rpm -q hp-qlcnic-kmp-<flavor> If an old version of the package exists, the RPM package should be removed. Remove the corresponding tools package before removing driver package. RHEL # rpm -e kmod-hp-qlcnic-<flavor> SLES # rpm -e hp-qlcnic-kmp-<flavor> Verify if the old hp-qlcnic package has been removed as follows: RHEL # rpm -q kmod-hp-qlcnic-<kernel flavor> SLES # rpm -q hp-qlcnic-kmp-<kernel flavor> 5. Install the new RPM package. RHEL 5 # rpm -ivh \ /usr/src/redhat/RPMS/<arch>/kmod-hp-qlcnic-<flavor>-<version>.<arch>.rpm RHEL 6 # rpm -ivh \ ~/rpmbuild/RPMS/<arch>/kmod-hp-qlcnic-<flavor>-<version>.<arch>.rpm The modules are installed in the following directory: /lib/modules/<kernel_version>/extra/hp-qlcnic Note: The "--nodeps" switch is required when installing on RHEL 5.x See "Caveats" section below for more details. # rpm -ivh \ /usr/src/redhat/RPMS/<arch>/kmod-hp-qlcnic-<flavor>-<version>.<arch>.rpm --nodeps SLES # rpm -ivh RPMS/<arch>/hp-qlcnic-kmp-<version>-<flavor>.<arch>.rpm The modules are installed in the following directory: /lib/modules/<kernel_version>/updates/hp-qlcnic 6. After binary rpms are installed, run "modinfo qlcnic" and verify driver version is <drv_ver> 7. Run "modprobe qlcnic" OR "insmod /lib/modules/<kernel_version>/extra/qlcnic/qlcnic.ko" to install "qlcnic" module Uninstalling the RPM ==================== The following command will uninstall the RPM. Red Hat # rpm -e kmod-hp-qlcnic-<kernel flavor> SLES # rpm -e hp-qlcnic-kmp-<kernel flavor> Limitations =========== None Caveats ======= 1. The rpmbuild will fail the dependency check when building the non-base (xen,pae,etc) kernel when the kernel-devel package is not installed. Example: If the OS only included the PAE kernel then the user would need to install the kernel-pae-devel and kernel-devel packages. 2. The use of a "--target" switch is required so that rpmbuild does not try to find an i386 kernel on the system. If the "--target" switch is not used then the build will fail with bizarre messages stating that specific kernel packages are not installed on the machine yet these pacakges do not exist. 3. The rpmbuild will fail if the redhat-rpm-config package is not installed because it cannot resolve the %kernel_module_package_buildreqs macro. The error will be similar to the following: error: line xx: Dependency tokens must begin with alpha-numeric,'_'or'/': BuildRequires: %kernel_module_package_buildreqs 4. RPM uses KMP packaging dependency data to ensure the dependencies are met before installing the binary RPM. Red Hat maintains a whitelist of kernel symbols which RPM uses to validate against the KMP binaries. Some symbols may be in the kernel but not on the whitelist which results in a failed binary RPM install. The user will need to use the "--nodeps" switch when installing the binary. The qlcnic packaged drivers uses the following symbols on RedHat EL5 Update 4 and Update 5 that are not on the whitelist: ksym(pci_get_domain_bus_and_slot) ksym(pci_cleanup_aer_uncorrect_error_status) ksym(pci_disable_pcie_error_reporting) ksym(pci_enable_pcie_error_reporting) ksym(napi_gro_flush) (C) Copyright 2002, 2003 - 2011 Hewlett-Packard Development Company, L.P. Product names mentioned herein may be trademarks and/or registered trademarks of their respective companies.