У меня есть машина Debian 8.4, которую я использую для отправки / получения смс через smstools. Мой модем: Huawei Technologies Co., Ltd. Модем HSDPA E169 / E620 / E800 Все работает отлично в течение нескольких дней, а затем модем становится недоступным через / dev / ttyUSB0, мне нужно перейти на / dev / ttyUSB1. В течение следующих нескольких дней все работает нормально, и затем происходит то же самое - я должен переключиться обратно на / dev / ttyUSB0. У кого-нибудь есть идея, почему это происходит? Что я могу сделать? Это вина модемов? На моей предыдущей машине у меня была та же модель модема, и она могла прекрасно работать месяцами. К сожалению, я не могу использовать этот модем, так как ESXi его не видит.
2 ответа
Причины
Ну, я думаю, причина в том, что что- то сбрасывает шину модема /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
и idProduct
которые используются для сопоставления устройства, различны для разных устройств; запросите шину USB, чтобы выяснить, что имеет ваше устройство.
По этой нашей системе мы имеем:
$ lsusb|grep 12d1
Bus 002 Device 008: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Так что я думаю, у тебя есть идея.
Обратите внимание, что вам нужно будет перезапустить udev
чтобы он перезагрузил свои правила, а затем снова подключить модем, чтобы он снова появился в PoD для udev
.
Похоже, это был действительно неисправный модем. Я поменял его на другой и теперь он работает нормально.