首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新连接后USB多个ttyACMx的更改

重新连接后USB多个ttyACMx的更改
EN

Stack Overflow用户
提问于 2015-07-13 11:09:17
回答 1查看 821关注 0票数 3

我正在通过USB将一个Gemalto (Cinterion)调制解调器连接到我的嵌入式Linux (2.6.31),运行BusyBox和mdev。

调制解调器创建ttyACM 0-6,其中“0”用于pppd。我不时地得到dis和重新连接(1小时,1天.)整个系统更加复杂--另一个嵌入式设备通过RS232接口bla连接到调制解调器。

我的问题:

当发生断开和重新连接时,pppd不够快,无法释放ttyACM0,因此创建了ttyACM 1-7。下一次可能是0,2-7或3-8,没有具体的算法。

我尝试过更新一个simlink (到/dev/ttyMyModem),但同样的“没有具体算法”的问题.所有的接口都是相同的- CDC-ACM (不是吗??)

当前的方法:

一个bash脚本,包装pppd,有一个没完没了的循环,等待pppd的出口(它停留在前台,"nodetach“在我的选项文件中)。当pppd死掉时,我会删除驱动程序(mod探针-r cdc_acm),删除所有节点(rm /dev/ttyACM*),重新安装驱动程序(mod探针cdc_acm)并运行pppd。我在需要的东西之间加了1-2秒钟的延迟。

这个解决方案需要2-4次迭代才能重新连接(不知道为什么第一次不工作),但是看起来很稳定。

我的问题:

  • 是我发明的方向盘吗?
  • 这个解决方案稳定吗?对生产有用吗?
  • 我在谷歌的搜索中漏了一个“热门词”吗?

请不要对我太苛刻..。

EN

回答 1

Stack Overflow用户

发布于 2015-07-13 13:07:28

我没有足够的代表在评论部分问,所以我必须在这里问这个。当你说你更新了符号链接时,你说的是udev规则吗?我在打印机,扫描仪等方面也有同样的问题。在我的程序中,一旦我得到一个写/读错误,我就使用"udevadm export“为我的设备读取正确的devpath。我关闭文件描述符并在新设备上重新打开它。你试过阻止断线吗?我自己做不到,但你可以尝试禁用自动挂起。使用usbcore.auto悬架=-1内核选项,并:

代码语言:javascript
复制
for i in /sys/bus/usb/devices/usb*/power/control; do echo "on" > $i; done

希望这能有所帮助。你的解决方案很稳定。我习惯于在自动化系统中使用这种奇怪的“解决方案”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31381785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档