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

UnixForum





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

Следующий Предыдущий Содержание

13. Использование uugetty для приема звонков (из Serial-HOWTO)

Вместо uugetty можно использовать (лучше?) mgetty. mgetty более популярна и новее, чем uugetty. В разделе Getty представлено сравнение этих двух разновидностей getty.

13.1 Установка getty_ps

uugetty является частью getty_ps, поэтому сперва надо установить getty_ps. Самую последнюю версию можно взять с metalab.unc.edu:/pub/Linux/system/serial В частности, для работы на высоких скоростях (57600 и 115200 бит/с) необходима версия 2.0.7j или более поздняя. Также потребуется libc 5.x или выше.

По умолчанию getty_ps устанавливается в соответствии с Linux FSSTND (File System Standard -- стандарт файловой системы), т.е. это означает, что выполняемые двоичные файлы будут находиться в /sbin, а файлы настроек будут называться /etc/conf.{uu}getty.ttySN. В документации об этом явно не сказано! Также предполагается, что файлы блокировки (lock-файлы) будут размещаться в /var/lock. Убедитесь, что каталог /var/lock существует.

Если отказаться от соответствия FSSTND, то двойчные файлы "пропишутся" в /etc, файлы настроек -- в /etc/default/{uu}getty.ttySN, lock-файлы -- в /usr/spool/uucp. Я рекомендую делать так, если вы используете протокол UUCP, поскольку с UUCP возникнут проблемы, если вы переместите lock-файлы куда-нибудь, где он их не найдет.

getty_ps для записи своих сообщений может использовать syslogd. О настройке syslogd можно узнать из man-страниц syslogd(1) и syslog.conf(5). Сообщения записываются с приоритетом LOG_AUTH, ошибки -- LOG_ERR, отладочная информация -- LOG_DEBUG. Если Вы не хотите использовать syslogd, то можно поправить файл tune.h в исходниках getty_ps так, чтобы сообщения записывались в обычный файл, по умолчанию называемый /var/adm/getty.log.

Решите, нужна ли Вам совместимость с FSSTND и будете ли Вы использовать syslog. Можно по-разному скомбинировать эти две опции. Отредактируйте (если надо) Makefile, tune.h и config.h в соответствии со своим выбором. Затем в соответствии с прилагающимися инструкциями произведите компиляцию и установку :)

13.2 Начальная настройка uugetty

uugetty позволяет осуществить исходящее соединение, пока сама она прослушивает порт в ожидании входящего вызова. uugetty производит проверку lock-файлов. Добавьте запись для своего модема в /etc/gettydefs. Разъяснения того, что нужно добавить, есть в коллекции "serial_suite" Верна Хоукси. Узнать, где взять эту коллекцию, можно из раздела getty_em. Закончив редактирование /etc/gettydefs, Вы можете проверить правильность синтаксиса командой:

linux# getty -c /etc/gettydefs

Современные модемы

Если Ваш модем поддерживает сжатие данных и имеет скорость обмена с последовательным портом от 9600 бит/с и выше, то для последовательного порта можно задать фиксированную скорость. Пример:

# фиксированная скорость 115200
F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200

Если в модеме задано аппаратное управление потоком (RTS/CTS), то в записи укажите CRTSCTS:

# фиксированная скорость 115200, аппаратное управление потоком
F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200

Старые медленные модемы

Если у Вас медленный модем (скорость обмена с портом менее 9600 бит/с), то тогда вместо одной строчки для одной скорости придется задавать несколько строчек для нескольких скоростей. Причем в конце каждой строчки должна быть ссылка на следующую, например такая: #4800 (последняя строчка ссылается на первую). Между строчками с записями должны быть пустые строки. Надо ли на самом деле указывать большие скорости обмена модем-последовательный_порт, которые не поддерживаются медленным модемом?? В документации uugetty они указаны, поэтому я пока что их не удаляю.

# Modem entries
115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600

57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400

38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200

19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600

9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #4800

4800# B4800 CS8 # B4800 SANE -ISTRIP HUPCL #@S @L @B login: #2400

2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #1200

1200# B1200 CS8 # B1200 SANE -ISTRIP HUPCL #@S @L @B login: #115200

Приглашение для идентификации

По желанию можно заставить uugetty в выдаваемом ей приглашении для идентификации выводить различную интересную информацию. У Грэга (первого автора Serial-HOWTO -- напоминание перев., м.б. лишнее :)), к примеру, выводятся имя системы, используемый последовательный порт и скорость в бит/с. По своему усмотрению Вы можете добавить:

       @B    Текущая (на момент отображения) скорость в бит/с.
@D Текущая дата в виде ММ/ДД/ГГ.
@L Последовательный порт (линия), на который uugetty
выдает приглашение.
@S Имя системы.
@T Текущее время в ЧЧ:ММ:СС (24-часовое).
@U Число присутствующих в настоящее время пользователей.
Это число равно числу записей в файле /etc/utmp,
имеющем ненулевое поле ut_name.
@V Значение ВЕРСИИ, как задано в файле с настройками(?).
Чтобы вывести символ '@', надо добавить '\@' или '@@'.

13.3 Настройка uugetty

uugetty имеет большое множество параметров для настройки. Для каждого порта можно задать свои настройки. Общие настройки находятся в файле /etc/conf.uugetty, настройки для порта ttySN -- в файле /etc/conf.uugetty.ttySN. Файлы-примеры настроек идут вместе с исходниками getty_ps, включенными в большинство дистрибутивов Linux. Из-за экономии места они здесь не представлены. В старых версиях uugetty (до 2.0.7e) или при установке без соответствия FSSTND файлами настроек будут /etc/default/uugetty.ttySN. У Грэга /etc/conf.uugetty.ttyS3 выглядел так:

# пример файла настроек uugety для Hayes-совместимого модема
# для приема входящих вызовов от других модемов
#
# начальная строка (line to initialize)
INITLINE=ttyS3
# время ожидания (timeout) до отключения при бездействии...
TIMEOUT=60
# строка инициализации модема...
# формат: <ожидание> <посыл> ... (chat-последовательность)
INIT="" AT\r OK\r\n
WAITFOR=RING
CONNECT="" ATA\r CONNECT\s\A
# эта строка устанавливает время задержки перед выдачей
# приглашения для идентификации
DELAY=1
#DEBUG=010

Чтобы uugetty запускалась на Вашем последовательном порте, добавьте в /etc/inittab следующую строчку со своими значениями уровней запуска (2345 или 345 и т.д.), места размещения файла настроек, номера порта, его скорости и типа терминала:

S3:2345:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100
Перезапустите init:
linux# init q
Значение для скорости в /etc/inittab лучше задать самое максимальное, которое поддерживается Вашим модемом.

Теперь Linux посредством uugetty будет прослушивать последовательный порт. Попытайтесь соединиться со своим компьютером с другого компьютера и войти в Linux под своим именем :)

uugetty имеет намного больше опций, узнать о которых можно на man-странице uugetty (обычно ее называют просто getty). Среди прочих есть работа по расписанию и функция обратного вызова (ringback?).


Следующий Предыдущий Содержание