|
|
发表于 2007-10-22 00:45:32
|
显示全部楼层
有些主板设计不符合规范, 驱动程序无法读取MAC地址, 所以只能临时随机分配一个. 而 udev 默认又根据MAC地址来分配接口, 所以你每次都会有一个新接口.
解决办法是自己在最前面加一条udev规则, 不用address作为识别标志, 而是改用其它某个特定参数(比如父设备的PCI地址).
udevinfo -a -p /sys/class/net/ethXX (XX, 是你本次启动后的数字)
得到一长串信息. looking at device '/class/net/eth0':
KERNEL=="eth0"
SUBSYSTEM=="net"
DRIVER==""
ATTR{weight}=="16"
ATTR{tx_queue_len}=="1000"
ATTR{flags}=="0x1002"
ATTR{mtu}=="1500"
ATTR{operstate}=="down"
ATTR{broadcast}=="ff:ff:ff:ff:ff:ff"
...
...
looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:02:08.0':
[color="Red"]KERNELS=="0000:02:08.0"
SUBSYSTEMS=="pci"
...
...
KERNELS=="0000:02:08.0" 就可以作为我们需要的父设备关键属性 ([color="Blue"]不要直接复制我的, 你机器上的肯定不是这个地址).
下面修改规则 /etc/udev/rules.d/z25_persistent-net.rules, 把下面这行作为第一条规则, 紧接着顶部的注释:
SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:02:08.0", NAME="eth0", OPTIONS+="last_rule"
应该就可以了. |
|