GSM модем Debian 8.4 постоянно меняет свой tty

515
Kliwer

У меня есть машина Debian 8.4, которую я использую для отправки / получения смс через smstools. Мой модем: Huawei Technologies Co., Ltd. Модем HSDPA E169 / E620 / E800 Все работает отлично в течение нескольких дней, а затем модем становится недоступным через / dev / ttyUSB0, мне нужно перейти на / dev / ttyUSB1. В течение следующих нескольких дней все работает нормально, и затем происходит то же самое - я должен вернуться к / dev / ttyUSB0. У кого-нибудь есть идея, почему это происходит? Что я могу сделать? Это вина модемов? На моей предыдущей машине у меня была та же модель модема, и она могла прекрасно работать месяцами. К сожалению, я не могу использовать этот модем, так как ESXi его не видит.

0

2 ответа на вопрос

0
kostix

Причины

Ну, я думаю, причина в том, что что- то сбрасывает шину модема / 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=="12d1", ATTRS=="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его, чтобы он перезагрузил свои правила, а затем снова подключить модем, чтобы он снова появился из udevPoV.

Хех, забавная мысль: только что закончил писать мой ответ и обнаружил, что у вас тот же модем, что и у нас ;-) kostix 7 лет назад 0
Привет, спасибо за ваш вклад. Я сделал это раньше, но с «SUBSYSTEMS == tty», и это работало какое-то время, но когда произошел «сброс», он не переключился на новый. Я пытался сделать это, как вы предложили, но это не сработало. В журнале приложения я получаю сначала: не удается открыть последовательный порт / dev / huawei, ошибка: в доступе отказано, затем после ручной установки его на 666 я получаю это: Неожиданный ввод: @ ^ R ^ A ^ P ^ C ^ B ^ A ^ БУ ^ C ^ A ^ A ^ D ^ C ^ G ^ E ^ C @ ^ E ^ G ^ E ^ B ^ B ^ G ^ E ^ A ^ B ^ B ^ D ^ A ^ B ^ G ^ E ^ B ^ B ^ G ^ E ^ B ^ B ^ B ^ D ^ B ^ B ^ G ^ E Kliwer 7 лет назад 0
@Kliwer, 1) Не делай этого! Модемные устройства должны иметь биты прав доступа, такие как 1660, и принадлежать `root: dialout`; тогда вам нужно заставить ваш S / W использовать учетную запись, которая входит в эту группу `dialout`. 2) Это совсем другая программа. Я бы начал с установки `picocom`,` minicom` или подобной программы и чата с вашим модемом. Для начала, отвечает ли он на базовую команду `AT` клавишей` OK`? То есть для начала убедитесь, что он работает как положено, а затем попробуйте использовать специальное программное обеспечение для его запуска. kostix 7 лет назад 0
@Kliwer, одной из причин, по которой модем не работает, может быть неправильное ожидание скорости передачи, количества данных, битов остановки и четности между модемом и вашим программным обеспечением. Пожалуйста, сделайте свое исследование, используя эти ключевые слова. kostix 7 лет назад 0
@Kliwer, я также рекомендую вам отправить сообщение в [список рассылки debian-users] (https://lists.debian.org/debian-user/) с описанием вашей проблемы - скорее всего, вы получите помощь там. Вы не должны быть подписаны. Также не пропустите IRC-канал `# debian` на` debian.oftc.net`: там вы можете получить помощь почти в реальном времени по таким непосредственным проблемам, как установка правильных разрешений на устройствах или общение с модемом. kostix 7 лет назад 0
Хорошо, я установил его обратно на 660. Я заметил, что он принадлежит root с группой root вместо dialout. Используя minicom и устройство / dev / huawei, я не могу ничего написать в консоли, но, используя / dev / ttyUSB0, он отвечает на AT нажатием OK. Единственное, что я изменяю в конфиге smstools - это порт, больше ничего - так что он должен работать. Спасибо, я тоже попробую. Kliwer 7 лет назад 0
0
Kliwer

Похоже, это был действительно неисправный модем. Я поменял его на другой и теперь он работает нормально.

Похожие вопросы