Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

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

      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2017 LinuxRSP