我有一个脚本可以从外部 Ericsson F3507gw 调制解调器获取信号强度,该调制解调器连接在:

ttyACM0: mobile broadband data modem
ttyACM1: mobile broadband modem
ttyACM2: GPS port
cdc-wdm0: Device management
cdc-wdm1: USIM port
cu -l /dev/ttyACM2 可以很好地发送 AT 命令。当我不运行 Ubuntu 的调制解调器管理器(移动宽带被禁用)时,我可以毫无问题地运行我的脚本。但是,当使用调制解调器管理器连接 Ubuntu 时,有时我会得到:
cu -l /dev/ttyACM2cu: /dev/ttyACM2: Line in use
我不知道什么时候,但我想修复它。我的用户在拨号组中,所以没有权限问题。任何想法如何在不杀死调制解调器管理器的情况下运行我的脚本?

该脚本仅使用 echo 发送 AT 命令。

最佳答案

问题是 ModemManager 将任何 /dev/ttyACM* 设备的创建视为“哦,出现了一个新调制解调器。我是调制解调器管理员,我必须立即打开它来声明对它的独占访问权限。”。因此,如果您想为特定调制解调器避免这种情况,您可以通过 udev 做到这一点。我的 /etc/udev/rules.d/99-ttyacms.rules 文件的内容:

# http://linux-tips.org/t/prevent-modem-manager-to-capture-usb-serial-devices/284/2.

#$ lsusb | grep Sony
#Bus 007 Device 006: ID 0fce:d0d9 Sony Ericsson Mobile Communications AB
#$

#udevadm control --reload-rules

ATTRS{idVendor}=="0fce" ATTRS{idProduct}=="d0d9", ENV{ID_MM_DEVICE_IGNORE}="1"

归功于上面链接中答案的 the author

关于ubuntu - 调制解调器管理器和 ttyACM 正在使用中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24696527/

10-11 11:57