我知道在我们的服务器中有两个物理networking接口(没有看到它,但来自数据中心的人确认了两个以太网套接字)。 问题是,我只能通过ifconfig -a看到一个。
起初,这是什么lspci报道:
#lspci -vv | grep -i ethernet 00:19.0以太网控制器:Intel Corporation未知设备10bd(rev 02) 03:02.0以太网控制器:英特尔公司82541GI / PI千兆以太网
运行后
#update-pciids
它看起来像
#lspci -vv | grep -i ethernet 00:19.0以太网控制器:英特尔公司82566DM-2千兆networking连接(rev 02) 03:02.0以太网控制器:英特尔公司82541GI千兆以太网控制器(05版)
dmidecode输出:
#dmidecode | grep -i ethernet
types:以太网
说明:Intel 82541PI以太网设备
types:以太网
说明:Intel 82566DM以太网Devic
我从intel下载了最新的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)
SUBSYSTEM ==“net”,DRIVERS ==“?*”,ATTRS {address} ==“00:15:17:28:44:db”,NAME =“eth0”
eth1没有input。 也许这个文件控制加载驱动程序后创build哪个eth设备? 问题是,我不知道我的丢失的接口的MAC,任何方式来findMAC?
谢谢!
EDIT1:
这里是/ sys / class / net目录的内容
/ sys / class / net#ls eth0 lo sit0
我看了/ lib / udev / write_net_rules这是一个生成/etc/udev/rules.d/z25_persistent-net.rules文件的工具。 这个工具使用/ sys / class / net中的条目,所以现在看起来似乎不太可能改变z25_persistent-net.rules来得到任何帮助。
EDIT2:
从e1000e自述文件
....
该驱动程序支持内核版本2.4.x和2.6.x. 这个驱动包括
支持基于Itanium(R)2的系统。
....
- 以下适配器不支持巨帧:
英特尔(R)82562V 10/100networking连接
英特尔(R)82566DM千兆networking连接
英特尔(R)82566DC千兆networking连接
英特尔(R)82566MM千兆networking连接
英特尔(R)82566MC千兆networking连接
英特尔(R)82562GT 10/100networking连接
英特尔(R)82562G 10/100networking连接
英特尔(R)82566DC-2千兆networking连接
英特尔(R)82562V-2 10/100networking连接
英特尔(R)82562G-2 10/100networking连接
英特尔(R)82562GT-2 10/100networking连接
英特尔(R)82583V千兆networking连接
英特尔(R)82578DC千兆networking连接
有人可以确认(与来源),我真的需要升级我的内核,为了这个工作?
尝试获得更新的内核 – 也许蚀刻一半甚至升级到lenny。
也许这个文件控制加载驱动程序后创build哪个eth设备?
该udev线只保证eth0总是相同的设备(“持久”的一部分); 因为你的networking是隐形的,你的MAC和操作系统也是如此。 添加eth1不会为你创build。 我同意pQd,下面:尝试一个更新的内核。
显然,你需要这张卡的e1000e驱动程序。 其PCI ID出现在modinfo e1000e输出中:
# modinfo e1000e | grep 10BD
别名:pci:v00008086d000010BDsv sd bc sc我*
它显然是从2.6.24或更好。
如果更新操作系统没有太多select,则可以在硬件上放置一个较新的操作系统,并将较旧的操作系统作为虚拟机运行。 这是在较新硬件上支持较旧操作系统的有用方法。 (在某些商业Linux产品中,这反映在生命周期中)
你应该可以使用lspci -k ,它会显示哪个内核模块将用于每个设备。