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