Additional Installation Notes for Various Linux Distributions Broadcom BCM5700 Linux Driver Version 7.4.12 12/17/2004 Broadcom Corporation 16215 Alton Parkway, Irvine, CA 92619-7013 Copyright (c) 2000-2004 Broadcom Corporation All rights reserved Table of Contents ================= Introduction Limitations Prerequisites Prepare Kernel Source Tree (United Linux 1.0 Distributions) Enable Loadable Module Support on Turbolinux 10 Prepare Cross-Compiler and Kernel Source Tree on ppc64 (SuSE SLES8 ppc) Remove tg3 Driver Edit /etc/modules.conf Patching PCI Files (Red Hat - Optional) Patching module-info Files (Red Hat - Optional) Network Installation (Red Hat) Message-"no version for "struct_module" found" Introduction ============ This file contains additional installation notes for the Broadcom NetXtreme bcm5700 Linux driver that are specific to certain Linux distributions. General installation notes are contained in README.TXT. Limitations =========== The current version of the driver has been tested on selected Linux distributions for i386, ia64, and x86_64. Limited testing has also been done on PPC64 systems. Testing is normally focused on the following distributions: Red Hat 9.0, 2.1AS and 3.0EL SuSE 9.0 and SLES8 UnitedLinux 1.0 Mandrake 9.2 Prerequisites ============= In order to compile your Broadcom NetXtreme Linux driver, you must first have a properly compiled kernel source tree which matches your running kernel. You must also have a working C/C++ compiler and all the associated dependencies installed before attempting to compile the driver. On Red Hat distributions, if you have opted for a custom installation, you need to select "Development Tools" and "Kernel Development" to install the necessary tools and kernel source tree. On United Linux based distributions, you must change the software packages installed by default when presented with the Installation Settings. Under software selelction, select "Detailed Selection". In this area ensure that "C/C++ Compiler and Tools" is selected. This should install the C/C++ compiler as well as the kernel-source files. For further assistance, please review your Linux documentation. Prepare Kernel Source Tree (United Linux 1.0 Distributions) =========================================================== The following instructions pertain only to United Linux 1.0 based distributions (SuSE 8.x, SCO4.0, etc.) These steps are not needed for Red Hat, Mandrake and other similar distributions. 1. Prepare the kernel source tree. These steps may be necessary in order to compile a driver that will match your running kernel. cd /usr/src/linux-.SuSE cp /boot/vmlinuz.config .config cp /boot/vmlinuz.version.h include/linux/version.h cp /boot/vmlinuz.autoconf.h include/linux/autoconf.h make oldconfig make dep 2. Now build and install the Broadcom Linux driver using either the rpm or tar archive installation files. The procedures are found in README.TXT. Enable Loadable Module Support on Turboilinux 10 ================================================ When attempting to compile the driver, the following message may be displayed: The present kernel configuration has modules disabled. Type 'make config' and enable loadable module support. Then build a kernel with module support enabled. Do the following to enable loadable module support: cp /usr/src/configs/kernel-x.x.x-i586.config /usr/src/.config Prepare Cross-Compiler and Kernel Source Tree on ppc64 (SuSE SLES8 ppc) ======================================================================= 1. Install the kernel source tree (e.g. 2.4.21-111-pseries64). 2. Install the ppc64 cross-compile binutils. 3. cd to the Linux kernel source directory (e.g. /usr/src/linux) 4. Edit the top level kernel Makefile and change the CROSS_COMPILE variable to: CROSS_COMPILE=/opt/cross/bin/powerpc64-linux- (Verify that this is the correct path to the cross-compile binutils) 5. Run the following to prepare the kernel source tree: make distclean cp arch/ppc64/defconfig.pseries .config make oldconfig make dep 6. Now build and install the Broadcom Linux driver using either the rpm or tar archive installation files. The procedures are found in README.TXT. Remove tg3 Driver ================= Many newer distributions and newer kernels may already contain and use the tg3 driver by default for Broadcom BCM5700 series devices. While tg3 is a fully functioning driver written by Red Hat, Broadcom recommends users to use the bcm5700 driver written and tested by Broadcom. 1. Use ifconfig to bring down all interfaces used by tg3, then use `rmmod` to remove the module if loaded. The following assumes eth0 and eth1 are both Broadcom devices using the tg3 driver. ifconfig eth0 down ifconfig eth1 down rmmod tg3 2. Now it may be necessary to manually edit your /etc/modules.conf file to allow the bcm5700 driver to load at boot time instead of the tg3 driver. See below. Edit /etc/modules.conf ====================== If there is an alias entry in your /etc/modules.conf file referencing the tg3 driver, make sure that you replace tg3 with bcm5700. Otherwise, add the entry below if necessary. Example: alias eth0 bcm5700 Patching PCI Files (Red Hat - Optional) ======================================= To use the Red Hat kudzu hardware detection utility, and to list the BCM5700 series devices using lspci, a number of files containing PCI vendor and device information need to be patched with information on the BCM5700 series NICs. Patch files for Red Hat some of the latest Red Hat distributions are included. Apply the appropriate patch by running the patch command. For example, on Red Hat 9.0 for i386, apply the patch by doing the following: patch -N -p1 -d /usr < pci-rh90-i386.patch Run kudzu: kudzu Patching module-info Files (Red Hat - Optional) =============================================== To use Red Hat's graphical network administration tool neat, the module-info files need to be patched. Apply the appropriate patch by running the patch command. For example, on Red Hat 8.0 for i386, apply the patch by doing the following: patch -N -p1 -d /boot < modinfo-rh80-i386.patch Run neat: neat Network Installation (Red Hat) ============================== For network installations through NFS, FTP, or HTTP (using a network boot disk or PXE), a driver diskette that contains the bcm5700 driver is needed. The driver diskette images for the most recent Red Hat versions are included. Boot drivers for other Linux versions can be compiled by modifying the Makefile and the make environment. Further information is available from Red Hat's website. To create the driver diskette, select the appropriate image file, gunzip it, and do the following: dd if=dd.img of=/dev/fd0H1440. Message -"no version for "struct_module" found" ============================================== If you see this message, bring the kernel version.h file up to date by executing the following command, then remake the bcm5700 module. (cd /usr/src/linux; make include/linux/version.h)