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