linux – 如何检测属于gsm/3g-modem的tty是数据还是控制端口?
|
我正在为linux路由器编写一个小工具,当我将适当的调制解调器插入其USB端口时,它建立了一个wwan(gsm / 3g)连接.当插入设备时,几个ttys被注册,我目前维护一个制造商和设备列表,他们注册的ttys是控制/数据端口. 如果可能的话,我想摆脱这个列表并找到一种方法以某种方式直接探测已注册的ttys以检查它们是控制端口还是数据端口. 我检查了wvdial和modem-manager的源代码,看看这些工具如何检测正确的端口但无法找到合适的信息.我还试图在sysfs中查找信息以区分端口,但这也不成功. 最佳答案 您无法通过外部手段检测到这一点.通常的做法是为特定的调制解调器制造商和型号设置udev规则.或者您可以按顺序连接到每个tty并通过AT命令验证它是什么类型的端口.对于udev规则,您可以遵循以下过程: 1)检测调制解调器vid和pid 例如,具有vid = 1199和pid 683c的Sierra Wireless MC8795V调制解调器.我知道端口3始终是AT命令通道.因此,您可以在末尾创建一个使用-AT后固定的符号链接. 在通过AT命令检测的情况下,最好和更常见的方法是执行AT命令以查看tty是否响应.如果您的调制解调器配置为不回显,则应该回显或回复. 例如:
如果您收到回复,则表示您找到了AT控制端口或PPP端口.要检查这一点,只需执行ATI命令即可.如果响应包含APP1,APP2,APP3,则您点击PPP端口.否则你找到了你的AT控制端口. 例如AT控制端口:
例如PPP端口:
但是有一个警告的话.在Sierra Wireless模块的情况下,他们清楚地显示哪个端口是哪个.对于其他制造商,您需要检查USB接口指南,看看是否可以通过ATI采用这种方法. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 为什么glibc二进制文件名为libc.so.6而不是libc.s
- 使用curl将文件上传到python烧瓶服务器
- VI(VIM):从右到左删除/更改?
- 备份 – VirtualBox – 用于小型办公室和备份
- linux – Subversion错误:存储库永久移动,请重新定位
- 在Ubuntu/Linux环境下使用MySQL:开放/修改3306端口、开放访
- linux – ulimit -n not changing – values limits.conf无
- linux – gcc 4.x不支持x87 FPU数学?
- 正则表达式 – 使用grep等bash工具解决难题
- LINUX教程:如何在Ubuntu或衍生系统安装Linux Kernel 4.4.7
