I have a server running Debian 6. My motherboard has two interfaces, eth0 and eth1. Debian does not have a driver for eth1 (e1000e), so I installed the driver provided by Intel (e1000e-1.4.4). After compiling it into the kernel, I used rmmod e1000e; modprobe e1000e to remove the old module and install the new one. Then I configured the IP using ifconfig eth1 IP. Everything works fine now. Port works. I made sure to edit /etc/network/interfaces so it picks up eth1 on boot up, HOWEVER, when I reboot the system it does not find/recognize the eth1 device. It appears the module has not been loaded. I can get it working again once I execute rmmod e1000e; modprobe e1000e; ifconfig eth1 IP. My guess is I need to config modprobe so it loads the module on boot up. Any help? Thanks!
It sounds as though the initrd has the old e1000e driver and it's getting loaded during initrd. Try rebuilding the initrd and it should pick up the newly-installed version.
Since you're on debian, the command:
The most primitive and IMO easy way to do what you want is by adding:
into /etc/rc.local. This will do the job, but it will be after all services are up. However, the e1000e module is supposed to be in the kernel, so it should be loaded by default. An alternative method is to add:
in /etc/modules. Check this thread which was among the first in my search results for Debian 6 and e1000e. I suggest to find out why the kernel does not upload the e1000e module.