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