我知道我们的服务器中有两个物理网络接口(还没有看到它,但数据中心的人确认了两个以太网套接字)。问题是,我只能通过 ifconfig -a 看到一个。
首先,这是 lspci 报告的内容:
# lspci -vv|grep -i 以太网 00:19.0 以太网控制器:英特尔公司未知设备 10bd (rev 02) 03:02.0 以太网控制器:英特尔公司 82541GI/PI 千兆以太网
运行后
# 更新 pciids
现在看起来像
# lspci -vv|grep -i 以太网 00:19.0 以太网控制器:英特尔公司 82566DM-2 千兆网络连接 (rev 02) 03:02.0 以太网控制器:英特尔公司 82541GI 千兆以太网控制器(rev 05)
dmidecode 输出:
# dmidecode|grep -i 以太网 类型:以太网 描述:英特尔 82541PI 以太网设备 类型:以太网 描述:Intel 82566DM 以太网设备
我从 intel 下载了最新的 e1000 驱动程序,并针对当前的内核头文件进行了编译。使用的驱动程序版本是 e1000-8.0.13。
# unname -r 2.6.18-6-686
通过串行电缆连接并为 e1000 执行 rmmod/modprobe 后,结果仍然相同。我也为 e1000e-1.0.2.5 尝试了相同的步骤,结果相同。
在 modprobe 之后,dmesg 没有显示任何关于找到 eth1 的信息。
有一个文件/etc/udev/rules.d/z25_persistent-net.rules具有以下内容:
... # PCI 设备 0x8086:0x1076 (e1000) SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:15:17:28:44:db", NAME="eth0"
并且没有 eth1 的条目。也许这个文件控制加载驱动程序后创建哪些 eth 设备?问题是,我不知道我丢失的接口的 MAC,有什么方法可以找到 MAC?
谢谢!
编辑1:
这是 /sys/class/net 目录的内容
/sys/class/net#ls eth0 坐下0
我查看了/lib/udev/write_net_rules这是一个生成/etc/udev/rules.d/z25_persistent-net.rules文件的工具。该工具使用 /sys/class/net 中的条目,因此现在更改 z25_persistent-net.rules 似乎不太可能有任何帮助。
编辑2:
来自 e1000e 自述文件
…… 此驱动程序支持内核版本 2.4.x 和 2.6.x。该驱动程序包括 支持基于 Itanium(R)2 的系统。 …… - 以下适配器不支持巨型帧: 英特尔(R) 82562V 10/100 网络连接 Intel(R) 82566DM 千兆网络连接 Intel(R) 82566DC 千兆网络连接 Intel(R) 82566MM 千兆网络连接 Intel(R) 82566MC 千兆网络连接 英特尔(R) 82562GT 10/100 网络连接 英特尔(R) 82562G 10/100 网络连接 Intel(r) 82566DC-2 千兆网络连接 英特尔(R) 82562V-2 10/100 网络连接 英特尔(R) 82562G-2 10/100 网络连接 英特尔(R) 82562GT-2 10/100 网络连接 Intel(R) 82583V 千兆网络连接 Intel(R) 82578DC 千兆网络连接
有人可以确认(通过消息来源)我真的需要升级我的内核才能使其正常工作吗?
尝试获取更新的内核——也许etch-n-half甚至升级到 lenny。
该 udev 行仅确保 eth0 始终是同一设备(“持久”部分);因为你的网卡是不可见的,所以你的 MAC 对你和操作系统都是不可见的。在那里添加 eth1 不会为您创建它。我同意下面的 pQd:尝试更新的内核。
显然,您需要此卡的 e1000e 驱动程序。它的 PCI ID 出现在
modinfo e1000e
输出中:别名:pci:v00008086d000010BDsv sd bc sc i*
它显然可以从 2.6.24 或更高版本开始使用。
您应该能够使用
lspci -k
,这将显示每个设备将使用哪个内核模块。如果更新操作系统不是一个很好的选择,您可以在硬件上安装一个较新的操作系统,并将较旧的操作系统作为虚拟机运行。这是在较新硬件上支持较旧操作系统的有用方法。(在一些商业 Linux 产品中,这反映在生命周期中)