Verwenden Sie den USB-Pfad einer USB-NIC-Adresse in Udev-Regeln, um einen Schnittstellennamen anstelle einer Mac-Adresse zuzuweisen

Verwenden Sie den USB-Pfad einer USB-NIC-Adresse in Udev-Regeln, um einen Schnittstellennamen anstelle einer Mac-Adresse zuzuweisen

Bezüglich:

Das Problem mit der zweiten Lösung ist, dass einige USB3-NICs aus seltsamen Gründen die gleicheATTR{serial}also ist mein letzter Ausweg, um diese Schnittstellen umzubenennen, der USB-Pfad.

Da sich diese angeschlossenen Netzwerkkarten auf einem USB3-Hub immer an der gleichen Position und am gleichen Platz befinden, dachte ich, dass es nützlich sein könnte, den USB-Pfad zu verwenden, um die Schnittstellen zu identifizieren und umzubenennen.

lsusbsagt:

...
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
...

Leider funktionieren die Dinge, die intuitiv sein sollten, wie immer nicht wie erwartet.

Ich habe festgestellt, dass meine Schnittstellen alle auf Bus 2 liegen und verschiedenedevnumvon 5 bis 10

Also habe ich es mit Befehlen wie diesen versucht:

SUBSYSTEM="net", ACTION="add", DRIVERS="?*", ATTRS{busnum}="2", ATTRS{devnum}="5", ATTR{dev_id}="0x0", ATTR{type}="1", KERNEL="eth*", NAME="lan1"

Aber es funktioniert nicht.

Auch bei dieser Verwendung derKERNELNPfad auf einem Gerät, das sich angeblich in KERNELS="2-3:1.0" befindet:

SUBSYSTEM="net", ACTION="add", DRIVERS="?*", KERNELS="2-3:1.0", ATTR{dev_id}="0x0", ATTR{type}="1", KERNEL="eth*", NAME="lan1"

Aber nichts, die Schnittstellen werden nicht umbenannt...

Warum funktionieren diese Regeln nicht?

Antwort1

Habe das Problem gefunden. Es war ein Syntaxfehler, wie von @AB angegeben. Im Wesentlichen habe ich = statt == verwendet, was zum Zuweisen von Werten statt zum Lesen und Vergleichen des Inhalts verwendet wurde.

Mit == als Operator funktioniert alles einwandfrei.

verwandte Informationen