Железо:
|
1 2 |
napi slot Microchip Technology, Inc. (formerly SMSC) LAN9500A/LAN9500Ai |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
Давайте сопоставим на вашем примере из прошлого вывода 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:
|
1 2 3 4 5 6 7 8 9 10 |
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:
|
1 2 3 4 5 6 7 8 9 |
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 |