8.1. Multiple Ethernet Card per Machine

You can use Linux as a gateway between two Ethernet networks. In that case, you might have two Ethernet cards on your server. To eliminate problems at boot time, the Linux kernel doesn't detect multiple cards automatically. If you happen to have two or more cards, you should specify the parameters of the cards in the lilo.conf file for a monolithic kernel or in the conf.modules file for a modularized kernel. The following are problems you may encounter with your network cards.

Problem 1. If the driver(s) of the card(s) is/are being used as a loadable module modularized kernel, in the case of PCI drivers, the module will typically detect all of the installed cards automatically. For ISA cards, you need to supply the I/O base address of the card so the module knows where to look. This information is stored in the file /etc/conf.modules.

Example 8-1. Two ISA ethernet cards

Consider we have two ISA 3c509 cards, one at I/O 0x300 and one at I/O 0x320. For ISA cards, edit the conf.modules file, vi /etc/conf.modules and add:


             alias eth0 3c509
             alias eth1 3c509
             options 3c509 io=0x300,0x320
             
This says that the 3c509 driver should be loaded for either eth0 or eth1 alias eth0, eth1 and it should be loaded with the options io=0x300,0x320 so that the drivers knows where to look for the cards. Note that 0x is important, things like 300h as commonly used in the DOS world wont work.

For PCI cards, you typically only need the alias lines to correlate the ethN interfaces with the appropriate driver name, since the I/O base of a PCI card can be safely detected. For PCI cards, edit the conf.modules file vi /etc/conf.modules and add:


             alias eth0 3c509
             alias eth1 3c509
             

Problem 2. If the drivers(s) of the card(s) is/are compiled into the kernel -monolithic kernel, the PCI probes will find all related cards automatically. ISA cards will also find all related cards automatically, but in some circumstance ISA cards still need to do the following. This information is stored in the file /etc/lilo.conf. The method is to pass boot-time arguments to the kernel, which is usually done by LILO. For ISA cards, edit the lilo.conf file, vi /etc/lilo.conf and add:


             append=ether=0,0,eth1
             

Important: First test your ISA cards without the boot-time arguments in the lilo.conf file, and if this fails, use the boot-time arguments.

In this case eth0 and eth1 will be assigned in the order that the cards are found at boot. Since we have recompiled the kernel, we must use the second method. If the drivers(s) is/are compiled into the kernel to install our second Ethernet card on the system. Remember that this is required only in some circumstance for ISA cards, PCI cards will be found automatically.