在 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 所说,基本上我使用 = 而不是 == 来赋值,而不是读取和比较内容。

通过使用 == 作为运算符,一切正常。

相关内容