InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Часть четвертая, программы mgetty


Автор программы - Gert Doering, gert@greenie.muc.de, URL : http://alpha.greenie.net/mgetty/.
Берем последнюю версию с http://alpha.greenie.net/mgetty (на настоящий момент это mgetty1.1.21-Jul24.tar.gz), разворачиваем архив в, например, /usr/src/mgetty-1.1.21 и заходим в этот каталог. Все дальнейшие пути к файлам с исходниками, если не указано иное, будем считать от него. Почитайте файл README.1st и можно приступать к установке.
Скопируем policy.h-dist в policy.h, начнем редактировать policy.h :
Проверьте, где у вас лежит программа login - whereis login (обычно - /usr/bin/login)
#define DEFAULT_LOGIN_PROGRAM /usr/bin/login

Прописываем UID, GID и права владельца портов с модемами, на которых будут сидеть mgetty (см. раздел ifmail.html#port_owner)
#define DEVICE_OWNER uucp
#define DEVICE_GROUP dialer
#define FILE_MODE 0660

Каталог lock должно совпадать с LOCKDIR у ifmail'a (см. раздел ifmail.html#lock_dir), каталог с pid-файлом обычно - /var/run
#define MGETTY_PID_FILE : /var/run/mgetty.%s.pid
#define LOCK : "/var/spool/lock/LCK..%s"
Скорость для порта модема. Лучше, чтобы она совпадала со скоростью, указанной в Modemport у ifmail'а (см. ifmail.html#lock_speed), хотя в любом случае для каждого порта ее можно настроить в mgetty.config
#define DEFAULT_PORTSPEED 115200
Строка инициализации вашего модема.
#define MODEM_INIT_STRING "ATZ0"
Я факсы на модем не принимаю, поэтому установил тип в "data". Если хотите, можете изменить, но тогда соответственно подкорректируйте в policy.h секцию, посвященную факс-настройкам.
#define DEFAULT_MODEMTYPE "data"
Путь к sendmail'у.
#define MAILER "/usr/sbin/sendmail"

С policy.h все.

Теперь редактируем Makefile. Прочитайте комментарии в нем касательно -D опций, добавьте в CFLAGS опции -DBSD -DFIDO.
Подкорректируеем LIBS и INSTALL, раскоментарив подходящие для FreeBSD
LIBS=-lutil
INSTALL=install -c -o root -g wheel

Запускаем make, если все в порядке, то make install

В /usr/local/etc/mgetty+sendfax правим конфиги :
В login.config у меня остались только две строчки :

/FIDO/     fido  fido   /usr/local/fidonet/bin/ifcico @ callback      -     -   /usr/local/sbin/callback -s 57600 -S 955-55-55
Первая - запуск ifcico для ответа на входящие звонки, а вторая - запуск прграммы callback (берется из дистрибутива mgetty) для руления станцией из дома ;)
Строчки с /AutoPPP/ и /usr/bin/login я убрал за ненадобностью.

Прописываем запуск mgetty в /etc/ttys, например :
cuaa0 "/usr/local/sbin/mgetty" cons25r on insecure
cuaa1 "/usr/local/sbin/mgetty" cons25r on insecure

Если хотите добавить какие-либо параметры командной строки при запуске mgetty, прочитайте man mgetty.
Теперь активируем эти изменения : kill -1 1.
Проверим, получилось ли :
$ ps -ax | grep mgetty
13849 ?? I  0:00.06 /usr/local/sbin/mgetty cuaa0
13852 ?? I  0:00.05 /usr/local/sbin/mgetty cuaa1
23002 p0 S+ 0:00.03 /usr/local/bin/bash -c ps -ax | grep mgetty
23004 p0 R+ 0:00.00 grep mgetty

Судя по первой строчке, mgetty запущен.
Для того, чтобы в лог-файле mgetty (/var/log/mgetty.cuaa?) регистрировались входящие фидошные звонки, необходимо предоставить ifcico право на запись в этот лог, изменив группу/права. Как один из вариантов :
-rw-rw-r-- 1 root fido 4503 29 окт 09:12 mgetty.cuaa0
-rw-rw-r-- 1 root fido 1732 24 окт 12:61 mgetty.cuaa1
При входящих звонках mgetty определяет можно ли поднимать трубку по флагу, заданному в NOLOGIN_FILE в policy.h (по умолчанию - /etc/nologin.%s, где %s - cuaa0, cuaa1, etc.). Т.е. создавая/удаляя этот флажок через cron вы управляете mgetty. Например :
/etc/crontab :
--------------
# Запрет ответа на входящие звонки
# по первой линии - Пн.-Пт. с 8:00 до 23:00
0  8  * * 1-5 root touch /etc/nologin.cuaa0
0  23 * * 1-5 root rm /etc/nologin.cuaa0
# по второй линии - Пн.-Пт. с 18:00 до 22:00, Сб-Вс весь день
0  18 * * 1-5 root touch /etc/nologin.cuaa1
0  22 * * 1-5 root rm /etc/nologin.cuaa1
0  0  * * 6   root touch /etc/nologin.cuaa1
59 23 * * 7   root rm /etc/nologin.cuaa1
--------------

Но я рекомендую наложить на mgetty патч, автором которого является Alexey Gretchaninov, scorp@home.scorp.org.ru, 2:5010/81@fidonet; URL : http://scorp.org.ru/mgetty/. Этот патч, среди всего прочего, дает возможность указывать mgetty временные промежутки, когда оно будет отвечать на входящие звонки.
Забираете оттуда ftp://ftp.scorp.org.ru/mgetty/mgetty.sc.zip, раскручиваете, читаете readme, накладываете патч на mgetty : копируете mgetty-1.1.20.sc.diff в каталог с исходниками mgetty, например /usr/src/mgetty-1.1.21, переходите туда и запускаете "patch < mgetty-1.1.20.sc.diff". Патч должен наложиться. Затем make; make install.
Редактируете /usr/local/etc/mgetty+sendfax/mgetty.config :
Раздел "----- global section -----" у меня полностью закоментарен, все настройки описаны отдельно для каждой линии :
# Модем № 1, USR Courier
port cuaa0
speed 115200

# В будни отвечаем на входящие звонки только ночью,
# в выходные круглосуточно
answer-time 1.20:00-5.08:00,6.00:00-7.24:00
#
# В ZMH + NMH (с 6:00 до 8:00) отвечаем на любой скорости,
# в остальное время на скорости не менее 28800
# Для срабатывания этих двух временных промежутков
# корректируем /etc/crontab (см. together.html#ZMH)
{06:00-08:00} init-chat "" \d\dATZ0 OK
{08:00-06:00} init-chat "" \d\dATZ0 OK AT&U14 OK

# Модем № 2, USR
port cuaa1
speed 115200
answer-time 01:00-08:00
init-chat "" \d\dATZ0 OK AT&U14 OK
Hints :
Если вы монтируете корневой раздел как r/o, то имеет смысл при компиляции mgetty исправить NOLOGIN_FILE на /var/run/nologin.%s и работать с флажком как с /var/run/nologin.cuaa0.

[Назад][Содержание][Вперед]


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua