FILE NAME: hp-igb-3.4.7.1-1.src.rpm TITLE: HP NC-Series Intel igb Driver for Linux VERSION: 3.4.7.1 RELEASE: 1 LANGUAGE: English CATEGORY: Software Solutions DIVISIONS: Enterprise and Mainstream Servers EFFECTIVE DATE: 05/17/2012 SUPERSEDES: 3.4.5 Products Affected ================== HP Ethernet 1Gb 4-port 366M Adapter HP Ethernet 1Gb 4-port 366i Adapter HP Ethernet 1Gb 2-port 361T Adapter HP Ethernet 1Gb 2-port 361FLB Adapter HP Ethernet 1Gb 2-port 361i Adapter HP NC362i Integrated DP Gigabit Server Adapter HP NC365T PCI Express Quad Port Gigabit Server Adapter Operating Systems ================== Red Hat Enterprise Linux 6 Update 3 for AMD64/EM64T Red Hat Enterprise Linux 6 Update 3 for x86 Red Hat Enterprise Linux 6 Update 2 for AMD64/EM64T Red Hat Enterprise Linux 6 Update 2 for x86 Red Hat Enterprise Linux 6 Update 1 for AMD64/EM64T Red Hat Enterprise Linux 6 Update 1 for x86 Red Hat Enterprise Linux 5 Update 8 for AMD64/EM64T Red Hat Enterprise Linux 5 Update 8 for x86 Red Hat Enterprise Linux 5 Update 7 for AMD64/EM64T Red Hat Enterprise Linux 5 Update 7 for x86 Red Hat Enterprise Linux 5 Update 6 for AMD64/EM64T Red Hat Enterprise Linux 5 Update 6 for x86 SUSE LINUX Enterprise Server 11 Service Pack 2 for AMD64/EM64T SUSE LINUX Enterprise Server 11 Service Pack 2 for x86 SUSE LINUX Enterprise Server 11 Service Pack 1 for AMD64/EM64T SUSE LINUX Enterprise Server 11 Service Pack 1 for x86 SUSE LINUX Enterprise Server 10 Service Pack 4 for AMD64/EM64T SUSE LINUX Enterprise Server 10 Service Pack 4 for x86 SUSE LINUX Enterprise Server 10 Service Pack 3 for AMD64/EM64T SUSE LINUX Enterprise Server 10 Service Pack 3 for x86 Pre-requisites =============== 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" Description ============ This RPM contains HP tested and approved Ethernet drivers for use with network adapters mentioned in the PRODUCTS AFFECTED section of this document. Enhancements/Fixes =================== 1) This package now creates a OCSD agents RPM that needs to be installed for temperature sensing support on the following adapters: HP Ethernet 1Gb 4-port 366M Adapter HP Ethernet 1Gb 4-port 366i Adapter HP Ethernet 1Gb 2-port 361T Adapter HP Ethernet 1Gb 2-port 361FLB Adapter HP Ethernet 1Gb 2-port 361i Adapter 2) This package now supports RHEL6 Update3 OS. Table of Contents ================= Introduction Packaging Build Environment Setup Installing the RPM Package Uninstalling the RPM Installing OCSD agent daemon Limitations Caveats Introduction ============ This file describes how to build and install the Ethernet driver for network adapters mentioned in the PRODUCTS AFFECTED section. Additional information for the Ethernet drivers can be found in the driver man page which gets installed on installing the doc rpm. The doc and ocsbbd rpms get built along with the KMP binary rpm. The ocsbbd rpm installs the required OCSD agent daemon 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 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 source package. See "Build Environment Setup" section below for more details. Build Environment Setup ======================== This package requires the presence of certain other packages that provide the right build environment to enable building a KMP binary rpm from the source rpm. These packages provide kernel headers, makefiles and symbol files. Please ensure that the following are installed: RHEL installation: 1. redhat-rpm-config package 2. kernel-devel- package 3. kernel--devel- 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- package 2. kernel-syms- package 3. SLES11 requires kernel--devel- package in addition to the above two mentioned Installing the RPM Package ============================= 1. This package requires a specific build environment. Please refer the "Build Environment Setup" Section before proceding. 2. Install the source RPM package. # rpm -ivh hp-igb-.src.rpm 3. Build the binary RPM for the igb driver. RHEL 5: # rpmbuild -bb /usr/src/redhat/SPECS/hp-igb.spec RHEL 6: # rpmbuild -bb ~/rpmbuild/SPECS/hp-igb.spec SLES: # rpmbuild -bb /usr/src/packages/SPECS/hp-igb.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-igb.spec --define "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-igb.spec 4. Check for the existence of a current version of the igb package as follows: RHEL # rpm -q kmod-hp-igb- SLES # rpm -q hp-igb-kmp- If an old version of the package exists, the RPM package should be removed. RHEL # rpm -e kmod-hp-igb- SLES # rpm -e hp-igb-kmp- Verify if the old hp-igb package has been removed as follows: RHEL # rpm -q kmod-hp-igb- SLES # rpm -q hp-igb-kmp- 5. If an older version of igb.ko is loaded into the kernel, remove it as follows. Note: If you are installing the package over network you may want to be careful. It is not absolutely necessary to remove the modules. This step is necessary if you are doing the upgrade on the physical console and you intend to see the new drivers taking over immediately # lsmod | grep igb Bring down the interfaces controlled by igb # ifconfig eth down Uninstall the existing active driver # modprobe -r igb 6. Install the new binary RPM package. RHEL 5 # rpm -ivh \ /usr/src/redhat/RPMS//kmod-hp-igb--..rpm RHEL 6 # rpm -ivh \ ~/rpmbuild/RPMS//kmod-hp-igb--..rpm The modules are installed in the following directory: /lib/modules//extra/hp-igb Note: The "--nodeps" switch is required when installing on RHEL 5.5. See "Caveats" section below for more details. # rpm -ivh \ /usr/src/redhat/RPMS//kmod-hp-igb--..rpm --nodeps SLES # rpm -ivh RPMS//hp-igb-kmp--..rpm The modules are installed in the following directory: /lib/modules//updates/hp-igb 7. Run "modinfo igb | grep version" and verify that the driver version is latest 8. Run "modprobe igb" to install latest "igb" driver module 9. Configure your network setting and address. You may need to refer to your Linux vendor documentation. Helpful network configuration tools such as "yast2" in SLES or linuxconf/redhat-config-network/netconfig in Red Hat exist for easy configuration. For SLES, you must specify the module as igb while configuring the network. The module can be specified in Hardware Details of Advanced configuration 10. Ensure that the /etc/modules.conf file is configured similar to the example listed below. The example below is presented as if more than one adapter is present. If so, one eth# instance should exist for each Ethernet port. Refer to the modules.conf man page for more information. alias eth0 igb alias eth1 igb To verify that the driver is loaded use the following command. # lsmod You should find igb listed. Use ifconfig to bring up the network with the new driver: # ifconfig eth# up Uninstalling the RPM ==================== The following command will uninstall the RPM. Red Hat # rpm -e kmod-hp-igb- SLES # rpm -e hp-igb-kmp- Installing OCSD agent daemon ============================= After installing the driver KMP as detailed in "Installing the RPM package", install the ocsbbd rpm as follows: # rpm -ivh hp-igb-ocsbbd-..rpm This package installs the ocsbbd init scripts which enable ocsbbd agent to be started automatically on boot. Restart the server to load the new driver module and start ocsbbd daemon automatically on boot. To start the service manually, execute: # service ocsbbd start To check current status, execute: # service ocsbbd status Refer ocsbbd man page for further details Please note that installing the KMP package is a pre-requisite Limitations =========== Some Linux distributions may not add the default route back to a specified network device when a network stop/start command is used. Use the route command to add the default router back to the network device. Some Linux distributions may not add the default assigned IP address back to a specified network device when using the following: ifconfig eth(x) down rmmod insmod ifconfig eth(x) up Another step to reassign the IP address back to the device may be required: ifconfig eth(x) Some Linux distributions may add multiple IP addresses with the same system name in the /etc/hosts file when configuring multiple network devices. 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 installed only 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 those packages 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'/': Build Requires: %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 igb driver uses the following symbols on RedHat EL5 Update 4 and Update 5 that is not on the whitelist: ksym(dca_register_notify) ksym(dca3_get_tag) ksym(dca_unregister_notify) ksym(dca_remove_requester) ksym(dca_add_requester) ksym(vlan_gro_receive) ksym(napi_gro_receive) ksym(napi_gro_flush) ksym(pci_disable_sriov) ksym(pci_enable_sriov) ksym(pci_enable_msi) ksym(pci_enable_msix) ksym(pci_disable_msi) ksym(pci_disable_msix) (C) Copyright 2012 Hewlett-Packard Development Company, L.P. Product names mentioned herein may be trademarks and/or registered trademarks of their respective companies.