我有一台运行 Debian 6 的服务器。我的主板有两个接口,eth0 和 eth1。Debian 没有 eth1 (e1000e) 的驱动程序,因此我安装了 Intel 提供的驱动程序 (e1000e-1.4.4)。将其编译到内核后,我使用rmmod e1000e
;modprobe e1000e
删除旧模块并安装新模块。然后我使用 配置了 IP ifconfig eth1 IP
。现在一切正常。端口工作正常。我确保编辑/etc/network/interfaces
以便它在启动时拾取 eth1,但是,当我重新启动系统时,它找不到/识别 eth1 设备。似乎模块尚未加载。我执行后可以让它再次工作rmmod e1000e; modprobe e1000e; ifconfig eth1 IP
。我猜我需要配置 modprobe 以便它在启动时加载模块。有什么帮助吗?谢谢!
答案1
听起来好像 initrd 有旧的 e1000e 驱动程序,并且在 initrd 期间加载。尝试重建 initrd,它应该会选择新安装的版本。
由于您使用的是 debian,因此命令:sudo update-initramfs -u -k all
应该可以解决问题。
答案2
最原始和 IMO 最简单的实现方法是添加:
ifdown eth1; modprobe -r e1000e; modprobe e1000e; ifup eth1
放入 /etc/rc.local。这样就可以了,但要等到所有服务都启动后才能生效。但是,e1000e 模块应该在内核中,因此应该默认加载。另一种方法是添加:
e1000e
在 /etc/modules 中。检查此主题这是我在 Debian 6 和 e1000e 搜索结果中的第一个。我建议找出内核不上传 e1000e 模块的原因。