FILE NAME: hp-e1000-8.0.23-2.src.rpm TITLE: HP NC-Series Intel E1000 Driver for Linux VERSION: 8.0.23 RELEASE: 2 LANGUAGE: English CATEGORY: Software Solutions DIVISIONS: Enterprise and Mainstream Servers PRODUCTS AFFECTED: HP NC340T PCI-X Quad-port Gigabit Server Adapter HP NC310F PCI-X Gigabit Server Adapter HP NC61xx Gigabit Server Adapter HP NC71xx Gigabit 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 one of the above operating systems 256MB 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: 11/04/2010 SUPERSEDES: 8.0.18 DESCRIPTION: This RPM Package contains the HP Tested and Approved Linux e1000 driver for use with the Server Adapters mentioned in the PRODUCTS AFFECTED section of this document. ENHANCEMENTS/FIXES: Updated spec file to support Red Hat EL6 and conform to KMP packaging standards Table of Contents ================= Introduction Packaging Build Environment Setup Installing the RPM Package Uninstalling the RPM Limitations Caveats Introduction ============ This file describes the Linux driver for the HP Gigabit Server Adapters mentioned in the PRODUCTS AFFECTED section. 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. The file name for the package is hp-e1000-.src.rpm. This package will also build a "doc" package which includes a README and man page for this driver. 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 e1000 driver 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 built. 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 required to be installed even if the base kernel is not 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 proceding to the next step. 2. Install the source RPM package. # rpm -ivh hp-e1000-.src.rpm 3. Build the binary RPM for the e1000 driver. Red Hat EL5 Installation: # cd /usr/src/redhat # rpmbuild -bb SPECS/hp-e1000.spec NOTE: Red Hat EL6 stages the src rpm contents in /rpmbuild Red Hat EL6 Installation: # cd ~/rpmbuild # rpmbuild -bb SPECS/hp-e1000.spec SUSE SLES Installations: # cd /usr/src/packages # rpmbuild -bb SPECS/hp-e1000.spec If you get an error during the build process, refer to the "Build Environment Setup" section. NOTE: Red Hat EL5 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-e1000.spec NOTE: On SUSE SLES installations, a KMP package is built for each supported kernel flavor irrespective of the flavor actually installed. However, on Red Hat installations, a KMP package is built only if a particular kernel flavor and its corresponding kernel-devel package is installed. 4. Check for the existence of a current version of the e1000 package as follows: Red Hat # rpm -q kmod-hp-e1000- SLES # rpm -q hp-e1000-kmp- If an old version of the package exists, the RPM package should be removed. Red Hat # rpm -e kmod-hp-e1000- SLES # rpm -e hp-e1000-kmp- Before removing the driver you will have to bring down the interfaces controlled by e1000 #ifconfig eth down Finally remove the driver #rmmod e1000 Verify that the old hp-e1000 package has been removed as follows: Red Hat # rpm -q kmod-hp-e1000- SLES # rpm -q hp-e1000-kmp- 5. Install the new binary RPM package. Red Hat # rpm -ivh RPMS//kmod-hp-e1000--..rpm The e1000.ko module is installed in the following directory: /lib/modules//extra/hp-e1000 Note: The "--nodeps" switch is required when installing to Red Hat EL5 Update 4 and Update 5. See the "Caveats" section below for more details. # rpm -ivh \ RPMS//kmod-hp-e1000--..rpm --nodeps SLES # rpm -ivh RPMS//hp-e1000-kmp--..rpm The e1000.ko module is installed in the following directory: /lib/modules//updates/hp-e1000 6. 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, user may have to specify the module as e1000 while configuring the network. The module can be specified in Hardware Details of Advanced configuration 7. 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 e1000 alias eth1 e1000 For SLES, the configuration file is /etc/modprobe.conf or /etc/modprobe.conf.local 8. You can now reboot your server or restart the network services. Upon reboot the network should start with the e1000 driver loaded To verify that the e1000 driver is loaded use the following command. # lsmod If e1000 is listed then the e1000 driver is loaded. You can also verify that the correct e1000 driver is loaded through any of the following methods. Note that version of the driver loaded should be same as that of the package version. A. Look for driver load messages in the system log. #dmesg | grep Intel You should see messages of the following type, Intel(R) PRO/1000 Network Driver - version x.x.x 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 ==================== The following command will uninstall the RPM. Red Hat # rpm -e kmod-hp-e1000- SLES # rpm -e hp-e1000-kmp- 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. An error regarding the "PCI_BUS_SPEED" may also be encountered. 33MHz is displayed for 33MHz bus speeds, however 66MHz speed will be reported for 50MHz and 100MHz PCI-X busses as well as 66MHz PCI busses 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'/': 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 e1000 driver uses the following symbol on RedHat EL5 Update 4 and Update 5 that is not on the whitelist: ksym(napi_gro_flush) 5. The --define "KVER" option is no longer supported for rpmbuild in order to ensure that the spec file conforms to KMP packaging standards (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.