我有一个脚本可以从外部 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/ttyACM2
cu: /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/