Stty linux ��� ���

Stty linux ��� ���

НАЗВАНИЕ
stty — установка характеристик терминала

ОПИСАНИЕ
Команда stty устанавливает определенные характеристики терминального ввода/вывода для устройства, являющегося стандартным вводом; команда без аргументов выдает некоторые из установленных характеристик. При этом знак ^ обозначает управляющий символ (^c — это то же самое, что CTRL+C), а сочетание ^` соответствует пустому значению. Например, обычно команда stty сообщает, что значение swtch равно ^`, однако если вызвать shl(1), то stty выдаст значение ^z.

Опциям команды stty приписан следующий смысл:

-a Выдать значение всех установленных характеристик.
-g Выдать текущие установки в формате, который может быть использован в качестве аргумента другой команды stty.

Характеристики последней группы (ниже перечислены несколько групп) реализованы с помощью характеристик из предыдущих групп. Заметим, что многие комбинации характеристик не имеют смысла, тем не менее никакой проверки корректности не производится. Характеристики выбираются из следующего набора:

Управляющие характеристики
parenb (-parenb) Разрешить (запретить) контроль по четности.

parodd (-parodd) Установить режим проверки на нечетность (четность).

cs5 cs6 cs7 cs8 Установить размер символа [см. termio(7)].

0 Немедленное освобождение телефонной линии.

110 300 600 1200 1800 2400 4800 9600 19200 38400 Установить указанную скорость передачи, если это возможно. (Не все аппаратные интерфейсы поддерживают все скорости передачи.)

hupcl (-hupcl) Освобождать (не освобождать) линию Dataphone при закрытии линии последним процессом, открывавшим ее.

hup (-hup) То же самое, что и hupcl (-hupcl).

cstopb (-cstopb) Использовать два (один) стоп-бита на символ.

cread (-cread) Разрешить (запретить) прием символов.

clocal (-clocal) Предполагать, что линия без (с) модемного управления.

loblk (-loblk) Блокировать (не блокировать) вывод экземпляра shell’а, не являющегося текущим.

Характеристики ввода
ignbrk (-ignbrk) Игнорировать (не игнорировать) прерывание при вводе.

brkint (-brkint) При прерывании выдавать (не выдавать) сигнал SIGINT (2).

ignpar (-ignpar) Игнорировать (не игнорировать) ошибки четности.

parmrk (-parmrk) Отмечать (не отмечать) ошибки четности [см. termio(7)].

inpck (-inpck) Разрешить (запретить) контроль четности ввода.

istrip (-istrip) Обрезать (не обрезать) вводимые символы до семи бит.

inlcr (-inlcr) Преобразовывать (не преобразовывать) при вводе перевод_строки в возврат_каретки.

igncr (-igncr) Игнорировать (не игнорировать) при вводе символ возврат_каретки.

icrnl (-icrnl) Преобразовывать (не преобразовывать) при вводе возврат_каретки в перевод_строки.

iuclc (-iuclc) Преобразовывать (не преобразовывать) при вводе большие буквы в малые.

ixon (-ixon) Разрешить (запретить) управление выводом в режиме СТАРТ/СТОП. Вывод приостанавливается с помощью посылки символа ASCII DC3 (^S) и продолжается после посылки символа ASCII DC1 (^Q).

ixany (-ixany) Разрешить любому символу (только DC1) вызывать продолжение вывода.

ixoff (-ixoff) Требование, чтобы система посылала (не посылала) символы СТАРТ/СТОП в ситуации, когда очередь вводимых символов почти пуста/заполнена.

Характеристики вывода
opost (-opost) Постпроцессировать вывод (не постпроцессировать вывод; игнорировать все остальные характеристики вывода).

olcuc (-olcuc) Преобразовывать (не преобразовывать) при выводе малые буквы в большие.

onlcr (-onlcr) Преобразовывать (не преобразовывать) при выводе перевод_строки в возврат_каретки.

ocrnl (-ocrnl) Преобразовывать (не преобразовывать) при выводе возврат_каретки в перевод_строки.

onocr (-onocr) Не выводить (выводить) символы возврат_каретки, если текущая колонка 0.

onlret (-onlret) На терминале символ перевод_строки выполняет (не выполняет) функции возврата_каретки.

ofill (-ofill) Использовать для задержки заполняющие символы — задержка осуществляется с помощью посылки таких символов (использовать временную задержку).

ofdel (-ofdel) Заполняющими символами являются символы DEL (NUL).

cr0 cr1 cr2 cr3 Выбрать тип задержки для возвратов каретки [см. termio(7)].

nl0 nl1 Выбрать тип задержки для переходов к новой строке [см. termio(7)].

tab0 tab1 tab2 tab3 Выбрать тип задержки для горизонтальной табуляции [см. termio(7)].

bs0 bs1 Выбрать тип задержки для символов возврата на шаг [см. termio(7)].

ff0 ff1 Выбрать тип задержки для символов перехода к новой странице [см. termio(7)].

vt0 vt1 Выбрать тип задержки для вертикальной табуляции [см. termio(7)].

Локальные характеристики
isig (-isig) Разрешить (запретить) проверку символов на соответствие специальным управляющим символам intr, quit, swtch.

icanon (-icanon) Разрешить (запретить) канонический ввод (обработку символов erase и kill).

xcase (-xcase) Каноническое (необрабатываемое) представление верхних/нижних символов.

echo (-echo) Отображать (не отображать) каждый вводимый символ.

echoe (-echoe) Отображать (не отображать) символ erase как последовательность возврат_на_шаг-пробел-возврат_на_шаг. Заметим, что в данном режиме на многих типах терминалов с ЭЛТ забой символа выполнится правильно; однако, так как номер колонки не отслеживается, то для управляющих последовательностей, табуляций и возвратов на шаг обработка символа erase может быть выполнена неправильно.

echok (-echok) Выводить (не выводить) перевод_строки после символа kill.

lfkc (-lfkc) То же самое, что и echok (-echok); данная опция вышла из употребления.

echonl (-echonl) Отображать (не отображать) перевод_строки.

noflsh (-noflsh) Запретить (разрешить) сброс после символов intr, quit или swtch.

stwrap (-stwrap) Запретить (разрешить) в синхронной линии обрезание строк с длиной, большей 79 символов.

stflush (-stflush) Разрешить (запретить) сброс в синх ронной линии после каждого вызова write(2).

stappl (-stappl) Использовать в синхронной линии прикладной режим (использовать линейный режим).

Назначение управляющих символов
управляющий_символ c В качестве управляющего_символа (erase, kill, intr, quit, swtch, eof, ctab, min, time) использовать c. Символ ctab используется с -stappl; min и time используются вместе с -icanon [см. termio(7)]. Если перед c стоит знак ^ (экранированный от интерпретации shell’ом), то используется соответствующий CTRL-символ. Сочетание ^? интерпретируется как символ DEL, а ^- — как неопределенный символ.

line число Установить порядок передачи информации по линии связи равным числу (0

Комбинации характеристик
evenp или parity Разрешить parenb и cs7.

oddp Разрешить parenb, cs7 и parodd.

-parity, -evenp или -oddp Запретить parenb и установить cs8.

raw (-raw или cooked) Разрешить (запретить) необрабатываемый ввод и вывод (без erase, kill, intr, quit, swtch, eot и постпроцессирования вывода).

nl (-nl) Сбросить (установить) icrnl, onlcr. Кроме того, -nl сбрасывает inlcr, igncr, ocrnl и onlret.

lcase (-lcase) Установить (сбросить) xcase, iuclc и olcuc.

LCASE (-LCASE) То же самое, что и lcase (-lcase).

tabs (-tabs или tab3) Сохранить при выдаче (представить пробелами) символы табуляций.

ek Вернуть символам erase и kill подразумеваемые значения # и @.

sane Присвоить всем характеристикам некоторые разумные значения.

тип_терминала Установить все режимы соответственно типу_терминала, который может принимать одно из следующих значений: tty33, tty37, vt05, tn300, ti700 или tek.

Источник

Использование программ настройки

Рассмотрим две наиболее полезных утилиты конфигурации последовательных устройств: setserial и stty.

Команда setserial

Ядро при запуске само пытается определить настройки устройств, но из-за их большого разнообразия это не всегда возможно. Хороший пример того, где это является проблемой, внутренние модемы, о которых мы говорили ранее. UART, который они используют, имеет 16-байтовый буфер FIFO, но он похож на UART 16450. Если мы определенно не сообщаем драйверу, что этот порт является устройством UART 16550, ядро не будет использовать расширенный буфер. Еще одним примером являются четырехпотровые карты, которые позволяют поделить один IRQ между несколькими устройствами. Нам, вероятно, придется сообщать ядру, который IRQ-порт предполагается использовать, и что IRQ может быть разделен несколькими устройствами.

setserial была создана, чтобы конфигурировать последовательный драйвер во время выполнения. Команда setserial обычно выполняется при начальной загрузке из скрипта, который в одних дистрибутивах называется 0setserial , а в других rc.serial . Этот скрипт обязан инициализировать последовательный драйвер, чтобы разместить любые нестандартные или необычные последовательные аппаратные средства в машине.

Команда setserial имеет большое количество параметров. Наиболее важные из них описаны в таблице 4-1. Остальные можно найти на man-странице по setserial.

Таблица 4-1. Параметры командной строки для setserial

Определяет адрес порта ввода-вывода последовательного устройства. Должен быть определен в шестнадцатеричной записи, например, 0x2f8 .

Определяет прерывание, используемое последовательным устройством.

Определяет тип UART последовательного устройства. Общие значения 16450 , 16550 и т.д. Установка этого значение в none не отключит это последовательное устройство.

Задание этого параметра инструктирует последовательный драйвер ядра, что этот порт является одним из портов платы AST Fourport.

Предписывает UART использовать быстродействие 57.6 kbps, когда процесс запрашивает 38.4 kbps.

Предписывает UART использовать быстродействие 115 kbps, когда процесс запрашивает 38.4 kbps.

Предписывает UART использовать заданное по умолчанию быстродействие 38.4 kbps, когда запрашивается. Этот параметр используется, чтобы отменить эффект spd_hi или spd_vhi на определенном последовательном устройстве.

Этот параметр заставит ядро сделать попытку автоматически определить IRQ определенного устройства. Эта попытка не может быть полностью надежной, так что, вероятно, лучше думать об этом как о просьбе к ядру предположить IRQ. Если Вы знаете IRQ этого устройства, Вы должны определить его, используя параметр irq .

Это параметр должен быть определен вместе с параметром port . Когда этот параметр задан, setserial инструктирует ядро сделать попытку автоматически определить тип UART на порте с заданным адресом. Если параметр auto_irq также задан, ядро попытается автоматически определить IRQ.

Отменяет автоопределение типа UART. Полезен, если ядро определяет его неправильно.

Типичный и простой файл rc для настройки Ваших последовательных портов при начальной загрузке показан в примере 4-1. Большинство дистрибутивов Linux включают более сложные файлы.

Пример 4-1. Образец файла rc.serial

Команда /sbin/setserial -bg /dev/ttyS* в последней строке будет печатать аккуратно форматируемое резюме аппаратной конфигурации всех активных последовательных устройств. Образец такого вывода показан в примере 4-2 .

Пример 4-2. Вывод команды setserial -bg /dev/ttyS Command

Команда stty

Имя stty, возможно, произошло от сокращения «set tty», но команда stty может также использоваться, чтобы отобразить конфигурацию терминала. Возможно, даже больше, чем setserial, команда stty обеспечивает изумительное число характеристик, которые Вы можете легко настроить. stty обычно используется, чтобы конфигурировать параметры терминала, типа того, будут ли символы отображены на экране, или какая клавиша должна генерировать сигнал прерывания. Мы объяснили ранее, что последовательные устройства являются tty-устройствами, а значит, команда stty применима к ним.

Одно из важнейших применений stty заключается в управлении аппаратным подтверждением связи на устройстве. Мы кратко говорили ранее относительно аппаратного подтверждения связи. Значение по умолчанию конфигурация для последовательных устройств: аппаратное подтверждение заблокировано. Эта установка позволяет работать последовательным кабелям “three wire”. Они не поддерживают необходимые сигналы для аппаратного подтверждения связи, и если оно включено по умолчанию, они будут не способны передать сигнал, чтобы изменить это.

Удивительно, но некоторые программы не допускают аппаратное подтверждение связи, так что если Ваш модем эту функцию поддерживает, Вы должны конфигу- рировать его так, чтобы ее использовать (проверьте руководство по модему, чтобы узнать, какую команду применить) и сконфигурировать последовательное устройство, чтобы учитывать это подтверждение. Команда stty имеет параметр crtscts , который включает аппаратное подтверждение связи на устройстве. Вам придется использовать его. Команда лучше всего должна быть выдана из rc.serial файла (или его эквивалента) при начальной загрузке. Образец показан в примере 4-3.

Пример 4-3. Файл rc.serial с командами stty

Команда stty работает на текущем терминале, но используя переадресацию ввода (» stty управлять любым tty-устройством. Про символы » » регулярно забывают. Новые версии stty имеют более удачный синтаксис для таких задач. Чтобы использовать новый синтаксис, я переписал мой пример настройки. Новую его версию можно посмотреть в примере 4-4.

Пример 4-4. Файл rc.serial с командами stty (новый синтаксис)

Я упомянул, что команда stty может использоваться, чтобы отобразить параметры конфигурации терминала tty-устройства. Чтобы отобразить все активные параметры настройки на tty-устройстве, скомандуйте:

Вывод этой команды показан в примере 4-5, Он дает Вам состояние всех параметров для этого устройства. Параметр, показанный с предшествующим минусом, как в -crtscts , означает, что данное свойство выключено.

Пример 4-5. Вывод команды stty -a

Таблица 4-2. Параметры stty для настройки последовательных устройств

Параметр Описание
port port_number

Устанавливает быстродействие линии в N бит в секунду.

Включить/выключить аппаратное подтверждение связи.

Включить/выключить XON/XOFF управление потоком.

Включить/выключить сигналы управления модема типа DTR/DTS и DCD. Это необходимо, если Вы используете последовательный кабель «three wire», поскольку он не обеспечивает эти сигналы.

Установить число бит данных соответственно в 5, 6, 7 или 8.

Включить проверку на нечетность. Отключение этого параметра включает проверку на четность.

Включить проверку четности. Когда этот параметр выключен, контроль четности или нечетности не используется.

Включить использование двух стоп-бит на символ. Когда этот параметр выключен, используется один стоп-бит на символ.

Включить/выключить повторение полученных символов обратно отправителю.

Источник

Читайте также:  Как восстановить windows 10 с точки восстановления если он не загружается
Оцените статью
Параметр Назначение
N