FILE NAME: hp-netxtreme2-5.2.57-3.src.rpm TITLE: HP NC-Series Broadcom 1/10 GbE Multifunction and iSCSI Offload Drivers for Linux VERSION: 5.2.57 RELEASE: 3 LANGUAGE: English CATEGORY: Software Solutions DIVISIONS: Enterprise and Mainstream Servers PRODUCTS AFFECTED: bnx2: HP NC370x Gigabit Server Adapter HP NC371x Gigabit Server Adapter HP NC373x Gigabit Server Adapter HP NC374x Gigabit Server Adapter HP NC380x Gigabit Server Adapter HP NC382x Gigabit Server Adapter bnx2x: HP NC532m Dual Port 10GbE Multifuntion BL-c Adapter HP NC532i Dual Port 10GbE Multifunction BL-c Adapter OPERATING SYSTEM: 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 one of the above operating systems 2GB RAM minimum Latest HP System ROM Build Environment Setup NOTE: Visit the following URL to download the latest System ROM http://welcome.hp.com/country/us/en/support.html Select "Download drivers and software (and firmware)" EFFECTIVE DATE: 08/09/2010 SUPERSEDES: 5.2.27 DESCRIPTION: This RPM contains the HP Tested and Approved Linux bnx2, bnx2x bnx2i and cnic drivers for use with the Server Adapters mentioned in the PRODUCTS AFFECTED section of this document. This package also contains the bnx2id daemon for Broadcom's bnx2i iSCSI driver for HP ProLiant systems. ENHANCEMENTS/FIXES: With this version of the package we have merged the specs for generating the hp-netxtreme2-bnx2id and KMOD/KMP driver. We no longer are releasing the noarch hp-netxtreme2-bnx2id package. An architecture dependent equivalent package is generated as part of building this package. The bnx2id package would require the driver package to work properly and thus a corresponding dependency has been added. Table of Contents ================= Introduction Packaging Build Environment Setup Installing the RPM Package Uninstalling the RPM Caveats Introduction ============ This file describes the Linux drivers for the HP Gigabit Server Adapters mentioned in the PRODUCTS AFFECTED section. After installation, additional information can be found in the RELEASE.bnx2.TXT, RELEASE.bnx2x.TXT, README.bnx2.txt and README.bnx2x.TXT files located under the following directories. For Red Hat: /usr/share/doc/netxtreme2- For SLES: /usr/share/doc/packages/netxtreme After installation, additional information for bnx2i can be found in the RELEASE.bnx2i.TXT and README.bnx2i.TXT files located under the following directories: For Red Hat: /usr/share/doc/bnx2i- For SLES: /usr/share/doc/packages/bnx2i Man pages for bnx2 and bnx2x are delivered to /usr/share/man/man4 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 a KMP source RPM format. KMP packages use macros that determine which kernel flavors are installed on the machine and builds binary packages for each flavor found. You should have the right build environment to compile a binary from the source package. See the "Build Environment Setup" section below. Build Environment Setup ======================== The netxtreme2 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. Red Hat installation: The redhat-rpm-config package is required to be installed so that KMP source RPMs can be built. See the "Caveats" section below for more details. In addition, the associated kernel-devel package needs to be installed for each flavor requiring a kernel module. Ex: kernel-2.6.18.92.el5 would require kernel-devel-2.6.18-92.el5 kernel-PAE-2.6.18.92.el5 would require kernel-PAE-devel-2.6.18-92.el5 Note: The kernel-devel package is also required on OS's that do not have the base kernel installed. See the "Caveats" section below for more details. SUSE SLES Installation: Make sure that kernel-source and kernel-syms packages are installed. kernel-syms package contains symbol versions for the all the flavors that the distribution supports. Installing the RPM Package ============================= 1. This package requires a build environment. Please refer to the "Build Environment Setup" Section before proceeding to the next step. 2. Install the source RPM package. # rpm -ivh hp-netxtreme2-.src.rpm 3. Build the binary RPM for the hp-netxtreme2 and hp-netxtreme2-bnx2id packages. Red Hat Installation: # cd /usr/src/redhat # rpmbuild -bb SPECS/hp-netxtreme2.spec SUSE SLES Installations: # cd /usr/src/packages # rpmbuild -bb SPECS/hp-netxtreme2.spec If you get an error during the build process, refer to the "Build Environment Setup" section. NOTE: Red Hat 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 SPECS/hp-netxtreme2.spec NOTE: One can also build a binary RPM for the specfied kernel flavor as below #rpmbuild --target=i686 -bb SPECS/hp-netxtreme2.spec \ --define "KVER " Note: This spec file will generate a KMOD/KMP driver pacakge and an additional hp-netxtreme2-bnx2id package. The bnx2id package contains the Broadcom's bnx2i iSCSI daemon. The bnx2id package depends on the driver package and one can't install the bnx2id package with out it. 4. Check for the existence of a current version of the hp-netxtreme2 package as follows: Red Hat # rpm -q kmod-hp-netxtrem2- SLES # rpm -q hp-netxtreme2-kmp- If an old version of the package exists, the RPM package should be removed. Remove the corresponding tools package before removing driver package. #rpm -e hp-netxtreme2-bnx2id--.rpm Red Hat # rpm -e kmod-hp-nx_nic- SLES # rpm -e hp-nx_nic-kmp- Verify that the old hp-netxtreme2 package has been removed as follows: Red Hat # rpm -q kmod-hp-netxtreme2- SLES # rpm -q hp-netxtreme2-kmp- 5. Verify if a old version of bnx2, bnx2x, bnx2i and cnic are loaded into the kernel then remove it as follows. However if you are installing the package over network you may want to be careful. It is not absolutely necessary to remove themodules. 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 bnx2x AND #lsmod | grep bnx2i AND #lsmod | grep bnx2 AND #lsmod | grep cnic Before removing the drivers you will have to stop the bnx2id/iscsid running and bring down the interfaces controlled by bnx2x and bnx2 #ifconfig eth down Finally remove the driver #rmmod bnx2x AND #rmmod bnx2i AND #rmmod bnx2 AND #rmmod cnic 6. Install the new binary RPM package. This installs bnx2/bnx2x/bnx2i and cnic drivers. Red Hat # rpm -ivh RPMS//kmod-hp-netxtreme2--..rpm The modules are installed in the following directory: /lib/modules//extra/hp-netxtreme2 Note: The "--nodeps" switch is required when installing to Red Hat EL5 Update 4. See the "Caveats" section below for more details. # rpm -ivh \ RPMS//kmod-hp-netxtreme2--..rpm --nodeps SLES # rpm -ivh RPMS//hp-netxtreme2-kmp--..rpm The modules are installed in the following directory: /lib/modules//updates/hp-netxtreme2 7. If one intends to use offload install the hp-netxtreme2-bnx2id binary rpm # rpm -ivh hp-netxtreme2-bnx2id--.rpm Note: The rpm contents will be installed to the following locations. /etc/rc.d/init.d/bnx2id /sbin/bnx2id 8. 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. 9. 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. If you have a 1Gb Network card use bnx2 below otherwise use bnx2x for 10Gb alias eth0 bnx2 alias eth1 bnx2 For SLES, the configuration file is /etc/modprobe.conf or /etc/modprobe.conf.local 10. You can now reboot your server or restart the network services. Upon reboot the network should start with either bnx2 or bnx2x driver loaded To verify that the driver is loaded use the following command. # lsmod You should find bnx2, bnx2i or bnx2x listed. You can also verify that the correct bnx2, bnx2i or bnx2x driver is loaded through any of the following methods. A. Look for driver load messages in the system log. #dmesg | grep Broadcom You should see messages of the following type, Broadcom NetXtreme II Gigabit Ethernet Dirver bnx2 v1.8.2c(Dec 30, 2008) B. Check the /var/log/messages file for a similar message as indicated in method A. Note: To load the driver from command line use 'modprobe' instead of 'insmod'. Refer to the man pages for lsmod, ifconfig, rmmod, insmod, modprobe, modules.conf and modprobe.conf for more detailed information. Uninstalling the RPM Package ============================= The following command will uninstall the netxtreme2 RPM. Uninstall the bnx2id package before executing the below step Red Hat # rpm -e kmod-hp-netxtreme2- SLES # rpm -e hp-netxtreme2-kmp- The following command uninstall the hp-netxtreme2-bnx2id package. #rpm -e hp-netxtreme2-bnx2id Caveats ======= 1. When installing SLES 10 SP2 select to enable IPv6 so that autoload is enabled for the ipv6 kernel module. The cnic driver which is delivered in this rpm is required for iSCSI offload. It will fail to resolve symbols if IPv6 is disabled because it has a dependency on the ipv6 module. 2. The complete set of Module Parameters supported by the bnx2 and bnx2x and bnx2i drivers are described in the README.bnx2.TXT, README.bnx2i.TXT and README.bnx2x.TXT. Please refer to README.bnx2i.TXT to see how to use bnx2i to support iSCSI initiator. 3. 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. 4. 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. 5. 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 6. 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 netxtreme2 packaged drivers uses the following symbols on RedHat EL5 Update 4 that are not on the whitelist: ksym(vlan_gro_receive) ksym(napi_gro_receive) ksym(napi_gro_flush) ksym(iscsi2_recv_pdu) ksym(iscsi2_conn_start) ksym(iscsi2_host_alloc) ksym(iscsi2_destroy_endpoint) ksym(iscsi2_lookup_endpoint) ksym(iscsi2_session_teardown) ksym(iscsi2_unblock_session) ksym(iscsi2_conn_setup) ksym(iscsi2_conn_error_event) ksym(iscsi2_destroy_conn) ksym(iscsi2_register_transport) ksym(iscsi2_session_setup) ksym(iscsi2_block_session) ksym(iscsi2_unregister_transport) ksym(iscsi2_create_endpoint) ksym(pci_enable_msi) ksym(pci_enable_msix) ksym(pci_disable_msi) ksym(pci_disable_msix) (C) Copyright 2002, 2003 - 2010 Hewlett-Packard Development Company, L.P. Product names mentioned herein may be trademarks and/or registered trademarks of their respective companies.