Как включить CR / LF на экране GNU? - PullRequest
22 голосов
/ 18 октября 2011

Я использую экран для чтения текста с последовательной консоли. Проблема в том, что в выводе есть только символ новой строки \ n, но нет возврата каретки \ r, поэтому экран выглядит следующим образом ...

Line1
     Line2
          Line3

Интересно, есть ли патч для исправления этой проблемы?

Ответы [ 4 ]

23 голосов
/ 20 марта 2012

<b>onlcr</b> для перевода o исходящих n ew l ines в c прибытие R eturns.

stty -F /dev/ttyS0 inlcr переведет входящие новые строки в возврат каретки. Вы можете запустить это с другого терминала после запуска экрана, чтобы избежать сброса, который экран может сделать при запуске. К сожалению, однако, это только изменит проблему. После этого вы получите только возвраты и никаких новых строк.

Необходим параметр добавление возврата к входящему символу новой строки, так что терминал получает \n\r, то есть то, что последовательное устройство должно выводить в первом место. Кажется, есть опция onlret, чтобы сделать это для исходящих данных, но нет опции inlret, как нам, похоже, понадобится в этом случае.

У меня точно такая же проблема (хотя и с использованием Picocom), и я несколько дней гуглял, пытаясь найти стандартное исправление, но, похоже, ни у кого его нет. Есть ряд последовательных устройств, которые выводят только \n и просто не могут быть настроены на вывод \r\n, и я отказываюсь верить, что все они принадлежат только двум пользователям Linux. Что дает!?

8 голосов
/ 29 января 2014

Если вы используете программу miniterm.py , которая поставляется с pyserial, она будет интерпретировать переводы строк как crlf. Это не самый полнофункциональный эмулятор терминала, но для взаимодействия с простыми последовательными устройствами он выполняет свою работу.

Синтаксис использования (в OSX):

miniterm.py /dev/tty.usbserial-XXXXXX 115200

Замените XXXXXX на любое устройство, которое появится в вашей системе.

2 голосов
/ 20 апреля 2017

В моем случае сработало: stty -F /dev/ttyACM0 -icrnl

Потому что сериал был неявно установлен для перевода CR в NL.Эта команда вернула его обратно.Обратите внимание на знак минуса, предшествующий icrnl.

1 голос
/ 19 октября 2011

Попробуйте stty onlcr.

Страница man сообщает, что она переведет переводы строк на пары возврата каретки / перевода строк на выходе, что, по-видимому, вам и нужно.

...