原发于北邮真情流露 BBS Linux 版面 :)
刚才在 debian-chinese-gb 邮件列表上回答了一个问题,汇报给大家,呵呵 对于双网卡,有的时候区分出哪个 pci id 对应哪个 eth 编号还是要费点脑筋的,实际可以通过 sysfs 获得
方法1: 从 PCI ID 开始,比如 0000:01:04.0 (可以通过 lspci 得到) 内核如果支持 sysfs,就会有这个目录 (符号链接)
/sys/bus/pci/devices/0000:01:04.0/
里面会有目录 net:eth0 或 net:eth1 什么的,也可能是其它的,和 ifconfig 列出 的名字想对应,里面存在一个 address 文件,看一下就知道 mac 地址了,比如我的 就是
# cat /sys/bus/pci/devices/0000\:01\:04.0/net\:lan/address
00:11:2f:83:36:a5
lan 是我用 udev 把 ethx 改名得到的,和大家的不太一样,大家的可能 eth0/1 居多
方法2: 从网卡名称 (如 eth0) 开始,用 udevinfo 命令读取 如 udevinfo -a -p /sys/class/net/eth0 输出结果中会包含 ID=="0000:01:04.0" BUS=="pci" DRIVER=="8139too" 或者,直接进入该目录 (/sys/class/net/eth0),里面有 address 文件,就是刚才那个文件,也有一个叫 device 的符号链接,指向的位置就是 PCI ID,比如
device -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:04.0