As razões
Bem, acho que o motivo é que algo reinicia o modem / barramento USB (não sei ao certo: é uma reinicialização do barramento USB, uma reinicialização do modem causada por seu firmware, redefinição de modem causada pelo daemon de envio de SMS ou qualquer outra coisa completamente) e, portanto, faz com que o modem apareça como outro dispositivo: porque a nomenclatura de dispositivos hot-plug não foi intencionalmente corrigida - pelo menos desde que o kernel do Linux mudou para udev
gerenciando /dev
hierarquia.
O remédio
O que você deve fazer é usar a capacidade de udev
de fornecer nomes de dispositivos persistentes quando precisar.
Existem várias maneiras de fazer isso, mas o mais simples é solicitar ao kernel que crie um link simbólico com seu nome personalizado apontando para o arquivo real do nó do dispositivo.
Por exemplo, em um sistema Debian que serve o mesmo propósito que o seu, temos:
$ 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"
Esta regra tornará o modem também disponível como /dev/ttyGSM1
node.
Observe que os atributos idVendor
e idProduct
usados para corresponder ao dispositivo são diferentes entre dispositivos diferentes.
consulte o barramento USB para descobrir o que seu dispositivo possui.
Nesse nosso sistema, temos:
$ lsusb|grep 12d1
Bus 002 Device 008: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Então, acho que você tem a ideia.
Observe que você precisará reiniciar o udev
para recarregá-lo e reconectar o modem para que reapareça a partir do PoV do udev
.