第一个问题,长话短说,我有 3 个不同的 USB 蜂窝 (GSM) 调制解调器,我想确保每个 SIM 卡的连接配置文件(因为 APN 不同)始终使用相同的调制解调器/SIM 组合。这里的问题是,由于 USB 的性质,接口 cdc-wdmx 在重新启动时会发生变化,并且由于 nmcli 连接与接口名称绑定,因此连接不会出现。
因此,我使用 udev 规则创建了符号链接来指向物理 USB 端口,其想法是调制解调器 1 将始终是插入第一个 USB 端口的设备。这有效并且符号链接指向正确,但是,由于某种原因我无法将符号链接用于连接配置文件。
为了澄清一点,请看以下示例:
调制解调器和 SIM 卡组合 A 是沃达丰。启动调制解调器时,SIM 卡组合 A 被分配为 cdc-wdm0,这是 NMCLI 中显示的名称。我为沃达丰创建了一个连接配置文件,其中 apn“互联网”指向 cdc-wdm0。连接有效。
调制解调器和 SIM 卡组合 B 是 O2。启动时,medem SIM 组合 B 被分配为 cdc-wdm1,这也是 NMCLI 中显示的名称。我为 O2 创建一个连接配置文件,其 APN“mobile.o2.co.uk”指向 cdc-wdm1。连接正常。
但系统重启后:
- Moden 和 SIM 组合 A 现已分配给 cdc-wdm1
- 调制解调器和 SIM 组合 B 现在分配为 cdc-wdm0
结果,我的连接现在无法工作,因为配置了错误的 APN。
我的调制解调器 udev 规则如下,这些规则确实有效:
SUBSYSTEM=="usbmisc", ACTION=="add", KERNEL=="cdc-wdm*", KERNELS=="1-1:1.4", SYMLINK+="3rd-mdm"
SUBSYSTEM=="usbmisc", ACTION=="add", KERNEL=="cdc-wdm*", KERNELS=="1-4.4", SYMLINK+="4th-mdm"
SUBSYSTEM=="usbmisc", ACTION=="add", KERNEL=="cdc-wdm*", KERNELS=="1-2:1.4", SYMLINK+="1st-mdm"
SUBSYSTEM=="usbmisc", ACTION=="add", KERNEL=="cdc-wdm*", KERNELS=="1-4.3", SYMLINK+="2nd-mdm"
并且符号链接显示在 udevadm 信息下:
[root@localhost rules.d]# udevadm info /dev/cdc-wdm1
P: /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.3/1-4.3:1.4/usbmisc/cdc-wdm1
N: cdc-wdm1
**S: 2nd-mdm**
E: DEVLINKS=/dev/2nd-mdm
E: DEVNAME=/dev/cdc-wdm1
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.3/1-4.3:1.4/usbmisc/cdc-wdm1
E: ID_MM_CANDIDATE=1
E: MAJOR=180
E: MINOR=177
E: SUBSYSTEM=usbmisc
E: USEC_INITIALIZED=88077
谁能告诉我如何解决这个问题吗?