Linux – how to configure modprobe to recognize newly installed driver for eth1 on bootup

driversinterfacelinuxmodprobenetworking

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!

Best Answer

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: sudo update-initramfs -u -k all should do the trick.