FILE NAME: hp-nx_nic-4.0.544-2.src.rpm
TITLE: HP NC-Series QLogic nx_nic Driver for Linux
VERSION: 4.0.544
RELEASE: 2
LANGUAGE: English
CATEGORY: Software Solutions
DIVISIONS: Enterprise and Mainstream Servers
PRODUCTS AFFECTED:
HP NC375T PCI Express Quad Port Gigabit Server Adapter
HP NC375i Quad Port Multifunction Gigabit Server Adapter
HP NC522SFP Dual Port 10GbE Server Adapter
HP NC524SFP Dual Port 10GbE Proliant Module
HP NC510F PCIe 10 Gigabit Server Adapter
HP NC510C PCIe 10 Gigabit Server Adapter
HP NC512m Dual Port 10GbE Multifunction BL-c Adapter
HP NC522m Dual Port 10GbE Multifunction BL-c 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/2011
SUPERSEDES: 4.0.539-3
DESCRIPTION:
This RPM contains the HP Tested and Approved Linux nx_nic
driver for use with the Server Adapters mentioned in the
PRODUCTS AFFECTED section of this document.
ENHANCEMENTS/FIXES:
1) Link issues with 1g Virtual Connect switches resolved
2) Link issues with ProCurve 6120G/XG switch resolved
3) KMP is now built for each SLES kernel flavor
Table of Contents
=================
Introduction
Packaging
Build Environment Setup
Installing the RPM Package
Uninstalling the RPM Package
Driver Settings
Driver Messages
Limitations
Caveats
Notes
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 nx_nic 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-nx_nic-<version>.src.rpm
3. Build the binary RPM for the hp-nx_nic and hp-nx_nic-tools package.
RHEL 5:
# rpmbuild -bb /usr/src/redhat/SPECS/hp-nx_nic.spec
RHEL 6:
# rpmbuild -bb ~/rpmbuild/SPECS/hp-nx_nic.spec
SLES:
# rpmbuild -bb /usr/src/packages/SPECS/hp-nx_nic.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-nx_nic.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-nx_nic.spec
Note: This spec file will generate a KMOD/KMP driver pacakge and an
additional hp-nx_nic-tools package. The tools package includes the
firmware files necessary for the driver to work. The driver package
depends on the tools package and one can't install the driver package
with out it.
4. Check for the existence of a current version of the nx_nic package as follows:
RHEL
# rpm -q kmod-hp-nx_nic-<flavor>
SLES
# rpm -q hp-nx_nic-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-nx_nic-<flavor>
SLES
# rpm -e hp-nx_nic-kmp-<flavor>
Verify if the old hp-nx_nic package has been removed as follows:
RHEL
# rpm -q kmod-hp-nx_nic-<kernel flavor>
SLES
# rpm -q hp-nx_nic-kmp-<kernel flavor>
After verifying removal of the driver package, remove corresponding
tools package as follows
# rpm -e hp-nx_nic-tools
5. Verify if an old version of nx_nic OR netxen_nic is loaded into the kernel and
remove it as follows
#lsmod | grep nx_nic
OR
#lsmod | grep netxen_nic
Before removing the driver you will have to bring down the interfaces
controlled by nx_nic or netxen_nic
#ifconfig eth<n> down
Finally remove the driver
#rmmod nx_nic
OR
#rmmod netxen_nic
6. Install an associated version of hp-nx_nic-tools before installing the driver
package
# rpm -ivh RPMS/<arch>/hp-nx_tools-<version>-<arch>.rpm
7. Install the new binary driver RPM package.
RHEL 5
# rpm -ivh \
/usr/src/redhat/RPMS/<arch>/kmod-hp-nx_nic-<flavor>-<version>.<arch>.rpm
RHEL 6
# rpm -ivh \
~/rpmbuild/RPMS/<arch>/kmod-hp-nx_nic-<flavor>-<version>.<arch>.rpm
The modules are installed in the following directory:
/lib/modules/<kernel_version>/extra/hp-nx_nic
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/<arch>/kmod-hp-nx_nic-<flavor>-<version>.<arch>.rpm --nodeps
SLES
# rpm -ivh RPMS/<arch>/hp-nx_nic-kmp-<version>-<flavor>.<arch>.rpm
The modules are installed in the following directory:
/lib/modules/<kernel_version>/updates/hp-nx_nic
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.
For SLES, you must specify the module as nx_nic while configuring the network.
The module can be specified in Hardware Details of Advanced 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.
alias eth0 nx_nic
alias eth1 nx_nic
For SLES, the configuration file is /etc/modprobe.conf or /etc/modprobe.conf.local
Note: If the above entry doesn't exist add it in configuration file.
10. You can now reboot your server or restart the network sevices. After this
the network should start with the nx_nic driver loaded with the correct network
configuration. To verify that the nx_nic driver is loaded, use the following
command.
# lsmod | grep nx_nic
If nx_nic is listed then the nx_nic driver is loaded. You can also verify that
the correct nx_nic 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.
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-nx_nic-<kernel flavor>
SLES
# rpm -e hp-nx_nic-kmp-<kernel flavor>
The following command uninstall the hp-nx_nic-tools package. Uninstall the
driver package before executing the below step
#rpm -e hp-nx_nic-tools
Driver Settings
=================
The following settings are the default and optional parameters for the
NIC.
Speed:
10,0000 Mbps, full-duplex
MTU:
Default: 1500
Range : 0-8000
See the Examples section below on how to set the MTU
TSO:
Default: On
See the Examples section below on how to change TSO
The following optional parameters can be passed to the driver with the
modprobe command. Note: See the Examples section below for an
illustration on how to set the parameters.
tx_desc
Default: 1024
Range : 256-4096 (must be power of two)
This sets the size of the command descriptor rings (tx)
jumbo_desc
Default: 1024
Range : 64-4096 (must be power of two)
This sets the size of the receive ring for jumbo frames
rdesc_10g
Default: 32768
Range : 64-65536 (must be power of two)
This sets the size of the receive ring for "normal" packets
(10GbE ports)
use_msi
Default: Enable (1)
Range: Disable (0) or Enable (1)
This enables or disables MSI.
Examples
The following command illustrates how to set the optional
parameters:
# modprobe nx_nic tx_desc=2048
The following command illustrates how to set the MTU:
# ifconfig eth<x> mtu 8000
The following command illustrates how to change the TSO
parameter:
# ethtool -K eth<x> tso off
Driver Messages
===============
The messages will be logged in the file /var/log/messages. Some Linux
distributions may not display messages to the console. To set messages
to display on the console, at the command line use the following to
control the level at which messages will appear on the console.
# dmesg -n 6
Most systems are set to level 6 by default.
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 <module name>
insmod <module name> <optional parameter changes>
ifconfig eth(x) up
Another step to reassign the IP address back to the device may be required:
ifconfig eth(x) <ip address>
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 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 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 nx_nic packaged drivers uses the following symbols on
RedHat EL5 Update 4 and Update 5 that are not on the whitelist:
ksym(pci_enable_msi)
ksym(pci_enable_msix)
ksym(pci_disable_msi)
ksym(pci_disable_msix)
(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.