我知道我们的服务器有两个物理网络接口(没有亲眼见过,但数据中心的人员确认有两个以太网套接字)。问题是,我只能通过 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 千兆网络连接(修订版 02) 03:02.0 以太网控制器:英特尔公司 82541GI 千兆以太网控制器(修订版 05)
dmidecode 输出:
# dmidecode|grep -i 以太网 类型:以太网 描述:Intel 82541PI 以太网设备 类型:以太网 描述:Intel 82566DM 以太网设备
我从英特尔下载了最新的 e1000 驱动程序,并根据当前内核头文件对其进行了编译。使用的驱动程序版本是 e1000-8.0.13。
# uname -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) 子系统=="net", 驱动程序=="?*", ATTRS{地址}=="00:15:17:28:44:db", 名称="eth0"
并且没有 eth1 的条目。也许这个文件控制加载驱动程序后创建哪些 eth 设备?问题是,我不知道我丢失的接口的 MAC,有什么方法可以找到 MAC?
谢谢!
编辑1:
这是 /sys/class/net 目录的内容
/sys/class/net# ls eth0 本地连接
我看了/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 的系统。 .... - 以下适配器不支持巨型帧: Intel(R) 82562V 10/100 网络连接 Intel(R) 82566DM 千兆网络连接 Intel(R) 82566DC 千兆网络连接 Intel(R) 82566MM 千兆网络连接 Intel(R) 82566MC 千兆网络连接 Intel(R) 82562GT 10/100 网络连接 Intel(R) 82562G 10/100 网络连接 Intel(r) 82566DC-2 千兆网络连接 Intel(R) 82562V-2 10/100 网络连接 Intel(R) 82562G-2 10/100 网络连接 Intel(R) 82562GT-2 10/100 网络连接 Intel(R) 82583V 千兆网络连接 Intel(R) 82578DC 千兆网络连接
有人能通过资料确认我确实需要升级我的内核才能使其正常工作吗?
答案1
尝试获取更新的内核 - 也许蚀刻半甚至升级到lenny。
答案2
也许这个文件控制加载驱动程序后创建哪些eth设备?
该 udev 行仅确保 eth0 始终是同一设备(“持久”部分);由于您的网卡不可见,因此您的 MAC 对您和操作系统来说也是如此。在那里添加 eth1 不会为您创建它。我同意下面的 pQd:尝试更新的内核。
答案3
显然,您需要此卡的 e1000e 驱动程序。其 PCI ID 出现在输出中modinfo e1000e
:
# modinfo e1000e | grep 10BD
别名:pci:v00008086d000010BDsv标准差公元前陣容我*
显然从 2.6.24 或更高版本开始可用。
答案4
您应该能够使用lspci -k
,它将显示每个设备将使用哪个内核模块。