- 论坛徽章:
- 36
|
本帖最后由 Godbach 于 2011-05-06 11:58 编辑
--------------
解决方法一:
ACTION=="add", SUBSYSTEM=="net", IMPORT{program}="/lib/udev/rename_device"
SUBSYSTEM=="net", RUN+="/etc/sysconfig/network-scripts/net.hotplug"
DRIVER=="e1000",ID=="0000:02:02.0",NAME="eth1"
如上面蓝色一行所示,将 drivername ,pci-id, 显示的名字做一个对应,就可以了。
初步测试没有问题。
解决方法二:
将网卡的真实 MAC 地址写入网卡的静态配置文件中 ifcfg-ethX,添加一行内容:
HWADDR=xx:xx:xx:xx:xx:xx
其中,xx:xx:xx:xx:xx:xx 为网卡的 MAC 地址
参考文档
Dell 工程师提供的方法:
Linux_Enumeration_of_NICs.pdf
(43.81 KB, 下载次数: 422)
Ethernet-HOWTO:
Ethernet-HOWTO.pdf
(311.33 KB, 下载次数: 468)
----------------
Linux系统,4张网卡,两张 82576的,两张 82571EB 的。
01:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
04:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
04:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
初始安装的系统是CentOS 5.5,内核版本是2.6.18-194.el5xen
/etc/modprobe.conf 文件中关于网卡的内容如下:
alias eth0 igb
alias eth1 igb
alias eth2 e1000e
alias eth3 e1000e
可见两张 82576 网卡对应 eth0 和 eth1,均使用 igb 驱动。
两张 82571EB 网卡对应 eth2 和 eth3,均使用 e1000e 驱动。
这里我重新制作了内核安装包,使用 2.6.24 的内核。由于该版本内核并没有 igb 驱动。我从 intel 官方下载 igb 驱动,并移植到内核中。
但是进入 2.6.24 的内核下,发现 eth2 网卡没有启动。
同时,检查其他三张网卡:
[root@xxx ~]# ethtool -i eth0
driver: igb
version: 2.4.8
firmware-version: 1.4-3
bus-info: 0000:01:00.0
[root@xxx ~]# ethtool -i eth1
driver: e1000
version: 7.3.20-k2-NAPI
firmware-version: 5.6-2
bus-info: 0000:04:00.1
[root@xxx ~]# ethtool -i eth3
driver: igb
version: 2.4.8
firmware-version: 1.4-3
bus-info: 0000:01:00.1 发现 eth0 和 eth3 使用的 igb 驱动,eth2 使用了 e1000 驱动。而且根据 bus-info 可以看出,新的内核下,对四张网卡识别的顺序和安装的发行版上有所不同。
同时,查看 /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo:7476419692 1424305 0 0 0 0 0 0 7476419692 1424305 0 0 0 0 0 0
__tmp358702611: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1:51413066439 479078418 0 536 0 0 0 1 1146871974797 787610625 0 0 0 0 0 0
eth0: 1825946 30420 0 0 0 0 0 0 1182 23 0 0 0 0 0 0
eth3:48131386965 459275416 0 0 0 0 0 0 1147067104897 789553247 0 0 0 0 0 0
bond0:99544453404 938353834 0 536 0 0 0 1 2293939079694 1577163872 0 0 0 0 0 0
发现有一个 __tmp 开头的接口。我怀疑应该是 eth2,只是没有别正确识别。
另外,常见的 /proc/net/dev 是按照 eth 的编号顺序显示的,这里也发生变化了。
请大家帮忙看一下是什么原因。 |
|