Intel(R) PRO/100 LAN Adapter Linux Driver ===================================================== This file describes the PRO/100 driver for the Linux operating system. This package includes the source code for a Linux driver for the PRO/100 Server and Desktop adapters. This driver is known to build properly on 2.2.x kernels through 2.2.18 and on the 2.4.0 kernel. Intel performed testing on PCs with Intel processors with kernels 2.2.16, 2.2.18 and 2.4.0. The PRO/100 driver is only supported as a loadable module at this time. Intel is not supplying patches against the kernel source to allow for static linking of the driver. Please refer to the documentation supplied with your PRO/100 adapter to answer any questions related to hardware requirements. All hardware requirements listed apply to use with Linux. Building and Installation ========================= Note: For the build to work properly it is important that the currently running kernel MATCH the version and configuration of the installed kernel sources. Also if you have just recompiled your kernel, please reboot. 1. Move the base driver tarball to the directory of your choice. Example is using /home/username/e100 or /usr/local/src/e100 2. untar/unzip archive tar xfz e100-x.x.x.tar.gz 3. Change to the driver src directory cd e100-x.x.x/src/ 4. Compile the driver module make install The binary will be installed as: /lib/modules/[KERNEL_VERSION]/net/e100.o 5. Install the module insmod e100 6. ifconfig eth# where # is interface number 7. Verify interface works ping To build a binary RPM* package of this driver run 'rpm -tb '. Replace with the specific file name of driver. Basic Configuration =================== Once the driver has been installed it can be loaded by running 'modprobe e100'. This will create a new Ethernet device. For example, if no other Ethernet drivers are loaded the PRO/100 will be called eth0. An interface can be activated and assigned an IP address by running: `ifconfig ethX yyy.yyy.yyy.yyy' where ethX is the Ethernet device and yyy.yyy.yyy.yyy is the IP address. Command Line Parameters ==================== The following parameters are used by entering them on the command line with the modprobe (or insmod) command. For example, with two PRO/100 PCI cards, entering: modprobe e100 TxDescriptors=32,128 will load the e100 driver with 32 TX resources for the first card and 128 TX resources for the second card. This configuration will favor the second card. The driver supports up to 16 cards concurrently. TxDescriptors Valid Range: 17-1024 Default Value: 64 This value is the number of transmit descriptors allocated by the driver. Increasing this value will allow the protocol stack to queue more transmits at the driver level. RxDescriptors Valid Range: 8-1024 Default Value: 64 This value is the number of receive descriptors allocated by the driver. Increasing this value will allow the driver to buffer more incoming packets before the driver is required to service an interrupt. XsumRX Valid Range: 0-1 Default Value: 1 1 turns on receive TCP/UDP checksum offload 0 turns off receive TCP/UDP checksum offload Turning this parameter on will turn on receive checksum offloading for TCP/UDP packets if the hardware supports this feature. e100_speed_duplex Valid Range: 0-4 Default Value: 0 example usage: insmod e100.o e100_speed_duplex=4,4 (for two cards) 0 indicates autodetection for both speed and duplex mode 1 indicates a speed of 10Mbps and a duplex mode of half 2 indicates a speed of 10Mbps and a duplex mode of full 3 indicates a speed of 100Mbps and a duplex mode of half 4 indicates a speed of 100Mbps and a duplex mode of full Additional Configuration ======================== Configuring a network driver to load properly when the system is started is distribution dependent. Typically it involves adding an alias line to /etc/conf.modules as well as editing other system startup scripts and/or configuration files. Many popular Linux distributions ship with tools to make these changes for you. Refer to your distribution documentation to learn the proper way to configure a network device for your system. If during this process you are asked for the driver or module name, the driver name for the PRO/100 is 'e100'. Supported Adapters ================== This driver supports the following adapters. Name (board numbers) Intel(R) PRO/100+ Server Adapter (729757-xxx) Intel(R) PRO/100+ PCI Adapter (668081-xxx, 689661-xxx) Intel(R) PRO/100+ Management Adapter (691334-xxx, 701738-xxx, 721383-xxx) Intel(R) PRO/100 S Management Adapter (748566-xxx, 748564-xxx) Intel(R) PRO/100 S Advanced Management Adapter (747842-xxx, 745171-xxx) Intel(R) PRO/100+ Dual Port Server Adapter (714303-xxx, 711269-xxx, A28276-xxx) Intel(R) PRO/100+ PCI Server Adapter (710550-xxx) Intel(R) PRO/100 S Server Adapter (748568-xxx, 748565-xxx) Intel(R) PRO/100 VE Desktop Adapter (A10386-xxx, A10725-xxx, A23801-xxx) Intel(R) PRO/100 VM Desktop Adapter (A14323-xxx, A19725-xxx, A23801-xxx, A22220-xxx, A23796-xxx) Intel(R) PRO/100 S Desktop Adapter (748592-xxx, A12167-xxx, A12318-xxx, A12317-xxx, A12165-xxx, 751767-xxx) Intel(R) PRO/100 S Server Adapter (A10563-xxx, A12171-xxx, A12321-xxx, A12320-xxx, A12170-xxx, 752438-xxx) To verify your adapter is supported, find the Board ID number on the adapter. Look for a label that has a barcode and a number in the format of 123456-001 (six digits hyphen 3 digits). Match this to the list of numbers above. For more information on how to identify your adapter go to the Adapter & Driver ID Guide at: http://support.intel.com/support/network/adapter/pro100/21397.htm Support ======= For general information and peer to peer support go to the forum at: http://support.intel.com/newsgroups/netwadap.htm Read the forum charter, legal information, and posting guidelines before entering the forum. This forum will post new information regarding the driver as it becomes available. If an issue is identified with the released source code on the supported kernel with a supported adapter, email the specific information related to the issue to linux.nics@intel.com. License ======= Copyright (c) 1999-2001, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of Intel Corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * Third-party trademarks are the property of their respective owners. This README applies to Red Hat* 7.0 only and addresses 3 areas: I Compiling of Intel adapter drivers on the Red Hat 7 distribution II Matching the kernel source on the Enterprise Edition III Compiling the 2.4.0 kernel on Red Hat 7.0 with gcc (with gcc ver 2.91 must use kgcc, vers 2.95 & 2.96 must NOT use kgcc). I. For installation of Intel's e100, e1000, and iANS drivers on systems running Red Hat 7 Linux, please ensure the following are installed: - Kernel source package (REQUIRED) - kgcc (REQUIRED because the stock Red Hat kernel is compiled with kgcc.) - a backward-compatible C++ library (required only for the iANS driver.) You can check for the packages by typing rpm -q kernel-source rpm -q kgcc rpm -q compat-libstdc++ (only for iANS driver ) If you are missing a package, install it with the following commands: mount /dev/cdrom /mnt/cdrom (or copy from the web) cd /mnt/cdrom/Red Hat/RPMS/ (or directory copied from the web) rpm -i kernel-source-2.2.16-22.i386.rpm rpm -i kgcc-1.1.2-40.i386.rpm rpm -i compat-libstdc++-6.2-2.9.0.9.i386.rpm (for ians only) Then you MUST reboot. This insures that version.h gets updated. Then install the Intel driver(s) as per their readme files. (Readme .txt files are located on the Intel CD in the directories \Linux\ANS, \Linux\E100 and \Linux\E1000.) II. The Enterprise Version (7.0)- this version was built using extra patches and hence doesn't match the kernel-RPM installed source. You must install the patches from the kernel SRPM and apply them to the source to recreate the proper source tree. The procedure to recreate the 2.2.16-22enterprise kernel source is as follows: 1) install kernel-2.2.16-22.src.rpm and kernel-source-2.2.16-22.i386.rpm 2) make a copy of the source tree installed from kernel-source-2.2.16-22.i386.rpm 3) apply the following patches from the kernel SRPM to the new kernel source tree /usr/src/Red Hat/SOURCES/linux-2.2.16-lfs.patch /usr/src/Red Hat/SOURCES/linux-2.2.16-lfs-bigmem.patch The patches will not install cleanly, but you can ignore the failures. 4) clean out the kernel source tree and reconfigure for the enterprise kernel make mrproper cp configs/kernel-2.2.16-i686-enterprise.config .config make oldconfig make dep 5) Ensure /usr/src/linux is a symlink pointing to the new enterprise kernel source, and in the Makefile change "CC=gcc" to "CC=kgcc". 6) Build the driver. III. Compiling a 2.4.0-X series kernel on Red Hat 7.0 with gcc If the running kernel was compiled with gcc 2.96 or 2.95 you MUST NOT USE KGCC. If the running kernel was compiled with gcc 2.91 you MUST USE KGCC. This can be determined looking at: cat /proc/version