华为 USB 3G 调制解调器和 tty 编号

华为 USB 3G 调制解调器和 tty 编号

我有一台华为 E353 调制解调器,与 Raspberry Pi 一起使用。

当我插入它时,我得到三个 TTY - ttyUSB0、ttyUSB1 和 ttyUSB2。

但有时调制解调器接口(您可以在此发出 Hayes 类型的 AT 命令)位于 ttyUSB0 上,有时位于 ttyUSB1 上。

我找不到造成差异的任何共同因素。我也不确定,但它似乎总是在同一个 Pi 上做同样的事情(或者可能是同一个加密狗 - 我有几个,但我还没有机会尝试太多不同的组合)。

有人能指出什么影响了 tty 编号吗?

答案1

您遇到的问题并非华为设备所独有(因此,如果您从标题中删除该问题,可能会得到更好的答复)。

问题与设备检测以及系统认为已安装的内容有关。解决方案是制定适当的 UDEV 规则,以确保设备始终被识别为特定硬件并分配相同的接口。

具体细节会因发行版而略有不同,但通常意味着使用 lsusb 查找设备的唯一属性,然后在 udev 配置文件中编写一行代码来匹配这些属性。Google 是您的好朋友 - 谷歌搜索 udev try rules [distribution] 应该会为您提供所需的具体信息。

答案2

全部设备编号(硬盘、tty 等等)必须被视为不可靠且不一致的访问启动,因为它可能以随机顺序发生。

查看lsusbdmesg找出 tty 创建方式的详细信息,然后编写适当的udev规则来创建具有可依赖的常量名称的符号链接。

编辑

是的,我完全理解这是由单个驱动程序处理的一个设备,它会产生三个 tty。您无法在 的输出中区分它们lsusb(但您可以看到供应商/设备 ID,您需要用它来识别 中正在发生的事情dmesg),但我很确定您可以找到区分 udev 属性。

dmesg如果(不太可能)中没有任何内容,请使用

udevadm info -a -p  $(udevadm info -q path -n /dev/ttyUSB0)

浏览设备路径并查看属性,然后

udevadm monitor --udev --property

了解udev当你插入设备时它在做什么。

相关内容