HOWTO : fidonet software for unix
[
index ]
Часть четвертая, программы
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.
This is a part of "HOWTO : fidonet
software for unix", http://howto.id.ru
Original of this document is located at http://howto.id.ru/mgetty.html
Copyright (c) Vitaly Kuharev, 2:5058/49@fidonet, 1999-2000
Last updated : 14 apr 2000