Installation of Ethernet Controller 3C940 on Mandrake 9.2

Last modified: March, 23rd 2005.

The context of this story is the post-installation of a new computer in an academic laboratory. I am just wondering how someone with a single computer (and no Windows installed), with no experience of a Unix-like system, and without any basic knowledge of networking concepts would have done what I successfully achieved and that is described below.

During the installation of Mdk-9.2, I had the feeling that this 3C940 Ethernet Controler device could be a potent source a trouble. For sure, it is not listed in the hardware compatibility list, but who cares about this before installation?

The motherboard (ASUSTEK P4P800 DELUXE) of my computer comes with a CD that contains a linux driver named 3C2000 that should be compatible with the 3C940 device. Great. It just needs to be compiled to produce a 3c2000.o file. The README file says that the kernel sources have to be present on the computer.

The package manager had nothing like kernel-sources to install. I made the OS installation from downloaded ISO files. Going back to a network-connected computer, if found that the sources are available from After a lengthy download (40 MB or so) and file transfer by means of an USB key (no network available for the moment...), the package was installed. A make later, the driver object file was build.

I typed insmod 3c2000.o and then ifconfig eth0 x.y.z.t netmask up (as root), the IP number of my machine being x.y.z.t. I was then able to ping on and to x.y.z.t, which is good start. If I wanted to go a bit further, I had first to go through the local gateway. Again, I found on the web that route add default gw x.y.z.254 should do the work, and it really did (The IP of the gateway is x.y.z.254, of course). I was then able to ping to the University DNS server.

Configuration of the DNS server was straighforward by populating the /etc/resolv.conf:
name server
name server xx2.yy2.zz2.tt2

I was not really satisfied because my computer was still anonymous (named localhost by default) and that my preceeding effort are not permanently fixed in the system.

A look to the web (thanks, google !) led me to and teached me how to fill the /etc/sysconfig/network-scripts/ifcfg-eth0 and /etc/sysconfig/network files, so that all requested network-related information is centralized. I also filled the /etc/hosts file with the IP number and name of my computer.



/etc/hosts: localhost
x.y.z.t my_computer

The auto-configuration at start-up time was achieved by placing 3c2000.o in /lib/modules/kernel_version/kernel/drivers/net, running depmod (as root) and adding alias eth0 3c2000 to /etc/modules.conf. I found that at (in French).

So, everything related to web access is now fully functional.

Jean-Marc Nuzillard