LINUX.ORG.RU
ФорумAdmin

Как получить mac из идентификатора шины pci ?


0

0

Точнее, как определить - какая из двух сетевых плат является eth1, а какая - eth3 ?

Gentoo_x64 # lspci -nnk | grep Ethernet

07:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 01)
08:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)
08:01.0 Ethernet controller [0200]: Sundance Technology Inc / IC Plus Corp IP1000 Family Gigabit Ethernet [13f0:1023] (rev 41)
Kernel driver in use: Sundance Technology IPG Triple-Speed Ethernet
08:02.0 Ethernet controller [0200]: Sundance Technology Inc / IC Plus Corp IP1000 Family Gigabit Ethernet [13f0:1023] (rev 41)
Kernel driver in use: Sundance Technology IPG Triple-Speed Ethernet

Gentoo_x64 # cat /etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x13f0:0x1023 (Sundance Technology IPG Triple-Speed Ethernet)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1d:60:5c:a6:48", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1d:7d:04:80:cb", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:0x8139 (8139too)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:4c:a9:c3:ca", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x13f0:0x1023 (Sundance Technology IPG Triple-Speed Ethernet)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1d:60:5c:a7:d9", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

# USB device 0x:0x (cdc_ether)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:e3:a5:16:7e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"

$ cat /sys/class/net/eth0/address
00:1e:68:3f:33:e0

$ ls -lh /sys/class/net/eth0/device
lrwxrwxrwx. 1 root root 0 Авг 22 15:11 /sys/class/net/eth0/device -> ../../../0000:08:00.0

Мне известен только вот такой способ.

Deleted
()
Ответ на: комментарий от Deleted

а можно ли по идентификатору шины определить, в каком физическом разъеме PCI сидит карта - например ближе к процессору или дальше?

ArsenShnurkov
() автор топика
Ответ на: комментарий от Deleted

Точнее, правильный ответ на вопрос в заголовке выглядит как-то так:

$ cat /sys/bus/pci/devices/0000\:08\:00.0/net/eth0/address
00:1e:68:3f:33:e0

Deleted
()
Ответ на: комментарий от dimon555

> чем ближе к процессору, тем меньше идентификатор?

Вот эти три сетевухи воткнуты друг за другом, в порядке отдаления от процессора:

$ readlink /sys/class/net/wlan/device
../../../devices/pci0000:00/0000:00:1e.0/0000:02:09.0

$ readlink /sys/class/net/is74/device
../../../devices/pci0000:00/0000:00:1e.0/0000:02:04.0

$ readlink /sys/class/net/lan/device
../../../devices/pci0000:00/0000:00:1e.0/0000:02:05.0

Так что такой вариант отпадает.

Deleted
()
Ответ на: комментарий от ArsenShnurkov

>а можно ли по идентификатору шины определить, в каком физическом разъеме PCI сидит карта - например ближе к процессору или дальше?
нельзя, т.к. это зависит от разводки платы.

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.