Posted 2003-03-05T15:05:00+01:00 in unix
We bought a Dell 1650 rack server at the office to support our development work. I installed Debian 3.0r0 on it.
The Intel Gigabit networking card is not supported in Debian 3.0r0.
I tried some precompiled versions of the driver provided by some people on the internet, but they didn't work. So...
Get the source tar.gz from intel.com/support. Look for "Linux Gigabit Adapter Base Driver [e1000-4.6.11.tar.gz]".
In order to be able to compile this driver, you'll need to have
the kernel sources ready somewhere.
I just did a fresh Debian install from CD and didn't want to compile my own
kernel. I wanted to get up and running as fast as possible.
I did an apt-get -u install kernel-source-2.4.18,
which gets the kernel source.
My Debian 3.0r0 says it's 2.4.18-bf2.4, although that't not what it says in include/version.h. I edited version.h to match uname, since I didn't want to compile the kernel. (I should probably read up on the Debian kernel-package package.)
Create a symlink from /usr/src/linux-2.4.18 (or whatever `uname -r` tells you) to your kernel source directory.
Copy the kernel config file from /boot/config to
the kernel source directory and name it .config.
Run `make oldconfig` and `make dep`. The kernel source tree is now set up and ready for compiling, which I won't do. It is also properly to be used in compiling the driver.
Now I'm ready to create the e1000 driver: do a `make` and, as root, a `make install`. The install target should place the .o module in the right /lib/modules directory.
Do a `depmod -a` and a `modprobe e1000', it should load the driver, recognize the interface/network cards and register both eth0 and eth1.
I'm using dhcp, so I'm running debian's `dhclient' to get the interfaces up and obtain an ip-address.
Having done that, I was no on the network, but I had to make sure that would still be the case after a reboot:
Add references to eth0 and eth1 in /etc/network/interfaces:
auto lo eth0 eth1
eth0 inet dhcp
eth1 inet dhcp
Add module loading instructions to
/etc/modutils/networking:
alias eth0 e1000
alias eth1 e1000
Run `update-modules', which will add the networking file to
/etc/modules.conf. This will cause one of the init scripts to run a
`modprobe e1000' to set up the eth0 alias. eth1 Is loaded automatically
along with eth1, because the e1000 driver obviously checks for all network
card devices. Another option would be to add a line e1000 to
/etc/modules.
Let's reboot. At boot time /etc/init.d/networking runs ifup which uses the interfaces file to configure networking.
That's it. You probably want to read the man pages on ifup, interfaces, modules.conf, modprobe, insmod and update-modules.