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

## 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?).

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