如何使用符号链接的cdc-wdm设备与ModemManager?



我们已经创建了udev规则,使cdc-wdm设备的设备命名一致,无论我们的lte usb设备在usb总线上以什么顺序注册。我们遇到了不能重命名cdc-wdm设备的问题,我理解这是usbmisc驱动程序的一些限制。所以我们最终创建了symlinks

ACTION!="add|change", GOTO="mm_naming_rules_end"
# only rename the interfaces if the names are wrong
SUBSYSTEM=="usbmisc", ACTION=="add", KERNELS=="1-1.1.2", KERNEL=="cdc-wdm*", SYMLINK+="cdc-lte0"
SUBSYSTEM=="usbmisc", ACTION=="add", KERNELS=="1-1.1.4", KERNEL=="cdc-wdm*", SYMLINK+="cdc-lte1"
LABEL="mm_naming_rules_end"

但是当我们在nmconnection文件

中使用它时,ModemManager不能识别这些设备
[connection]
id=wwan0
uuid=280d17ff-f4d4-4f47-a6e6-75ba32bc57c2
type=gsm
interface-name=cdc-lte0
permissions=

[gsm]
#apn=internet

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

[proxy]

我终于解决了,symlink不工作但wwan接口可以使用。

要使ModemManager的索引始终相同,请在udev规则中使用ID_MM_PHYSDEV_UID

ACTION!="add|change|move|bind", GOTO="mm_naming_first_rules_end"
DEVPATH=="/devices/platform/bus@5b000000/5b110000.usb/5b130000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.1/1-1.1.2",ENV{ID_MM_PHYSDEV_UID}="USB1"
DEVPATH=="/devices/platform/bus@5b000000/5b110000.usb/5b130000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.1/1-1.1.4",ENV{ID_MM_PHYSDEV_UID}="USB2"
LABEL="mm_naming_first_rules_end"

从wwan0和wwan1重命名为lte0和lte1,设备通过usb添加很晚,所以NetworkManager会立即使用wwan0设备重命名之前,所以我们使用lteX

ACTION!="add|change", GOTO="mm_naming_rules_end"
# only rename the interfaces if the names are wrong
SUBSYSTEM=="usbmisc", ACTION=="add", KERNELS=="1-1.1.2", KERNEL=="cdc-wdm*", SYMLINK+="cdc-lte0"
SUBSYSTEM=="usbmisc", ACTION=="add", KERNELS=="1-1.1.4", KERNEL=="cdc-wdm*", SYMLINK+="cdc-lte1"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="1-1.1.2", KERNEL=="wwan0", NAME="lte0", ENV{ID_MM_CANDIDATE}="1"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="1-1.1.2", KERNEL=="wwan1", NAME="lte0", ENV{ID_MM_CANDIDATE}="1"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="1-1.1.4", KERNEL=="wwan0", NAME="lte1", ENV{ID_MM_CANDIDATE}="1"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="1-1.1.4", KERNEL=="wwan1", NAME="lte1", ENV{ID_MM_CANDIDATE}="1"
LABEL="mm_naming_rules_end"

两个独立的nmconnection文件使用lte0和lte1

[connection]
id=modem1
uuid=280d17ff-f4d4-4f47-a6e6-75ba32bc57c2
type=gsm
interface-name=lte0
permissions=
autoconnect-priority=2
autoconnect-retries=0
[gsm]

最新更新