Не удается выполнить чтение с последовательного порта с помощью параметров socat и rawer

#socat

Вопрос:

Я пытаюсь использовать socat для чтения данных с последовательного порта; однако, похоже, что он неправильно считывается с порта при передаче rawer опции.

Если я читаю из порта с помощью или socat /dev/ttyTHS1,b9600 - или socat /dev/ttyTHS1,b9600,raw - я вижу ожидаемые данные, но при запуске socat /dev/ttyTHS1,b9600,rawer - я не получаю вывода.

Я запускаю это в Ubuntu 18.04 на процессоре aarch64 с версией ядра 4.9.140. Я пробовал использовать «стандартный» socat из apt (1.7.3.2-2ubuntu2), а также версию socat 1.7.4.1, которую я создал из исходного кода.

Одна вещь, которую я заметил, заключается в том, что когда я запускаю socat в рабочей конфигурации (например, с raw опцией), а затем изучаю последовательный порт, stty -F /dev/ttyTHS1 он выглядит так

 speed 9600 baud; line = 0; min = 1; time = 0; -brkint -icrnl -imaxbel -opost -isig -icanon   

в то время как когда socat запускается с rawer опцией, это выглядит так:

 speed 0 baud; line = 0; min = 1; time = 0; -cread -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke  

и когда та же команда выполняется с rawer опцией на другой платформе (socat 1.7.3.2-2ubuntu2, в Ubuntu 18.04 x86_64, 5.4.0-84-generic, открытие USB-последовательного устройства) speed , как представляется, заполняется правильно.

Есть ли причина rawer , по которой это не сработало бы так, как я его использую?

Комментарии:

1. Я уверен, что в прошлом у меня были проблемы с rawer также в версии socat. Попробуйте просто заменить его эквивалентным raw,echo=0 .