
Относится к:
- Debian 12 - Внезапно моему USB3 Lan адаптеру назначается случайный MAC-адрес при каждой перезагрузке
- Используйте родительский атрибут «serial» в конфигурации UDEV, чтобы назначить интерфейсу локальной сети другое имя, а не полагаться на MAC-адрес.
Проблема со вторым предложенным решением заключается в том, что некоторые сетевые карты USB3 по каким-то странным причинам используют один и тот жеATTR{серийный}поэтому мой последний способ переименовать этот интерфейс — это путь USB.
Поскольку подключенные сетевые карты всегда находятся в одном и том же месте и размещаются на концентраторе USB3, я думаю, что было бы полезно использовать путь USB для идентификации и переименования интерфейсов.
lsusb
говорит:
...
Bus 002 Device 006: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 005: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 010: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 009: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 008: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 007: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
...
К сожалению, как всегда, то, что должно быть интуитивно понятно, не работает так, как ожидалось.
Я обнаружил, что все мои интерфейсы находятся на шине 2 и имеют различныедевнумот 5 до 10
Поэтому я попробовал использовать такие команды:
SUBSYSTEM="net", ACTION="add", DRIVERS="?*", ATTRS{busnum}="2", ATTRS{devnum}="5", ATTR{dev_id}="0x0", ATTR{type}="1", KERNEL="eth*", NAME="lan1"
Но это не работает.
Также с помощью этогоЯДРАпуть на устройстве, который должен быть в KERNELS="2-3:1.0":
SUBSYSTEM="net", ACTION="add", DRIVERS="?*", KERNELS="2-3:1.0", ATTR{dev_id}="0x0", ATTR{type}="1", KERNEL="eth*", NAME="lan1"
Но ничего, интерфейсы не переименовываются...
Почему же эти правила не работают?
решение1
Нашел проблему. Это была синтаксическая ошибка, как указал @AB. По сути, я использовал = вместо ==, который использовался для присвоения значений вместо чтения и сравнения содержимого.
При использовании оператора == все работает нормально.