The Linux Serial HOWTO : Как настроить терминальный вход на моем PC?

Next Previous Contents

8. Как настроить терминальный вход на моем PC?

Детально это описывается в Text-Terminal-HOWTO (но он все еще незавершен). Инструкции в этом разделе будут работать как для подсоедиенных терминалов, так и для других компьютеров, подключенных к последовательным портам вашей Linux машины.

8.1 Аппаратные требования

Удостоверьтесь, что у вас соответствующий кабель. Нуль-модемный кабель, купленный в компьютерном магазине, может подойти, но вероятно, что он не сможет работать с аппаратным управлением потоком данных. Но он должен быть нуль- модемным кабелем! Многие компьютерные магазины выставляют этот кабель как последовательный кабель принтера. Удостоверьтесь, что вы используете ваш последовательный порт (разъем-"папу" (входящий в ответную часть) DB25 или DB9), а не ваш параллельный порт (разъем-"маму"(охватывающий) DB25 или centronics).

Для разъема DB25, вам нужно минимум:

 
     PC "папа" DB25                            Terminal DB25 
     TxD   Передача данных       2 --> 3     RxD   Прием данных
     RxD   Прием данных          3 <-- 2     TxD   Передача данных
     SG    Сигнальная земля      7 --- 7     SG    Сигнальная земля
Этот нуль-модемный кабель хорошо работает между двумя компьютерами, которые используют сигналы хендшейкинга RTS/CTS, но многие терминалы используют сигнал хендшейкинга DTR, которое не может быть установлен в linux с помощью программы "stty". Включите в stty crtscts и соедините штырек терминала 20 (DTR) со штырьком PC 5 (CTS).
 
     PC "папа" DB25                                  Terminal DB25 
     TxD   Передача данных               2 --> 3     RxD   Прием данных
     RxD   Прием данных                  3 <-- 2     TxD   Передача данных
     RTS   Запрос передачи               4 --> 5     CTS   Готов к передаче
     CTS   Готов к передаче              5 <-- 4     RTS   Запрос передачи
     DSR   Data Set Ready                6
                                         |
     DCD   Обнаружение несущей           8 <-- 20    DTR   Готовность данных терминала
     SG    Сигнальная земля              7 --- 7     SG    Сигнальная земля
                                               6     DSR   Data Set Ready
                                               |
     DTR   Готовность данных терминала  20 --> 8     DCD   Обнаружение несущей

Если на вашем последовательном порту стоит разъем DB9, то попробуйте следующую распайку:

 
     PC DB9                                  Terminal DB25 
     TxD   Передача данных       2 --> 2     RxD   Прием данных
     RxD   Прием данных          3 <-- 3     TxD   Передача данных
     SG    Сигнальная земля      5 --- 7     SG    Сигнальная земля
 
В качестве альтернативы, вот полный DB9-DB25 нуль-модемный кабель (Вряд ли будет работать с аппаратным хендшейкингом терминала; см. выше):

 
   PC DB9                                         Terminal DB25
   TxD   Передача данных              2 --> 2     RxD   Прием данных
   RxD   Прием данных                 3 <-- 3     TxD   Передача данных
                                            6     DSR   Data Set Ready
                                            |
   DTR   Готовность данных терминала  4 --> 8     DCD   Обнаружение несущей
   GND   Сигнальная земля             5 --- 7     GND   Сигнальная земля
   DCD   Обнаружение несущей          1
                                      |
   DSR   Data Set Ready               6 <-- 20    DTR   Готовность данных терминала
   RTS   Запрос передачи              7 --> 5     CTS   Готов к передаче
   CTS   Готов к передаче             8 <-- 4     RTS   Запрос передачи
   (RI   Ring Indicator               9 не обязательно)
(Да, штырьки 2 и 3 в разъеме DB9 действительно имеют значения противоположные значениям в разъеме DB25!)

Если вы не используете полный нуль-модемный кабель, то вам возможно придется применить следующий прием: на разъеме с компьютерной стороны, соедините RTS и CTS вместе, а также вместе соедините DSR, DCD и DTR. Таким образом, когда компьютер захочет получить сигнал хендшейкинга, он получит его (от самого себя).

Теперь, когда у вас правильный кабель?, соедините ваш терминал с вашим компьютером. Если можете, скажите терминалу игнорировать сигналы управления модемом. Пробуйте использовать в установках терминала скорость 9600 бит\сек, 8 информационных битов, 1 стоповый бит, без битов контроля по четности (или разрешите контроль по четности, если вы хотите дополнительных сложностей).

8.2 Установка getty (часть getty_ps)

Проконсультируйтесь с вашим руководством по getty для других программ getty, например, agetty.

Добавьте записи для getty в файл /etc/gettydefs, чтобы использовать ваш терминал, если их там до сих пор нет:

 
        # 38400 bps Dumb Terminal entry
        DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400
 
        # 19200 bps Dumb Terminal entry
        DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200
 
        # 9600 bps Dumb Terminal entry
        DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600

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

          @B    Текущая скорость (оценивается при определении значения @B ) 
                в бит/сек.
          @D    Текущая дата в формате MM/DD/YY.
          @L    Последовательная линия, с которой работает getty.
          @S    Имя системы.
          @T    Текщее время в формате HH:MM:SS (24-часовой).
          @U    Число работающих в данный момент пользователей. В качестве
                этого значения берется количество записей в файле /etc/utmp,
                которые имеют непустое поле ut_name.
          @V    Значение VERSION, как задано в файле defaults.
          Чтобы отобразить символ '@', используйте или '\@', или '@@'.

Когда вы завершили редактирование файла /etc/gettydefs, вы можете проверить правильность синтаксиса, сделав:

 
 
          linux# getty -c /etc/gettydefs
 
Удостоверьтесь, что у вас нет файла конфигурации getty или uugetty для последовательного порта, к которому подключен ваш терминал (/etc/default{/uu}getty.ttySN или /etc/conf.{uu}getty.ttySN), поскольку он вероятно будет пересекаться с getty, запущенном на этом терминале. Удалите файл, если он существует.

Отредактируйте ваш файл /etc/inittab, чтобы запустить getty на последовательном порту (установив для вашего окружения правильные порт, скорость и заданный по умолчанию тип терминала):

 
 S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100

Перезапустите init:

 
 linux# init q

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

8.3 Примечания о настройке PC в качестве терминала

Многие люди настраивают другие PC как терминалы, соединенные с Linux машинами.

Например, старые 8088 или 80286 PC отлично подходят для этой цели. Все, в чем вы нуждаетесь для запуска - это загрузочный диск DOS, содержащий версию DOS, подходящую вашему PC-терминалу, и программы связи для вашего PC-терминала. Kermit очень хорошо подходит для этой цели. Вы можете найти скомпилированные версии kermit для каждой OS на http://www.columbia.edu/kermit/. Также хорошо будут работать другие популярные программы связи DOS типа telix и procomm. Убедитесь, что ваши настройки PC-терминала содержат правильную информацию о последовательном порте.


Next Previous Contents