Опубликован: 12.11.2008 | Доступ: свободный | Студентов: 3586 / 355 | Оценка: 4.31 / 4.35 | Длительность: 19:07:00
Лекция 4:

Управление портами

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