在 udev 規則中使用 USB 網路卡位址的 USB 路徑來指派介面名稱而不是 MAC 位址

在 udev 規則中使用 USB 網路卡位址的 USB 路徑來指派介面名稱而不是 MAC 位址

相關:

提供的第二個解決方案的問題是,某些 USB3 NIC 由於某些奇怪的原因共享相同的內容ATTR{系列}所以我重命名此介面的最後手段是 USB 路徑。

因為所連接的 NIC 始終位於 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 所說,基本上我使用 = 而不是 == 來賦值,而不是讀取和比較內容。

透過使用 == 作為運算符,一切正常。

相關內容