当启用ModemManager时,我不会在可用的调制解调器列表中看到基于串行的SIM808 FONA,即使我能够让它与pppd一起工作。
如果我用ModemManager启动service stop ModemManager && ModemManager --debug,我会看到它在搜索调制解调器时扫描过去的串行设备,但是对于我看到的每一个设备:
modem-manager: (tty/ttyO4): port's parent platform driver is not whitelisted查看源代码,我看到它检查设备上是否有udev标志ID_MM_PLATFORM_DRIVER_PROBE。如果不存在此标志,则不会扫描串行端口。它还检查ID_MM_CANDIDATE标志,看看它是否是一个支持的端口,所以我知道它至少能够读懂它。
因此,我在新文件/etc/udev/rules.d/78-mm-uart4-enable.rules中添加了此标志作为新规则。
ACTION=="add", KERNEL=="ttyO4", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1"重新启动后,我在udevadm info /dev/ttyO4中看到了这个
P: /devices/ocp.3/481a8000.serial/tty/ttyO4
N: ttyO4
E: DEVNAME=/dev/ttyO4
E: DEVPATH=/devices/ocp.3/481a8000.serial/tty/ttyO4
E: ID_MM_CANDIDATE=1
E: ID_MM_PLATFORM_DRIVER_PROBE=1
E: MAJOR=247
E: MINOR=4
E: SUBSYSTEM=tty
E: TAGS=:systemd:
E: USEC_INITIALIZED=30104但是,我仍然从modem-manager获得相同的错误,尽管我显然设置了标志。如何正确地白名单ttyO4?
发布于 2016-02-29 20:22:33
在源代码中,对ID_MM_CANDIDATE的第一次检查是在端口(即/dev/ttyO4)上进行的。在此之后,ModemManager将检索物理平台设备(串口本身),我们可以看到它是/devices/ocp.3/481a800.serial,然后检查它是否有ID_MM_PLATFORM_DRIVER_PROBE标志。
如果udev规则改为
ACTION=="add", KERNEL=="481a800.serial", ENV{ID_MM_DEVICE_PROCESS}="1"然后ModemManager将正确地看到父设备上的标志(注意: ID_MM_PLATFORM_DRIVER_PROBE不再存在)。
# udevadm info /sys/devices/ocp.3/481a8000.serial
P: /devices/ocp.3/481a8000.serial
E: DEVPATH=/devices/ocp.3/481a8000.serial
E: DRIVER=omap_uart
E: ID_MM_PLATFORM_DRIVER_PROBE=1
E: MODALIAS=of:NserialT<NULL>Cti,omap3-uart
E: OF_COMPATIBLE_0=ti,omap3-uart
E: OF_COMPATIBLE_N=1
E: OF_FULLNAME=/ocp/serial@481a8000
E: OF_NAME=serial
E: SUBSYSTEM=platform
E: USEC_INITIALIZED=990701该设备现在出现在mmcli -L和nmcli device status中。
https://askubuntu.com/questions/740584
复制相似问题