Рубрики
*NIX информация

udev / lsusb / упарядочить сетевые карты / изминение mac в LAN9500A/LAN9500Ai

Железо:

napi slot
Microchip Technology, Inc. (formerly SMSC) LAN9500A/LAN9500Ai

Давайте сопоставим на вашем примере из прошлого вывода lsusb -t:
lsusb -t:
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/2p, 480M
        |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M  <-- Это ваше устройство?
        |__ Port 2: Dev 4, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
Сравниваем с 1-1.2:1.0:
1 — это Bus 01.
1 — это Port 1 на корневом хабе (первая строка в древовидном выводе).
.2 — это Port 2 на внутреннем хабе.
:1.0 — это If 0 (первый интерфейс) устройства.
Таким образом, 1-1.2:1.0 — это устройство, которое висит на шине 1, порту 1 корневого хаба, порту 2 внутреннего хаба, и использует первый интерфейс.






Чтобы найти этот путь для каждого из ваших четырёх адаптеров, выполните:
udevadm info -a -p /sys/class/net/eth1 | grep KERNELS
вывод:
KERNELS=="1-1.2:1.0"



Приминение и проверка правил:
udevadm control --reload-rules
udevadm trigger
reboot


Отслеживать события udev в реальном времени:
udevadm monitor --property

Проверка какое правило сработает на интерфейс:
udevadm test /sys/class/net/eth1


Получить информацию об устройстве
udevadm info -a -p /sys/class/net/eth1

-a — показать все атрибуты.

-p — указать путь в sysfs.

/sys/class/net/eth1 — путь к сетевому интерфейсу.

В выводе вы увидите несколько секций, начинающихся с looking at parent device — это уровни вверх по дереву устройств.
Вам нужны атрибуты, по которым можно идентифицировать устройство
(например, KERNELS, ATTRS{idVendor}, ATTRS{idProduct}, ATTRS{serial}).
Эти атрибуты можно использовать в правилах udev.




cat > /etc/udev/rules.d/99-usb-net.rules << "EOF"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="1-1.2:1.0", NAME="usb1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="1-1.1:1.0", NAME="usb2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="2-1.1:1.0", NAME="usb4"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="2-1.2:1.0", NAME="usb3"


#root@napi-stronghornet:~# lsusb  -t
#/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=dwc2/1p, 480M
#    |__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/2p, 480M
#        |__ Port 002: Dev 003, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
#/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=ehci-platform/1p, 480M
#    |__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/2p, 480M
#        |__ Port 001: Dev 003, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
#        |__ Port 002: Dev 004, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
#/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=ohci-platform/1p, 12M

EOF


#sw1
#usb1
ethtool -E usb1 magic 0x9500 offset 0x00 value 0xA5
ethtool -E usb1 magic 0x9500 offset 0x01 value 0x02
ethtool -E usb1 magic 0x9500 offset 0x02 value 0x11
ethtool -E usb1 magic 0x9500 offset 0x03 value 0x22
ethtool -E usb1 magic 0x9500 offset 0x04 value 0x33
ethtool -E usb1 magic 0x9500 offset 0x05 value 0x44
ethtool -E usb1 magic 0x9500 offset 0x06 value 0x54


#usb2
ethtool -E usb2 magic 0x9500 offset 0x00 value 0xA5
ethtool -E usb2 magic 0x9500 offset 0x01 value 0x02
ethtool -E usb2 magic 0x9500 offset 0x02 value 0x11
ethtool -E usb2 magic 0x9500 offset 0x03 value 0x22
ethtool -E usb2 magic 0x9500 offset 0x04 value 0x33
ethtool -E usb2 magic 0x9500 offset 0x05 value 0x44
ethtool -E usb2 magic 0x9500 offset 0x06 value 0x54


#usb4
ethtool -E usb4 magic 0x9500 offset 0x00 value 0xA5
ethtool -E usb4 magic 0x9500 offset 0x01 value 0x02
ethtool -E usb4 magic 0x9500 offset 0x02 value 0x11
ethtool -E usb4 magic 0x9500 offset 0x03 value 0x22
ethtool -E usb4 magic 0x9500 offset 0x04 value 0x33
ethtool -E usb4 magic 0x9500 offset 0x05 value 0x44
ethtool -E usb4 magic 0x9500 offset 0x06 value 0x56

#usb3
ethtool -E usb3 magic 0x9500 offset 0x00 value 0xA5
ethtool -E usb3 magic 0x9500 offset 0x01 value 0x02
ethtool -E usb3 magic 0x9500 offset 0x02 value 0x11
ethtool -E usb3 magic 0x9500 offset 0x03 value 0x22
ethtool -E usb3 magic 0x9500 offset 0x04 value 0x33
ethtool -E usb3 magic 0x9500 offset 0x05 value 0x44
ethtool -E usb3 magic 0x9500 offset 0x06 value 0x57


#sw2
#usb1
ethtool -E usb1 magic 0x9500 offset 0x00 value 0xA5
ethtool -E usb1 magic 0x9500 offset 0x01 value 0x02
ethtool -E usb1 magic 0x9500 offset 0x02 value 0x12
ethtool -E usb1 magic 0x9500 offset 0x03 value 0x22
ethtool -E usb1 magic 0x9500 offset 0x04 value 0x33
ethtool -E usb1 magic 0x9500 offset 0x05 value 0x44
ethtool -E usb1 magic 0x9500 offset 0x06 value 0x74


#usb2
ethtool -E usb2 magic 0x9500 offset 0x00 value 0xA5
ethtool -E usb2 magic 0x9500 offset 0x01 value 0x02
ethtool -E usb2 magic 0x9500 offset 0x02 value 0x12
ethtool -E usb2 magic 0x9500 offset 0x03 value 0x22
ethtool -E usb2 magic 0x9500 offset 0x04 value 0x33
ethtool -E usb2 magic 0x9500 offset 0x05 value 0x44
ethtool -E usb2 magic 0x9500 offset 0x06 value 0x74


#usb4
ethtool -E usb4 magic 0x9500 offset 0x00 value 0xA5
ethtool -E usb4 magic 0x9500 offset 0x01 value 0x02
ethtool -E usb4 magic 0x9500 offset 0x02 value 0x12
ethtool -E usb4 magic 0x9500 offset 0x03 value 0x22
ethtool -E usb4 magic 0x9500 offset 0x04 value 0x33
ethtool -E usb4 magic 0x9500 offset 0x05 value 0x44
ethtool -E usb4 magic 0x9500 offset 0x06 value 0x76

#usb3
ethtool -E usb3 magic 0x9500 offset 0x00 value 0xA5
ethtool -E usb3 magic 0x9500 offset 0x01 value 0x02
ethtool -E usb3 magic 0x9500 offset 0x02 value 0x12
ethtool -E usb3 magic 0x9500 offset 0x03 value 0x22
ethtool -E usb3 magic 0x9500 offset 0x04 value 0x33
ethtool -E usb3 magic 0x9500 offset 0x05 value 0x44
ethtool -E usb3 magic 0x9500 offset 0x06 value 0x77

проверяем:
ls /boot/dtb/rockchip/overlay/*otg-host*
добавляем:
vim /boot/armbianEnv.txt
------------------------
overlays=otg-host
------------------------

Изменение mac через udev:


cat > /etc/udev/rules.d/99-usb-net.rules << "EOF"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="1-1.2:1.0", NAME="usb1", RUN+="/sbin/ip link set dev usb1 address 00:11:22:33:44:66"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="1-1.1:1.0", NAME="usb2", RUN+="/sbin/ip link set dev usb2 address 00:11:22:33:44:57"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="2-1.1:1.0", NAME="usb4", RUN+="/sbin/ip link set dev usb4 address 00:11:22:33:44:58"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="2-1.2:1.0", NAME="usb3", RUN+="/sbin/ip link set dev usb3 address 00:11:22:33:44:59"
EOF


udevadm control --reload-rules
udevadm trigger


Изменение mac через udev использование софта macchanger:


cat > /etc/udev/rules.d/99-usb-net.rules << "EOF"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="1-1.2:1.0", NAME="usb1", RUN+="/usr/bin/macchanger -p -r usb1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="1-1.1:1.0", NAME="usb2", RUN+="/usr/bin/macchanger -p -r usb2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="2-1.1:1.0", NAME="usb4", RUN+="/usr/bin/macchanger -p -r usb4"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="2-1.2:1.0", NAME="usb3", RUN+="/usr/bin/macchanger -p -r usb3"
EOF

udevadm control --reload-rules
udevadm trigger