Купить
 
 
Жанр: Учеба

SCO: Пособие администратора системы Unix

страница №34

плата расширения является "интеллектуальной" платой с
обеспеченным производителем драйвером, вам не следует вы-
полнять mkdev serial для выполнения процедуры установки.
Чтобы распознать новую плату в системе, следует выполнить
программу установки, предоставляемую производителем.

Назначим прерывания двум стандартным портам СОМ: СОМ1 -
прерывание 4 и СОМ2 - прерывание 3. Большая часть последо-
вательных плат использует одно прерывание на панель, поэ-
тому две четырехпортовые платы могут использовать СОМ1 и
СОМ2. Следует удовлетворять требования других продуктов и
аппаратуры для предотвращения конфликтов прерываний. Смот-
рите раздел serial(HW) для получения дополнительной инфор-
мации о СОМ1 и СОМ2.

- 14-6 -

Когда обеспеченная плата правильно сконфигурирована для
нужного порта СОМ и распознается во время процедуры на-
чальной загрузки, выполните эту команду:

/etc/mkdev serial

sysadmsh пользователи выбирают: система --" аппаратура -
-" последовательная плата

Это создает файлы устройств для дополнительных последова-
тельных портов.
2. Убедитесь, что вы подключены к системе в качестве корня в
многопользовательском режиме.

Подсоедините терминал и включите его. Установите для него
9600 бод, 8 битов данных, 1 стоповый бит, отсутствие конт-
роля четности, полнодуплексный режим и взаимодействие XON/
XOFF. Если терминал не работает в этом режиме, получите
информацию о конфигурации терминала в разделе "Изменение
файла gettydefs", расположенном далее в этой главе, и на
странице stty(C) документа User's Reference.

Некоторые терминалы присоединяются кабелем непосредственно
к компьютеру. Другие терминалы присоединяются к модему.
Терминалы, присоединяемые к модему, используют "нулевой
модем" или "коннектор модема" - кабель с использованными
контактами 2 и 3. Присоедините терминал таким образом,
чтобы Передача Данных на последовательном порту была свя-
зана с Получением Данных на терминале последовательного
порта. Сигнал Земля должен быть связан с Сигналом Земля.
Другие контакты вероятно не следует соединять. Операцион-
ная система требует только соединения контактов 2, 3 и 7.

Дополнительная информация о терминале содержится в руко-
водстве по терминалу или документации по последовательной
коммуникации.
3. Если порт открыт, нажмите клавишу "Возврат" несколько раз,
чтобы увидеть появление подсказки login:. Если это прои-
зойдет, вы готовы к подключению к системе. Если нет, ис-
пользуйте консоль или рабочий терминал для подключения к

- 14-6а -

системе в качестве суперпользователя (корневого), и зак-
ройте порт этой командой:

disable ttyname

В предыдущей команде ttyname - это специальное имя уст-
ройства рассматриваемого порта. Убедитесь, что вы исполь-
зуете устройство управления не модемом, например
/dev/tty1a, а не /dev/tty1A. Дополнительная информация о
именах последовательного порта содержится в разделе
serial(HW) и разделе "Добавление и конфигурирование после-
довательных портов" в данной главе.

- 14-7 -

4. Проверьте, что элемент для этого последовательного порта в
файле /etc/inittab выглядит аналогично следующему
(ttyname - это имя файла устройства, например,
/dev/tty1a):

t1a:2:respawn:/etc/getty tty1a m

Если элемент не соответствует приведенному в этом примере
образцу, редактируйте файл для его коррекции. Информация о
формате файла /etc/inittаb содержится на странице
inittab(F) документа User's Reference.

Примечание
Если вы хотите, чтобы любые изменения, сделанные в
/etc/inittаb были постоянными, следует также сделать некото-
рые изменения в /etc/conf/cf.d/init.base. Это необходимо, так
как каждый раз, когда ядро перередактируется (когда добавля-
ется драйвер или изменяется настраиваемый параметр)
/etc/inittаb реконструируется из элементов из /etc/conf/cf.d/
init.base.
5. Посмотрите с консоли в качестве root, сможете ли вы пере-
направить выход на терминал вводом:

Ъ2date " /dev/ttyname

Если вы не увидите дату, напечатанную на терминале, и не
уверены в корректности ttyname, попытайтесь запустить дру-
гие ttynames для этого последовательного порта. Если вы
все же не увидите дату, отпечатанную на терминале, попы-
тайтесь выполнить следующее:
- убедитесь, что терминал подсоединен нужным образом;
- проверьте, что кабель конфигурирован правильно. Если
последовательный порт, который вы используете, имеет
25-контактный разъем ((DB-25), читайте, начиная с шага
2 в предыдущем наборе инструкций. Соединены ли контакты 2,
3 и 7 правильно? (Заметим, что контакты, отличные от 2, 3
и 7 не используются).
Если ваша система или плата расширения имеет 9-контактный
разъем (DB-9), вам следует использовать (9-25) контакт-
ный разъем. Смотрите руководство по аппаратуре для получе-
ния информации о (9-25)- контактных соединениях;
- проверьте конфигурацию установки терминала. Смотрите шаг
2 предыдущего набора инструкций;

- 14-8 -

- проверьте переключатели последовательного порта. Если вы
используете многопортовую плату, попытайтесь использовать
другие линии на этой плате;
- присоедините терминал к стандартному, последовательному
порту (СОМ1 или СОМ2), чтобы убедиться, что терминал и ка-
бель работают правильно. Если вы уже используете порт
СОМ1, попытайтесь переключиться на другой порт.
Если вы успешно установили другой терминал, переключите
аппаратуру между работающим и неработающим терминалом по
одному за раз. Это может помочь при решении аппаратной
проблемы. Заметим, что некоторая сбоящая аппаратура может
работать под управлением операционной системы DOS, но не
под управлением операционной системы UNIX.
6. Когда дата печатается на терминале, разблокируйте порт
следующей командой:

Ъ2enable ttyname

Команда enable запускает процесс getty, который отображает
следующую подсказку подключения:

login:

Если вы не видите подсказку "login", введите следующую ко-
манду, чтобы убедиться, что getty выполняется для порта и
что программа конфигурирована правильно:

Ъ2ps -t ttyname
Экран должен отображать сообщение аналогично тому, как это
делается в следующем примере, когда либо "login", либо
"getty" перечисляется в колонке "COMMAND":

+-----------------------------------------------------
| PID TTY TIME COMMAND
| (время) (команда)
| 2557 1a 0:06 getty

7. Если вы набрали команды enable и disable много раз, то
возможно, что новый процесс getty не может быть выполнен
для этого порта. Если так, то закройте систему, выполните
повторную загрузку, выполните процедуру подключения в ка-
честве "корня" в многопользовательском режиме и попытай-
тесь выполнить свои действия снова.

- 14-9 -

ЗАДАНИЕ ЛИНИЙ ТЕРМИНАЛОВ

Система может автоматически адаптироваться к нескольким
скоростям передачи для терминала и к нескольким параметрам установки.
Та же программа, которая отображает сообщение login
(getty(М)) читает эти значения линии терминала из таблицы, обрабатывая
каждый параметр установки до успешного завершения и
до того, как пользователь сможет подключиться к системе. Эта
таблица обеспечивает несколько параметров установки, принимаемых
по умолчанию для различных типов линий терминала.
Getty автоматически выполняется как часть процесса login.
Таблица параметров установки терминала находится в файле, называемом
/etc/gettydefs. Вы можете редактировать файл gettydefs
для добавления различных наборов характеристик терминалов или
их изменения.

Файл gettydefs

Файл /etc/gettydefs содержит информацию, которую программа
getty использует для задания характеристик линии терминала, таких
как скорость передачи данных в бодах. Файл хранится в виде
таблицы. Каждый элемент таблицы разделен на пять полей. Эти поля
включают:

label#initial-flags#final-flags#login-prompt#next-label
метка начальные конечные подсказка следующая
флаги флаги login метка

[#login-program]
программа login

Этими полями являются:

label идентифицирует элемент gettydefs для программы
getty. Это может быть число или буква. label
соответствует полю режима линии в /etc/inittab.
Программа init передает режим линии программы
getty, как аргумент.

initial-flags устанавливают характеристики линии терминала,
когда программа getty первоначально устанавли-
вает связь. Программа getty распознает флаги,

- 14-9а -
перечисленные в termio(М) в документе User's
Reference. Часто единственным устанавливаемым
флагом в этом поле является флаг скорости пере-
дачи. Например В300 задает скорость передачи,
равную 300.

- 14-10 -

final-flags устанавливают характеристики линии терминала
(сразу перед тем, как программа getty вы-
полняет процедуру login. Эти флаги опи-
сывают рабочие характеристики для линии. Снова
устанавливается скорость передачи В. Другие
общие флаги включают SANE (составной флаг, ко-
торый устанавливает для ряда характеристик
терминала соответствующие значения, ТАВ3 (рас-
ширяет таблицы пробелами), IXANY (разрешает
любому символу выполнение рестарта выхода) и
HUPCL (перехватывает линию при конечном закры-
тии). Флаги могут вводиться в любом порядке.

login-prompt содержит сообщение LOGIN, выдаваемое пользова-
телю. Это поле печатается точно в том виде, в
каком оно вводится, включая пробелы и символы
табуляции. Символ "@" в поле подсказки login
расширяется в первой строке (или второй стро-
ке, если она имеется) в файле /etc/systemid
(если только символу @ не предшествует знак
'\').
Распознаются несколько последовательностей
символов, включая:
\n перевод строки \t табуляция
\r возврат каретки \f перевод формата
\v вертикальная табуляция \b пробел
\nnn (3 восьмеричных цифры)
заданные символы ASCII
next-label идентифицирует следующую метку в gettydefs для
getty для повторного выполнения, если предыду-
щее заканчивается неудачно. Getty переходит на
следующую метку, если пользователь нажимает
клавишу BREAK при попытке подключения к систе-
ме. Группы элементов, такие как коммутируемые
или TTY линии, должны образовывать закрытый
набор так, что getty переходит обратно к пер-
воначальному входу, если ни один из других
входов не выполняется успешно.

login-program имя программы, которая в действительности
подключает пользователей к системе. По умолча-

- 14-10а -

нию это программа /etc/login. Это поле являет-
ся выборочным.
Если присутствует ключевое слово AUTO, то
getty не выдает подсказку для имени пользова-
теля, но вместо этого использует имя устройс-
тва (то есть tty03) как имя пользователя и не-
медленно выполняет программу login.

- 14-11 -

Каждое поле разделяется знаком решетки (#) и каждый элемент
в gettydefs разделяется пустой строкой.
Элемент в gettydefs может выглядеть следующим образом:

4#B1200 SANE TAB3 HUPCL #login: #2#AUTO /etc/login new

Далее следует описание каждой части этой строки:
* число 4 идентифицирует этот элемент getty;
* следующее поле задает скорость передачи 1200;
* третье поле указывает скорость передачи (В1200), SANE
(составной флаг для ряда характеристик) и HUPCL (перех-
ват строки при конечном закрытии);
* login : появляется как подсказка login. Если это задание
не успешно, getty переходит к метке 2 в gettydefs;
* AUTO пытается подключить пользователя выполнением
/etc/login new.
Если последний элемент также содержит filename, то выполняется
программа login. (Заметим, что filename и соответствующая
программа login создаются пользователем). Например может
использоваться включение файла, такого как /etc/diаl_login для
линии, присоединенной к модему. Следует задать идентификатор
пользователя, назначить пароль, проверить пользователя и далее
назначить пользователя. При этом возможно потребуется пароль
для системы в добавление к учетному паролю, а также задание
специального набора переменных среды подключения, включенных в
/etc/default/dial_login.

Изменение файла gettydefs

Файл /etc/gettydefs задает наборы элементов для коммутируемых
линий и линий терминалов. Эти наборы элементов соответствуют
заданиям режимов линий в /etc/inittab. Программа init передает
режим линии как аргумент для getty.

- 14-12 -

Можно редактировать gettydefs для добавления новых установок
для терминала или изменения существующих. Например задание
установок для терминала может выглядеть следующим образом:

4 # B2400 HUPCL # B2400 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5

5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6

6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
Для изменения файла-образца gettydefs таким образом, чтобы
getty пыталась использовать скорость передачи 1200 выполните
следующие действия:
1. Вызовите текстовый редактор для редактирования первой
строки файла gettydefs.
2. Измените первое и третье поля с В2400 на В1200.
3. Сохраните gettydefs и выйдите из редактора.
Файл-образец будет выглядеть как в следующем примере:
4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5

5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6

6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
Вы можете также добавить дополнительные задания для линии
терминала в gettydefs. Флаги и допустимые значения для заданий
для терминала перечислены в stty(C) документа User's Reference.
Когда вы добавляете новый элемент, убедитесь, что группы
элементов в gettydefs образуют закрытый набор, так что поле
next-label последнего элемента направляет getty обратно к первому
элементу группы.
Для добавления элемента, задающего скорость передачи 300 в
предшествующем файле образце gettydefs выполните следующие шаги:

1. Вызовите текстовый редактор для редактирования файла /etc/
gettydefs.

- 14-13 -

2. Найдите точку, где вы хотите поместить новые определения
установки для gettydefs. Порядок элементов не существенен;
getty только просматривает метку. В данном примере новый
элемент является последним элементом файла.
3. Поместите символ возврата каретки после последней строки в
файл и введите следующую новую строку

# B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4

4. Для помещения метки 7 в набор меток измените поле
next_label для элемента с 6 на 7:

6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 7

Getty теперь направляется с метки 6 на метку 7 и далее обратно
на метку 4.

5. Завершите работу текстового редактора с сохранением изме-
ненного файла gettydefs.
Новый файл gettydefs выглядит следующим образом:
4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5

5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6

6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 7

7 # B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4

Проверка параметров установки терминала

Каждый раз, когда вы изменяете параметры установки линии
терминала или добавляете новые элементы в файл gettydefs следует
проверить, что новые значения удовлетворяют getty Чтобы сделать
это, используйте команду getty с возможностью проверки -с
и именем файла.
Например для проверки gettydefs введите:
getty -c /etc/gettydefs

- 14-14 -

Если любые из значений и параметров установки в файле
gettydefs не разрешены, getty -с отображает их на экране терминала.

Дополнительная информация о getty и gettydefs содержится в
разделах getty(M) и gettydefs(F) документа User's Reference.

- 14-15 -

ИЗМЕНЕНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОЙ ЛИНИИ

Когда вы "открываете" терминал командой enable, система
автоматически устанавливает рабочие характеристики последовательной
линии по умолчанию. Иногда эти значения не соответствуют
величинам, используемым терминалом и поэтому должны меняться,
чтобы обеспечить связь между системой и терминалом. Можно
отобразить рабочие характеристики последовательной линии командой
stty (set tty). Если нужно изменить характеристики "открытого"
порта, следует использовать элементы в файле gettydefs, а
не команды stty, приведенные ниже.

Примечание
Любые параметры установки для порта, задаваемые командой
stty, действуют только до тех пор, пока рассматриваемый порт
открыт. Например, если вы хотите изменить скорость передачи
tty2a, а tty2a не "открыт", то сначала команда stty открывает
порт, далее изменяет параметры установки порта и окончательно
закрывает порт. Когда она закрывает порт последний раз, зна-
чения параметров установки восстанавливаются к своим первона-
чальным значениям. В командах stty позднее в данном разделе
используется цикл while для устранения такого поведения ко-
манды stty. Если вы выполняете stty перенаправляя вход с
"/dev/ttyname, то она работает с текущей последовательной ли-
нией, которую вы открыли. В этом случае так как последова-
тельная линия остается открытой после выдачи команды stty,
значения параметров установки сохраняются.

Можно отобразить текущие рабочие характеристики последовательной
линии вводом этой команды с терминала, присоединенного
к этой линии:

stty

Если невозможно подключиться к системе с этого терминала,
вы можете использовать другой терминал для отображения характеристик.
Подключитесь к системе как суперпользователь с другого
терминала и введите:

Ъ2stty " ttyname

- 14-15а -

В предыдущей команде ttyname - это имя специального файла
устройства, соответствующего последовательной линии (смотрите
главу "Оглавления UNIX и специальные файлы устройств"). Например
данная команда отображает текущие характеристики последовательной
линии с именем /dev/tty1a:

- 14-16 -

stty " /dev/tty1a

Команда отображает скорость передачи, схему четности и
другую информацию о последовательной линии. Эта информация объясняется
в разделе stty(С) документа User's Reference.
Одним из возможных изменений для последовательной линии
является изменение скорости передачи. Это обычно делается с
терминала, присоединенного к другой последовательной линии, так
как изменение скорости нарушает связь между терминалом и системой.
Перед тем, как вы изменяете скорость, вам необходимо знать
текущую скорость передачи терминала (смотрите руководство по
аппаратуре терминала для определения текущей скорости передачи).
После того, как вы получили скорость передачи, подключитесь
к системе как суперпользователь с другого терминала и введите:


Ъ2(stty Ъ1baud-rate; while:; do sleep 3600; done) " ttyname &,

где baud-rate - это текущая скорость передачи терминала, а
ttyname - это имя специального файла устройства, соответствующего
последовательной линии, для которой вы хотите провести изменения.
Скорость передачи должна содержаться в наборе 50, 75,
110, 134, 150, 200, 300, 600, 1200, 2400, 4800 и 9600.

Например команда:

(stty 9600; while:; do sleep 3600; done) " /dev/tty1a &

изменяет скорость передачи последовательной линии /dev/tty1a
на 9600. Заметим, что символ "меньше, чем" (") используется как
для отображения, так и для задания параметров последовательной
линии с другого терминала.
Другим возможным изменением является изменение способа,
которым система обрабатывает вход и выход для последовательной
линии. Такие изменения обычно делаются с терминала, присоединенного
к последовательной линии. Например команда

stty tabs

приводит к тому, что система расширяет символы табуляции

- 14-16а -

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

stty echoеЪ

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

Заметим, что команда stty может также использоваться для
адаптации последовательной линии к необычному терминалу, к другому
типу последовательного устройства, требующего генерации и
регистрации четности или специальной обработки ввода и вывода.
Полное описание этой команды содержится в разделе stty(C)
документа User's Reference.

- 14-17 -

ЗАДАНИЕ ТИПА ТЕРМИНАЛА

Системы UNIX требуют, чтобы тип терминала был ясно определен
перед работой с этим терминалом. Предпочтительным методом
задания типа терминала является назначение типа переменной
TERM, специальной переменной среды, связывающей используемый
терминал со списком характеристик, приведенном в файле
/etc/terмсар. Эти характеристики сообщают системе, как интерпретировать
клавиши терминала и как отображать данные на экране
терминала. Если вы используете оболочку Bourne shell (sh), то
назначение TERM имеет вид:

Ъ2TERM=Ъ1termtype; export Term

Если вы используете оболочку С (csh), то назначение TERM
имеет вид:

Ъ2setenv TERM termtype

termtype должно быть одним из имен, связанных с одним из
терминалов, определенных в файле /etc/termcap. Назначение должно
вводиться с терминала, тип которого вы устанавливаете.
Например для установки типа терминала "ansi" из оболочки
Bourne обратитесь к терминалу, который вы хотите установить,
введите подсказку оболочки ("$"):

TERM=ansi; export TERM

и нажмите клавишу "Возврат". Из оболочки С введите подсказку
("%")

setenv TERM ansi
и нажмите "Возврат".
Если вы не уверены в том, какое имя вы можете использовать
для termtype, вы можете просмотреть имена либо отображением
файла /etc/termcap, либо чтением страницы руководства
terminals (M) документа User's Reference, где перечисляются все
терминалы, обеспеченные в файле /etc/termcap. Для отображения
самого списка введите:

more /etc/termcap
и нажмите клавишу "Возврат".

- 14-18 -

Вы можете позволить системе определить тип терминала автоматически,
когда вы подключаетесь к системе, включив назначение
TERM в файл .profile (смотрите "Изменение файлов .profile и
.login" в главе "Запуск и останов системы").
Альтернативный метод задания типа терминала описан в разделе
tset(C) документа User's Reference.
Если вы позволите системе установить тип терминала, следует
быть осторожным при подключении к системе на терминалах, которые
не относятся к тому же типу, к которому относится ваш
обычный терминал. У системы отсутствует способ проверки корректности
данного терминала, она предполагает тип терминала,
аналогичный вашему обычному терминалу. Если это не так, вам
следует установить тип терминала вручную.

- 14-19 -

АВТОМАТИЧЕСКОЕ ЗАДАНИЕ ТИПА ТЕРМИНАЛА

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

1. Подключитесь к рассматриваемому терминалу и определите,
какое ttyname вы используете, введя:

tty

2. Подключитесь как root и редактируйте файл /etc/ttytype
текстовым редактором. Измените поле типа терминала для ли-
нии, связанной с рассматриваемым терминалом, на необходи-
мый вам тип терминала. Учтите модель консоли. Если вы хо-
тите, чтобы тип терминала был установлен как wy50 для /dev
/tty1a, редактируйте /etc/ttytype следующим образом:

wy50 tty1a

3. Далее пользовательский файл запуска должен редактироваться
с соответствующей строкой команды tset(C) для автоматичес-
кого задания типа терминала. В каждый файл .login пользо-
вателя оболочки С добавьте следующую строку:

tset -s -q " /tmp/tset$$; source /tmp/tset$$;
/bin/rm/tmp/tset$$

Убедитесь в удалении строки команды setenv(C), принимаемой
по умолчанию и включающей TERM и TERMCAP из файла .login.

В каждом .profile пользователя оболочки Bourne добавьте
следующую строку:

eval 'tset -s'

Убедитесь в удалении имеющейся строки команды tset из фай-
ла .profile.
4. Отключите всех пользователей от системы, далее подключи-
тесь к системе снова для проверки изменения типа нового
терминала. После подключения к системе проверьте новый
termtype введя:

env

- 14-20 -

УДАЛЕНИЕ ТЕРМИНАЛА

Время от времени может оказаться необходимым удалить терминал
из системы, например, если вы хотите заменить его некоторым
другим устройством. Перед тем, как вы можете удалить терминал,
вы должны отключить его командой disable(C).
Для удаления терминала выполните следующие шаги:
1. Выключите питание терминала.
2. Подключитесь к системе как суперпользователь с другого
терминала.
3. Используйте команду disable для отключения терминала. Ко-
манда имеет вид:

Ъ2disable ttyname

где ttyname - это имя последовательной линии, к которой
присоединен терминал. Например, команда:

disable /dev/tty1a

отключает терминал, связанный с последовательной линией
/dev/tty1a.
4. Отсое

Список страниц

Закладка в соц.сетях

Купить

☏ Заказ рекламы: +380504468872

© Ассоциация электронных библиотек Украины

☝ Все материалы сайта (включая статьи, изображения, рекламные объявления и пр.) предназначены только для предварительного ознакомления. Все права на публикации, представленные на сайте принадлежат их законным владельцам. Просим Вас не сохранять копии информации.