Operating System

Вид материалаРеферат

Содержание


Задание линий терминалов
Изменение работы последовательной линии
Задание типа терминала
Подобный материал:
1   ...   18   19   20   21   22   23   24   25   ...   36

Если вы используете обеспеченную 4-х или 8-ми портовую плату расширения, проверьте, что ваша плата распознается во время процедуры начальной загрузки проверкой сообщения начальной загрузки операционной системы UNIX. Если в про­цессе начальной загрузки не выдается корректное сообщение о вашей плате, то переключатели на плате установлены неп­равильно. Проверьте документацию по аппаратуре платы для правильной установки переключателей и Release Notes для правильного задания адресов. Это относится к платам, пере­численным, как обеспечиваемые, в документе Release Notes.

- 14-5а -

Обеспечиваемые производителем драйверы могут не печатать распознающие сообщения во время начальной загрузки. Если плата расширения является "интеллектуальной" платой с обеспеченным производителем драйвером, вам не следует вы­полнять 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. Вызовите текcтовый редактор для редактирования первой строки файла 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 перенаправляя вход с
Можно отобразить текущие рабочие характеристики последова­тельной линии вводом этой команды с терминала, присоединенного к этой линии:

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 echoeЪ

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

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

Полное описание этой команды содержится в разделе stty(C) документа User's Reference.

- 14-17 -

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

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