【问题标题】:Modem manager and ttyACM in use调制解调器管理器和 ttyACM 正在使用中
【发布时间】:2017-04-03 08:31:25
【问题描述】:

我有一个脚本可以从外部爱立信 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 命令。

【问题讨论】:

  • 显然,有时ACM1可用,有时ACM2可用。这部分解决了我的问题...
  • 调制解调器启动时,您是否看到任何 ttyUSB 设备出现在 /dev 中?

标签: ubuntu at-command modem


【解决方案1】:

问题在于,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

【讨论】:

  • 在仿生 (18.04) 中,这略有改变,由于策略设置为严格,默认情况下不再考虑 ID_MM_DEVICE_IGNORE 标志。
猜你喜欢
  • 2021-06-09
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 2016-04-04
  • 2023-02-14
相关资源
最近更新 更多