fopen() не работает на /dev/ttyACM0

Я работаю над встроенным Linux (созданным через buildroot, не мной, но у меня есть доступ). Я подключаю сотовый модем через USB, который создает ttyACM0 (и еще несколько ttyACMx). Я использую pppd для запуска модема - и он работает нормально.

Я пытаюсь обновить APN в chatscript (перед запуском pppd), задав "AT+CIMI" и проанализировав номер сети в ответе.

Я попробовал ininout, довольно маленькую программу на языке c, которая работает на моем ноутбуке (Ubuntu) и на другом встроенном Linux, но не работает на этой платформе. Он использует fopen (). Я попытался определить проблему и обнаружил, что fopen () завершается с ошибкой 5 (ошибка ввода / вывода). Я изменил, чтобы открыть (), и это сработало!!! Я могу отправлять AT-запросы и просматривать полученные ответы.

Так в чем же дело?

*** PS - / dev монтируется как tmpfs, он запускает busybox mdev (в отличие от devtmpfs от udev на моем ноутбуке).

Благодарю.

1 ответ

В конце концов я использовал API последовательного порта с каркасом Qt (это приложение Qt). Он использует базовый API open()/write().

Другие вопросы по тегам