Автор программы - 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 у меня остались только две строчки :
Первая - запуск 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.