Пересоздание портов 3g модема

Приветствую.

обнаружилось неприятное поведение, которое непонятно как лечить
wb 6.5 с 3g модемом
в своем софте используются ttyACM0 и ttyACM3 порты ttyGSM используется под ppp
так вот, ppp сессия держится и работает без проблем, а вот ACM0 и ACM3 в какой то момент просто пропаяют! но появляются 7 и 8 (изначально ACM от 0 до 6)
при этом, ясное дело, своя софтина не сном ни духом о таком изменении и считает что ответа на AT команды просто нет…

вопрос - что это такое? почему порты пропадают и пересоздаются с новыми именами?
как избежать этого поведения?

1 лайк

посмотрите пожалуйста dmesg/syslog. Отключается usb-устройство, подключается заново, но т.к. ACM0 и ACM3 заняты вашим софтом, то ядро/udev создаёт эти устройства по ближайшим незанятым номерам.

Почему модем отключается от USB - это загадка. Проверьте пожалуйста, не перезагружаете ли вы его по питанию и по PWRKEY, не вызываете ли вы наши скрипты wb-gsm в процессе работы.

Думаю, что вашему ПО надо понимать, что порт закрыт. В вашем ПО надо различать ситуацию, когда просто ничего не читается, и когда порт закрылся. Если порт закрылся - закрывать файловый дескриптор немедленно.

да, в messages появляется запись что usb отвалился и появился снова, выглядит так

Nov 12 11:26:49 A3DM47E7 local2.info pppd[2220]: LCP terminated by peer
Nov 12 11:26:49 A3DM47E7 local2.info pppd[2220]: Connect time 60.5 minutes.
Nov 12 11:26:49 A3DM47E7 local2.info pppd[2220]: Sent 151618 bytes, received 134758 bytes.
Nov 12 11:26:51 A3DM47E7 user.info kernel: [ 4859.817173] usb 2-1.2: USB disconnect, device number 6
Nov 12 11:26:51 A3DM47E7 user.err kernel: [ 4859.864921] cdc_acm 2-1.2:1.6: acm_ctrl_irq - usb_submit_urb failed: -19
Nov 12 11:26:52 A3DM47E7 user.info kernel: [ 4860.416502] usb 2-1.2: new high-speed USB device number 7 using ci_hdrc
Nov 12 11:26:52 A3DM47E7 user.info kernel: [ 4860.587978] usb 2-1.2: New USB device found, idVendor=8087, idProduct=07ed
Nov 12 11:26:52 A3DM47E7 user.info kernel: [ 4860.594911] usb 2-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Nov 12 11:26:52 A3DM47E7 local2.notice pppd[2220]: Connection terminated.
Nov 12 11:26:53 A3DM47E7 user.info kernel: [ 4861.352827] usb 2-1.2: USB disconnect, device number 7
Nov 12 11:26:53 A3DM47E7 local2.notice pppd[2220]: Modem hangup
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4864.716412] usb 2-1.2: new high-speed USB device number 8 using ci_hdrc
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4864.905741] usb 2-1.2: New USB device found, idVendor=1e0e, idProduct=0020
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4864.912743] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4864.920151] usb 2-1.2: Product: SIMCOM_PRODUCT
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4864.924606] usb 2-1.2: Manufacturer: SIMCOM_VENDOR
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4864.929452] usb 2-1.2: SerialNumber: 004999010640000
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4865.037045] cdc_acm 2-1.2:1.0: ttyACM1: USB ACM device
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4865.063958] cdc_acm 2-1.2:1.2: ttyACM2: USB ACM device
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4865.105516] cdc_acm 2-1.2:1.4: ttyACM4: USB ACM device
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4865.128948] cdc_acm 2-1.2:1.6: ttyACM5: USB ACM device
Nov 12 11:26:56 A3DM47E7 user.info kernel: [ 4865.161453] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.186956] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.203391] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.223974] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.244526] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.265052] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.278352] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.305995] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.318727] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.339272] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.362179] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.385625] cdc_acm 2-1.2:1.8: ttyACM6: USB ACM device
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.417429] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.436712] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.456445] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.476436] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.494987] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.508719] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.536098] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.557027] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.576826] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.593537] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.614521] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.628096] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.655203] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.665750] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.703487] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.715752] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.756879] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.776503] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.804841] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.839350] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.848738] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.865353] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.895918] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.926517] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.932240] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.949748] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.966574] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4865.986448] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.003067] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.026708] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.046433] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.069967] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.086080] cdc_acm 2-1.2:1.10: ttyACM7: USB ACM device
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.113990] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.128251] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.144760] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.175291] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:57 A3DM47E7 user.info kernel: [ 4866.185626] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.209436] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.226530] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.256428] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.262399] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.282912] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.298519] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.325063] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.338099] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.365896] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.378083] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.406420] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.417783] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.436684] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.448086] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.474845] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.488220] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.512318] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.533646] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.548094] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.576758] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.594867] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.607963] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.636410] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.648264] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.676431] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.688179] alloc_contig_range: [9f1d8, 9f1db) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.707331] alloc_contig_range: [9f1f8, 9f1fb) PFNs busy
Nov 12 11:26:58 A3DM47E7 user.info kernel: [ 4866.712935] cdc_acm 2-1.2:1.12: ttyACM8: USB ACM device
Nov 12 11:27:05 A3DM47E7 local2.info chat[2766]: timeout set to 5 seconds

т.е. без какой либо доп инфы в логах видно что произошло отключение от сотовой сети (на ttyGSM), а потом отвалился модем по usb и снова сам появился

понятно что теперь у себя в софте будут доп проверки на это поведение…
из занятных наблюдений - это проблема НА ВСЕХ wb что в последней партии получили (174049), контроллеры приобретённые ранее, ровно в тем же своим софтом молотят без проблем… совпадение?

Вы используете /etc/ppp/peers из стандартной поставки? Покажите пожалуйста файлик peers текущий.

Тут интересно, что сначала завершилось соединение по PPP, а потом уже модем пошёл отваливаться.