Debian 8.4 GSM 调制解调器不断改变其 tty

Debian 8.4 GSM 调制解调器不断改变其 tty

我有一台 Debian 8.4 机器,我用它来通过 smstools 发送/接收短信。我的调制解调器是:华为技术有限公司 E169/E620/E800 HSDPA 调制解调器,几天内都运行良好,然后调制解调器通过 /dev/ttyUSB0 变得不可用,我必须切换到 /dev/ttyUSB1。接下来的几天它工作正常,然后同样的事情发生了 - 我必须切换回 /dev/ttyUSB0 有人知道为什么会发生这种情况吗?我该怎么办?是调制解调器的问题吗?在我之前的机器上,我有相同型号的调制解调器,它可以正常工作几个月。不幸的是,我无法使用该调制解调器,因为 ESXi 看不到它。

答案1

原因

嗯,我认为原因是某物重置调制解调器/USB 总线(我不确定:是 USB 总线重置、由其固件导致的调制解调器重置、由 SMS 发送守护程序导致的调制解调器重置还是完全其他原因),从而使调制解调器显示为另一个设备:因为热插拔设备的命名故意不是固定的 - 至少自从 Linux 内核切换为用于udev管理/dev层次结构以来。

补救措施

您应该做的是udev在需要时使用 的功能为您提供持久的设备命名。

有多种方法可以做到这一点,但最简单的方法是请求内核创建一个使用自定义名称指向真实设备节点文件的符号链接。

例如,在与您的用途相同的 Debian 系统上,我们有:

$ cat /etc/udev/rules.d/55-USB-modems.rules
# idVendor           0x12d1 Huawei Technologies Co., Ltd.
# idProduct          0x1001 E169/E620/E800 HSDPA Modem
SUBSYSTEMS=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1001",SYMLINK+="ttyGSM1"

这条规则将使调制解调器可用作/dev/ttyGSM1节点。

请注意,用于匹配设备的那些idVendor和属性在不同的设备之间是不同的;查询 USB 总线以确定您的设备具有什么。在我们的系统上,我们有:idProduct

$ lsusb|grep 12d1
Bus 002 Device 008: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

所以我认为你已经有这个想法了。

请注意,您需要重新启动udev以使其重新加载其规则,然后重新插入调制解调器以使其从udev的 PoV 中重新出现。

答案2

看来确实是调制解调器出了问题。我换了另一个,现在一切正常。

相关内容