Библиотека сайта 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.ttyS
N. В документации об этом явно не сказано! Также предполагается, что файлы блокировки (lock-файлы) будут размещаться в /var/lock
. Убедитесь, что каталог /var/lock
существует.
Если отказаться от соответствия FSSTND, то двойчные файлы "пропишутся" в /etc
, файлы настроек -- в /etc/default/{uu}getty.ttyS
N, 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
, настройки для порта ttyS
N -- в файле /etc/conf.uugetty.ttyS
N. Файлы-примеры настроек идут вместе с исходниками getty_ps
, включенными в большинство дистрибутивов Linux. Из-за экономии места они здесь не представлены. В старых версиях uugetty
(до 2.0.7e) или при установке без соответствия FSSTND файлами настроек будут /etc/default/uugetty.ttyS
N. У Грэга /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?).
Следующий Предыдущий Содержание