Сообщение об ошибке «Уровень 2 остановлено» с использованием ldattach с типом мультиплексирования GSM0710

У меня есть 3G-модем в моей системе BeagleBone Linux, который поддерживает мультиплексирование GSM0710 (т. Е. Может создавать> = 2 виртуальных последовательных порта, которые подключаются к физическому порту модема, которые затем могут использоваться для запуска ppp на одном, а AT – команды другого).

Я пытаюсь использовать команду ldattach, чтобы заставить это работать, как описано в https://www.kernel.org/doc/Documentation/serial/n_gsm.txt .

Поэтому я запускаю эти команды как root:

 ldattach -d GSM0710 / dev / ttyO2             
 ldattach: открыт / dev / ttyO2                                                     
 ldattach: установить в raw 0 ---: cflag = 0x1cb2                                        
 ldattach: линейная дисциплина, установленная на 21

Затем создайте несколько виртуальных последовательных устройств с:

 MAJOR = `cat / proc / devices | grep gsmtty |  awk '{print $ 1} `
 для i в `seq 1 4`;  делать
     mknod / dev / ttygsm $ ic $ MAJOR $ i
 сделанный

Однако, когда я пытаюсь подключиться к одному из портов / dev / ttygsm, я всегда получаю эту ошибку: «невозможно открыть / dev / ttygsm1: уровень 2 остановлен».

Кто-нибудь знает, что означает эта ошибка, и как заставить эту схему мультиплексирования работать?

Спасибо, Фред

Вы выдали команду, например AT+CMUX=0 на модем, чтобы вызвать мультиплексор в первую очередь?

Материал мультиплексора не работает, поэтому вы получаете сообщение об ошибке. Драйвер ядра и модуль AT-команд неправильно передают …