Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

4.5. Управление установкой линии терминала

4.5.1. Установка портов tty с помощью меню.

4.5.2. Установка tty с помощью команды ttydefs

4.5.3. Справочник установки ttymon и линии терминала.

Установка скорости и терминала для портов TTY определяются в управляющем файле /etc/ttydefs. Этот файл можно модифицировать с помощью команды или выбора Ports из меню System Administration.

4.5.1. Установка портов tty с помощью меню

Если вы выберете tty-settings из меню Ports, система выдаст экран, дающий вам возможность добавлять, модифицировать или удалять установки tty из системы.

4.5.1.1. Добавление установки tty с помощью меню

Если вы выбираете опцию add, система выдаст вам следующую форму, которую надо заполнить (показаны значения по умолчанию):

		Create TTY Line Settings and Hunt Sequences
	--------------------------------------------------------
		Ttylabel:
		Enable autobaud? No
		Baud rate:
		Nextlabel:
		Initial line settings:
			hupcl  erase ^h
	
	Final line settings
			sane ixany hupcl tab 3 erase ^h
	
	Fill in the form and press [SAVE]

ttylabel - это необязательная метка, используемая для идентификации конкретной устанавливаемой линии.

Autobaud - это параметр скорости передачи линии. Когда autobaud используется вместо установки скорости передачи, ttymon определяет скорость линии порта TTY, анализируя первый из введенных символов "возврат каретки", и устанавливает скорость в соответствии с этим.

Baud rate - это скорость линии.

nextlabel - это имя еще одной установки линии, которая используется, если текущая установка не обеспечивает совместимую скорость линии пользователю (выявленную, если пользователь посылает BREAK). Серия скоростей часто связывается вместе таким способом в замкнутое множество, носящее название последовательности замкнутого поиска (hunt). Например, 4800 может связываться с 1200, которая в свою очередь связывается с 2400, которая, наконец, связывается с 4800.

Initial and Final line settings поддерживают любые параметры termio (7), которые применяются в линии.

Показанные поля флагов имеют следующие значения:

hupcl -
Сброс при замкнутой последовательности.
sane -
Составной флаг, который стоит вместо множества нормальных характеристик линии.
ixany -
Позволяет любому символу перезапустить вывод. Если этот флаг не указан, DC1 (CTL-Q) будет перезапускать вывод.
tab3 -
Посылает метки табуляции терминалу в виде пробелов.
erase ^h -
Устанавливает символ стирания на ^h. В большинстве терминалов ^h - это реверс.
echoe -
Эхо - стирание символа в виде символьной строки
реверс - пробел - реверс.
В большинстве терминалов так будет стираться стертый символ.

4.5.1.2. Просмотр установок tty с помощью меню

Если вы выберете опцию List Line Settings из меню установок tty, система выдаст прокручиваемый список всех последовательностей hunt. Список будет от каждой ttylabel до соответствующей ей nextlabel. Если вы выберете установку из списка, вы получите детальное описание следующего вида:

		Detailed Line Settings for TTY Label <label>
	----------------------------------------------------------
		Ttylabel:
		Initial Flags:
	
		Final Flags:
		Autobaud:
		Nextlabel:
	
	flag           meaning
	.                .
	.                .
	.                .

По существу информация та же, что вы имеете, когда создаете установку линии, за исключением того, что указывается еще значение каждого флага.

4.5.1.3. Удаление установки линии с помощью меню

Когда вы выберите опцию Remove Line Setting, вы также получите список существующих меток и следующих меток. Выбор метки для удаления по новому свяжет последовательность hunt.

4.5.2. Установка tty с помощью команды ttydefs

/etc/ttydefs - это управляющий файл, используемый ttymon. Он определяет установки скорости и терминала для портов TTY. Файл ttydefs содержит информацию, перечисленную ниже. Далее показана связь между полями ttylabel и nextlabel в управляющих файлах ttymon и файлах ttydefs. Образец файла ttydefs:

"ttylabel" -
Когда монитор ttymon инициирует порт, он в файле ttydefs ведет поиск элемента, который содержит установки termio (7) для этого порта. Правильный элемент тот, чья ttylabel соответствует ttylabel для этого порта. ttylabel для порта является частью информации, включенной в управляющий файл монитора ttymon. По соглашению ttylabel идентифицирует скорость передачи, но делать это не надо.
initial-flags -
Содержит параметры termio (7), на которые первоначально устанавливается терминал. initial-flags должны указываться с помощью синтаксиса, распознаваемого командой stty (1).
final-flags -
Содержит параметры termio (1), установленные монитором ttymon после подачи запроса на соединение и непосредственно перед вызовом сервиса порта. Конечные флаги должны указываться с помощью синтаксиса, распознаваемого stty.
autobaud -
Это параметр скорости линии. Когда используется автоматическая настройка скорости передачи вместо установки скорости передачи, ttymon определяет скорость линии порта TTY, анализируя первый из введенных возвратов каретки, и в соответствии с этим устанавливает скорость. Если поле autobaud содержит символ A, то средство автоматической настройки скорости разрешается. В противном случае - автоматическая настройка запрещается.
nextlabel -
Если пользователь устанавливает (послав BREAK), что текущий элемент ttydefs не обеспечивает совместимую скорость линии, ttymon будет вести поиск элемента ttydefs, чья ttylabel соответствует полю nextlabel. ttymon затем будет использовать это поле в качестве поля ttylabel. Серия скоростей часто таким образом связывается вместе в замкнутое множество, носящее название последовательности hunt. Например, 4800 можно связать с 1200, которая в свою очередь связывается с 2400, которая наконец связывается с 4800.

Все установки termio (7), поддерживаемые командой stty, поддерживаются как параметры в файле ttydefs. Например, вы сможете указать стирание по умолчанию и символы завершения.

4.5.2.1. Установка линий tty с помощью команды sttydefs

sttydefs (1M) - это команда администратора, которая обслуживает файл ttydefs. Файл ttydefs содержит информацию об установках линий и последовательностях hunt для портов TTY системы. Команда sttydefs вместе с файлом ttydefs обеспечивает средства управления режимами терминала и установками линий. Команда sttydefs используется для:

  • распечатки информации, содержащейся в ttydefs;
  • добавления записей для портов терминала в файл ttydefs;
  • удаления записей из файла ttydefs.

4.5.2.2. Просмотр информации об установке линии терминала

Для просмотра информации об установке линии терминала используется команда:

	/usr/sbin/sttydefs -l [ttylabel]

Если ttylabel указаны, sttydefs распечатывает запись ttydefs, которая соответствует этой ttylabel. Если ttylabel не указана, sttydefs распечатывает эту информацию для всех записей в файле /etc/ttydefs. sttydefs проверяет, что каждый отображаемый ею элемент - правильный, и что поле nextlabel элемента относится к существующей ttylabel. Для каждого выявленного недействительного элемента распечатывается сообщение об ошибке.

4.5.2.3. Добавление записей в файл ttydefs

	/usr/sbin/sttydefs -a ttylabel [-b] [-n nextlabel]\
		[-i initial-flags] [-f final-flags]

sttydefs с параметром -a добавляет запись в файл ttydefs. ttylabel идентифицирует запись. Далее описывается действие параметров -b, -n, -i или -f, когда они используются с параметром -a. Параметр -a является действительным только тогда, когда вызывается привилегированным пользователем.

Параметр -b разрешает автоматическую настройку скорости передачи.

Параметр -n указывает значение, используемое в поле nextlabel. Если nextlabel не указано, sttydefs будет устанавливать nextlabel на ttylabel.

Параметр -i указывает значение, используемое в поле initial-flags. Аргумент этого параметра должен быть представлен в формате, распознаваемом командой stty. Если initial-flags не указан, sttydefs будет устанавливать initial-flags на флаг termio (7) 9600.

Параметр -f указывает значение, используемое в поле final-flags. Аргумент параметра -f должен быть представлен в формате, распознаваемом командой stty. Если final-flags не указаны, sttydefs будет устанавливать final-flags на флаги структуры termio (7) 9600 и sane.

Следующая командная строка создает новую запись в ttydefs:

	sttydefs -aNEW -nNEXT -i"1200 hupcl erase ^h"\
		-f"1200 sane ixany hupcl erase ^h echoe"

Приводимые поля флагов имеют следующие значения:

300-19200 Скорость передачи линии.
hupcl Сброс при замкнутой последовательности.
sane Составной флаг, который стоит вместо множества нормальных характеристик линии.
ixany Позволяет любому символу перезапускать вывод. Если этот флаг не указан, только DC1 (CTL-Q) будет перезапускать вывод.
tab3 Посылает метки табуляции терминалу в виде пробелов.
erase ^h Устанавливает символ стирания ^h (CTL-h). В большинстве терминалов ^h это реверс.
echoe Эхо - стирание символа как символьной строки реверс-пробел-реверс. В большинстве терминалов так будет стираться стертый символ.

4.5.2.4. Создание последовательности hunt с помощью команды

Нижеприводимая последовательность команд добавляет записи с метками 1200, 2400, 4800 и 9600 в файл ttydefs и помещает их в замкнутый список или последовательность hunt. В приводимом примере поле nextlabel каждой строки является ttylabel следующей строки. Поле nextlabel для последней приводимой строки вновь указывает на первую строку в последовательности.

Целью последовательности hunt является связывание диапазона скоростей линии. Ввод BREAK в ходе поиска скорости передачи приводит к тому, что ttymon переходит к следующему элементу в последовательности. Поиск продолжается до тех пор, пока скорость передачи не будет соответствовать скорости терминала пользователя.

	sttydefs  -a1200 -n2400 -i 1200 -f "1200 sane"
	sttydefs  -a2400 -n4800 -i 2400 -f "2400 sane"
	sttydefs  -a4800 -n9600 -i 4800 -f "4800 sane"
	sttydefs  -a9600 -n1200 -i 9600 -f "9600 sane"

Файл ttydefs, содержащий эти записи, будет выглядеть так:

	# VERSION-1
	
	1200:1200:1200: sane::2400
	2400:2400:2400: sane::4800
	4800:4800:4800: sane::9600
	9600:9600:9600: sane::1200

4.5.2.5. Удаление записей из файла ttydefs

	/usr/sbin/sttydefs -r ttylabel

Запись для ttylabel, указанной в командной строке, удаляется из файла ttydefs.

Параметр -r является действительным, если вызывается привилегированным пользователем.

Примечание. Если запись, которую вы удаляете, является частью последовательности замкнутого поиска (hunt), обязательно исправьте последовательность. Может оказаться кстати запуск sttydefs с параметром -l, после того как запись будет удалена sttydefs -l будет проверять на наличие неправильных значений полей и разъединенных последовательностей hunt и распечатает сообщения об ошибках.

4.5.2.6. Установка параметров терминала с помощью команды stty

Команду stty (1) можно использовать для установки и изменения параметров терминала после регистрации пользователя. Командная строка stty может быть добавлена к файлу profile пользователя, чтобы можно было устанавливать параметры автоматически как часть процесса login. Ниже приводится пример простой команды stty:

Пример.

	stty cr0 nl0 echoe -tabs erase ^h

Параметры в примере имеют следующие значения:

cr0 Отсутствие задержки на возврат каретки или новой строки. Задержки не используются в видеотерминале, но необходимы на некоторых печатающих терминалах, давая время привести в движение механические части оборудования.
echoe Стирает символы при реверсе.
-tabs Расширяет метки табуляции пробелами при печати.
erase ^h Изменяет символ удаления символа на ^h. Символ удаления символа по умолчанию - это знак #. Большинство терминалов передают ^h после нажатия клавиши возврата каретки.

4.5.3. Справочник установки ttymon и линии терминала

Синтаксис команды Описание
sacadm -l [-t type|-p pmtag] Просматривает все мониторы портов (один -l), все мониторы портов заданного типа (-t type) или один монитор портов (-p pmtag).
pmadm -l [-t type|-p pmtag][-s svctag] Просматривает весь сервис для всех мониторов (один -l), весь сервис для всех мониторов портов заданного типа (-t type), весь сервис конкретного монитора (-p pmtag) или один сервис (-s svctag).
sacadm -a -p pmtag -t ttymon -c cmd -v 'ttyadm -V' Добавляет монитор портов ttymon. ttymon, используемая с аргументами параметра -v sacadm -a или pmadm -a, дает командную строку, содержащую номер версии ttymon для управляющего файла нового монитора портов.
sacadm -r -p pmtag Удаляет монитор порта
pmadm -a -p pmtag -s svctag -i id [-f ux] -v 'ttyadm -V'\
-m "'ttyadm [-b] [-r count] [-c] [-h] [-i msg]\
[-m modules] [-p prompt] [-t timeout]\
-d device -l ttylabel -s service'"
Добавляет сервис ttyadm, используемая с аргументом параметра -m pmadm -a, дает поля pmspecific для включения в управляющий файл монитора портов.
pmadm -r -p pmtag -s svctag Удаляет сервис
pmadm -e -p pmtag -s svctag Разрешает сервис
pmadm -d -p pmtag -s svctag Запрещает сервис svctag, доступный с помощью монитора портов pmtag.
sacadm -e -p pmtag Разрешает весь сервис, определенный для монитора pmtag.
sacadm -d -p pmtag Запрещает весь сервис, определенный для монитора pmtag.
/usr/sbin/sttydefs -a ttylabel [-b] [-n nextlabel]\

[-i initial-flags] [-f final-flags]

Добавляет элемент в файл /etc/ttydefs.
/usr/sbin/sttydefs -l [ttylabel] Распечатывает информацию об установке линии терминала из файла /etc/ttydefs для портов терминала с меткой ttylabel. Если ttylabel не указана, распечатывает информацию об установке линии терминала для всех записей в файле.
/usr/sbin/sttydefs -r ttylable Удаляет записи для ttylabel, указанной из /etc/ttydefs.

Назад | Содержание | Вперед