How to install an OLD network card, which kudzu could not find
Preface:Unfortunately there is no "automatic" tool to help you to install an old no-PNP (plug&play) network card like the sndconfig for the soundcard. We need to load a driver into the system and tell the system which IRQ (interrupt) (sometime the I/O address too) the old netcard uses. Let to have some basics.
The Basic of installing a NEW hardware device: your hardware must be recognized by the system and you may have a driver, which your OS (Operative System) may accept (only necessary if the driver is NOT integrated in the kernel). In most cases the application kudzu (runs automatic at startup) will do all the tasks for you (setting the I/O address, the IRQ and load the required driver). You can check to see if everything is OK by using lsdev and lsmod. (lsmod shows only the drivers/modules which are not built in the kernel. lsmod = list modules ; lsdev = list devices, it is from procinfo*.rpm)
A sample, how lsdev might look like. The network card 3c509 uses IRQ10 and the I/O = 0300.
A sample, how lsmod might look like. The module 3c509 is here, meaning the kernel does not have the driver to the network card 3c509 built-in.
The Basic of installing an OLD hardware device:You need to do all the tasks: need to know which IRQ and I/O address (can be necessary sometime) for your network card and get a driver.
Here we go:
1)Any hardware device may have an IRQ (except those USB-devices). By looking at the file /proc/interrupts (or use lsdev), you can determine which IRQ is unused. There are 15 IRQs from 1-15. The IRQ for COM1 and COM2 are 3 and 4. Usually IRQ 5,9,10,11 are for sound-, graphic- and network-card. Let say IRQ10 is unoccupied.
2) Now we need to "code" the IRQ above into the card. You can either use the jumper on the board or the windows software, which comes together with the card. Read the user’s manual or search for more information at www.google.com or www.yahoo.com or at the card manufacture (you can also do it in the other way: if you already know the IRQ on the card, check /proc/interrupts to see if that IRQ is unoccupied).
3) We are now ready to find a linux driver for the card. Try to find a linux driver for your card from the manufacture’s web site. If it does not help, you might try the drivers, which comes with the linux system. The network drivers are localized at the directory /lib/modules/`uname -r`/kernel/drivers/net. There are drivers for different card manufactures like 3com, HP, Intel, Philips and SMC.
4) I suggest you use the "ne.o" (need to find this one from the internet, Fedora Core 2 does not have it) driver, it is the old popular NE2000 protocol, which many network card manufactures support at that time. (There is a big chance that your card has this NE2000 thing.)
5) Add the next 2 lines in /etc/modules.conf
alias eth0 ne
options ne irq=10
(if you know the I/O address, add io=0xZZZ to the second line above, where ZZZ is the I/O address.)
We create an alias for the name eth0, which points to the driver ne.o in step 4 (leave the .o out). The name eth0 is the name Linux uses to indicate it is the first
network card. IRQ=10 it is the assuming above. The second network card may have the name eth1 etc.
6) After saving the file above, install the new setting into the system (it reads modules.conf).
/sbin/insmod ne
7) Create a file called ifcfg-eth0(containing the IP address, the netmask, the hwaddr etc; don't enter any Gateway if you don't have one) by running system-config-network (I have seen the application creates ifcfg-eth0 at /etc/sysconfig/networking/devices, so just copy it to /etc/sysconfig/network-scripts)
8) Restart the network daemon/service for activating the network card (it reads /etc/sysconfig/network-scripts/ifcfg-eth0).
/sbin/service network restart
If it successes, you will get the following message:
Bringing up interface eth0: [ OK ]
Voilà
Test:
By using ping localhost you can check that the card works properly.
Try lsdev and lsmod to get some feelings :-)).
Troubleshooting:
If step 8 fails, there might be an interrupt conflicted or your network card does not support the NE2000 protocol. Recheck the IRQ at step 2 and 5. Or if you can not carry out the step 2 above, try with IRQ equals 5, 9 or 11 at step 5 (one at a time) and go through the procedure again (step 6 and 7).
If it does not help either, I am afraid that the driver I suggested at step 4 is not compatible with your card. Maybe you can try an another driver at /lib/modules/`uname -r`/kernel/drivers/net which you "think" it must be the one (you can take a look with less in the object file or compare the name of the driver and your NIC). The last solution is to buy a new cheap PCI card (with chipset 8139).
Good luck
Tuan Nguyen, Copenhagen November 2002