Installation Instructions for Alloy NICS: Revision: Date: 1.0 5th September 2002 COMPATIBILITY CHART ............................................................................................................................................ 1 COMPATIBILITY DETAILS......................................................................................................................................... 2 1430TX (REVISION D2/D3):........................................................................................................................................... 2 1430TX (REVISION U6):................................................................................................................................................. 3 1430SC (REVISION U6/M3A): ....................................................................................................................................... 3 1439TX (REVISION R2): ................................................................................................................................................. 4 1439TX (REVISION A1):................................................................................................................................................. 4 1439TX (REVISION 5.1): ................................................................................................................................................ 5 1439TX (REVISION C): ................................................................................................................................................... 5 2420P2: .......................................................................................................................................................................... 5 9400P3 (REV E):............................................................................................................................................................. 6 KERNEL COMPILATION: ............................................................................................................................................ 6 MODULE CONFIGURATION TIPS: ........................................................................................................................... 8 TERMS/GLOSSARY: ...................................................................................................................................................... 9 REFERENCES/LINKS: ................................................................................................................................................... 9 OTHER NOTES: .............................................................................................................................................................. 9 REVISIONS: ..................................................................................................................................................................... 9 Compatibility Chart Alloy NIC Alloy-1430TX Alloy-1430SC Alloy-1439TX Alloy-2420P2 Alloy-9400P3 *1 *2 Tested with kernel 2.4.2-2 (RH7.1) 2.4.19 2.4.2 (RH7.1) 2.4.2-2 (RH7.1) 2.4.19 Driver tulip Status Works*1 tulip 2.4.19 2.4.19 2.4.19 8139too ne tulip Works (Workaround required) *2 Works Works Works *3 Revision D2/D3 boards will not work. All others pick up 100% “options=14” must be given (MII-100BaseTX-FD) 1 *3 BNC/AUI not tested. 10BaseTX-FD will generate a lot of frame errors Compatibility Details 1430TX (Revision D2/D3): Driver : tulip How to Identify: Running the tulip driver should return 4 'PHY(sical)' interfaces: 10BaseTX,10BaseTXFD,100BaseTX,100BaseTX-FD. The back panel should only have one RJ-45 slot, 4 LEDs Chipset is DEC 21143-PA Tested with: - RedHat 7.1 (kernel 2.4.2-2/tulip 0.9.14) - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) - RedHat 7.1 (kernel 2.4.2 (self compiled)/tulip 0.9.13a) Installation: # modprobe tulip Results: This old version of the card does NOT work with Linux. Upgrade to U6, or older revision (before D1). Other Notes: The interface can generate up to 10 carrier errors while it's auto-negotiating a speed. If carriers continue to happen, you may need to check if the other end of the interface supports NWAY negotiation properly. Use "mii-diag" to diagnose what the other link partner advertises as its capabilities. 2 1430TX (Revision U6): Driver : tulip How to Identify: Running the tulip driver should return a 'MII' interface. The back panel should only have one RJ-45 slot, 4 LEDs Chipset is DEC 21143-PD Tested with: - RedHat 7.1 (kernel 2.4.2-2/tulip 0.9.14) - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) - RedHat 7.1 (kernel 2.4.2 (self compiled)/tulip 0.9.13a) Installation: # modprobe tulip Results: Works out of the box with all the above systems. Other Notes: The interface can generate up to 10 carrier errors while it's auto-negotiating a speed. If carriers continue to happen, you may need to check if the other end of the interface supports NWAY negotiation properly. Use "mii-diag" to diagnose what the other link partner advertises as its capabilities. 1430SC Fibre (Revision U6/M3A): Driver : tulip How to Identify: Running the tulip driver should return a 'MII' interface. The back panel should only have one SC fiber connector, 4 LEDs. Chipset is DEC 21143-PD Tested with: - RedHat 7.1 (kernel 2.4.2-2/tulip 0.9.14) - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) - RedHat 7.1 (kernel 2.4.2 (self compiled)/tulip 0.9.13a) Installation: # modprobe tulip options=14 3 Results: - RedHat 7.1 (kernel 2.4.2 (self compiled)/tulip 0.9.13a) - Fails (Half duplex is lit, link is up). Solution: - Upgrade kernel to 2.4.19. See Kernel Compilation summary below - RedHat 7.1 (kernel 2.4.2-2/tulip 0.9.14) - Fails (Half duplex is lit, and link is up). Solution: - Upgrade kernel to 2.4.19. See Kernel Compilation summary below - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) - Works, but duplex is not detected. Use options=14 parameter to force to "MII 100BaseTX-FD". (No this is not a typo, it is a fiber card, but set it to 100BaseTX, not 100BaseFX) Other Notes: The NWAY capability of the "tulip" chipset had not been disabled for this fiber card. As such, it will fail to detect the correct duplex (but correct speed). This will result in poor performance if the card is not forced to "full duplex" mode (options=14) 1439TX (Revision R2): Driver : 8139too How to Identify: Running the 8139too driver should return an identified "8139 rev K" chip Chipset is Realtek 8139 (RTL-8139) Tested with: - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) Installation: # modprobe 8139too Results: Works out of the box with all the above systems. 1439TX (Revision A1): Driver : 8139too How to Identify: Running the 8139too driver should return an identified "8139B" chip Chipset is Realtek 8139 (RTL-8139B) Tested with: - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) Installation: # modprobe 8139too 4 Results: Works out of the box with all the above systems. 1439TX (Revision 5.1): Driver : 8139too How to Identify: Running the 8139too driver should return an identified "8139-C" chip Chipset is Realtek 8139 (RTL-8139C) Tested with: - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) Installation: # modprobe 8139too Results: Works out of the box with all the above systems. 1439TX (Revision C): Driver : 8139too How to Identify: Running the 8139too driver should return an identified "8139-C" chip Chipset is Realtek 8139 (RTL-8139D) Tested with: - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) Installation: # modprobe 8139too Results: Works out of the box with all the above systems. 2420P2: Driver : ne How to Identify: Standard NE-2000 card (ISA) Tested with: - RedHat 7.1 (kernel 2.4.19 (self compiled)/ne) 5 Installation: # modprobe ne irq=<irq no> io=<io port address> Results: Works out of the box with all the above systems. Additional Notes: io/irq switch is not always required. It does autodetect the settings quite accurately. 9400P3 (Rev E): Driver : tulip How to Identify: Chipset is 21040-AA Tested with: - RedHat 7.1 (kernel 2.4.19 (self compiled)/tulip 0.9.15pre1) Installation: # modprobe tulip Results: Works. Does not support 10BaseT-FD. AUI/BNC not tested. Kernel Compilation: I've opted to choose the manual kernel compilation because it's a distribution-independant solution that will work with just about every distribution out there. There is a Kernel-HOWTO that details this method, but I will outline the steps below. Steps in Kernel compilation: 1) Get the kernel archive At this time of writing, the latest is 2.4.19. This can be downloaded from any www.kernel.org mirror. The filename would generally be linux-2.4.19.tar.bz2 (or whatever version you wish to download) Tip: Closest mirror to Australia is ftp://mirror.aarnet.edu.au/pub/linux/kernel/ Tip: Linux kernels are numbered X.Y.Z. If Y is an odd number it's a cutting edge/experimental kernel. Although it's generally stable, it is not recommended using any cutting edge kernels for production systems. 6 2) Decompress the archive # cd /usr/src This is generally where most people prefer to use to compile the source files. # tar xvyf <path to download>/linux-2.4.19.tar.bz2 This will decompress the .tar.bz2 file to /usr/src (current directory). It will create /usr/src/linux (with a lot of files inside). Note: with RedHat distributions, "y" is replaced with "j" as an option to tar 3) Configure kernel # cd linux # make menuconfig This is the configuration menu for the new kernel. Check all the things that you need for your standard operation. In addition to the standard features, you must enable: Networking Support [Y] Ethernet 10/100 Mbit [Y] and the driver for the NIC itself (eg.): DECchip Tulip (dc2114x) PCI support [M] (see Compatibility Chart for list) You may compile the driver as "Y"es for built into the kernel, or "M"odule. I recommend compiling as module, which will assist in dynamic loading/unloading of the driver, at least until it is working flawlessly. Remember to SAVE the changes. 4) Make the kernel Making the kernel comprises of 2 parts the core 'always in memory' kernel, and the modules (loaded upon demand). Before you proceed, the "menuconfig" step above should advice that you run "make dep". This checks the integrity of the kernel sources before compilation begins. # make dep a) Making the core kernel: # make bzImage This makes the "big-compressed" (bz) Image of the kernel. The output will be a file created under "arch/i386/boot/" (from current directory). See #5 for installing it. b) Making modules # make modules 5) Installing the newly compiled kernel. [LILO based bootup] I've again opted for a manual installation in this section to make it distribution independant. The following should work for just about any distribution of Linux. 7 a) Installing the modules: # make modules_install b) Installing the kernel core: # cp arch/i386/boot/bzImage /boot/bzImage-2.4.19 I chose to call it bzImage-2.4.19 to reflect the version number, but you may choose a different name, as long as it's matched in the following config (LILO). # cp System.map /boot/System.map-2.4.19 (optional) This is a text file with a dump of offsets within the kernel. Should anything crash, this file is looked up to cross reference the address to an appropriate function name that caused the crash. This is purely optional. (First time only) Edit "/etc/lilo.conf": Add a new entry to the bootup menu. Copy the current bootup entry and change the "image" to point to your new kernel, and change the "label" to "LinuxNew" (the name for your new bootup option). eg. -image = /boot/bzImage-2.4.19 root = /dev/hda1 label = LinuxNew read-only -I have chosen to "play it safe" with the old kernel by not deleting/replacing the old one. I merely added a new entry into the "boot up" menu. (End First time) # lilo Running lilo (LInux LOader) refreshes the boot up code to recognise the new kernel and configuration. 6) Reboot and try it out. # init 6 or Ctrl-Alt-Del would reboot to your new kernel. Module Configuration Tips: use "lsmod" to list what modules are loaded. use "insmod" or "modprobe" to insert a module into a running kernel. (eg. insmod tulip, or modprobe tulip). modprobe is recommended because it loade all other prerequisite modules to the one you have specified (eg. ne (NE2000) driver has a dependency on 8390 which is automatically loaded if "modprobe"d but not when "insmod"ed) use "rmmod" to remove module from kernel. You can only remove a module if the module is not in use at the time. For network cards, this can be as simple as shutting down the interface (eg. ifconfig eth0 down) instead of always doing modprobe with a parameter, use /etc/modules.conf 's option feature. Example of usage is to tag a new line withe the following content: option tulip options=14 [RedHat] instead of modprobing each reboot, you can assign the ethernet device (eth0, eth1,etc) alias to point to the appropriate driver (once compiled). Example of usage is to change the alias line to: alias eth0 tulip 8 Terms/Glossary: parts preceded by "# " are commands that require root access to execute properly. References/Links: General network drivers and diagnostics http://www.scyld.com/page/support/network/ Donald Becker's tulip driver site http://www.scyld.com/network/tulip.html General Kernel-HOWTO http://www.tldp.org/HOWTO/Kernel-HOWTO.html Other Notes: RedHat 7.3 uses GRUB loader rather than LILO. Instructions not given for kernel install of that version yet. “mii-diag” program can be downloaded from the General network drivers and diagnostics URL below Revisions: 0.9 1.0 : Alvin Sim : 3rd Sep 2002 Initial version. Missing ISA Cards entry. : Alvin Sim : 5th Sep 2002 Added 9400P3, 2420P2. Realigned a lot of fonts, and typo. Corrected order in Compatibility Chart 9