BBS水木清华站∶精华区

发信人: steve.bbs@heaven.stat.tku.edu.tw (自闭症患者), 看板: Linux 
标  题: Mgetty+SendFAX: 让你的 LINUX 成为 terminal server 
发信站: 淡江统计光明顶资讯站 (Sat Nov 23 04:26:18 1996) 
转信站: sob!magic.m7.ntu!netnews.ntu!linux2.tpml!UUserv.Net.tw!news.cs.nthu!ne 
 
在板上看到很多人在问如何让 Linux 成为 terminal server 接受 
modem dial-in。今天心情好,跟大家分享经验。 
 
一般人一开始都用 gettyps (/sbin/getty) 这套软体来设定 modem dial-in。 
有人很 lucky,有人被其设定档搞得乱七八糟:我属於後者。後来看到 
Linux newsgroup 上一些人推荐 mgetty+sendfax 这套软体,我拿来 
使用後,一设就成功,而且不止在两台 Linux 机器上,连 FreeBSD 的机器 
也是很好设定。所以我推荐 mgetty+sendfax。 
 
在 ftp.stat.tku.edu.tw 的 anonymous FTP 目录 /pub/mgetty/LINUX 之下, 
我放了 mgetty098bin.tgz 与 mgetty098src.tgz 两个压缩档,分别给 
不想自己 compile 的人(需有装 libc.so.5.3.12 以上)或想自己动手的人。 
 
1. mgetty098bin.tgz : 
 
   抓回去後,找个暂时目录如 /tmp/9999 下将此档解开 
 
     tar zxvpf mgetty098bin.tgz 
 
   检查看看里面的东西,确定我不会将你的系统搞杂砸後 
   (如果我放个 /etc/sendmail.cf 。。。呵。。), 
   将此 tgz 档再 copy 到 / 根目录,一样解开。 
 
   这时你只要修改 /etc/inittab 档, 再 kill -HUP 1  ,就应该可以使用 
   (在这之前 modem 应该已经接上电脑) 
 
-------------- /etc/inittab 修改 ---------------- 
........... 
# Dialup lines 
d1:45:respawn:/usr/local/sbin/mgetty -n 3 -D -a ttyS0 
d2:45:respawn:/usr/local/sbin/mgetty -n 3 -D -s 9600 ttyS1 
d3:45:respawn:/usr/local/sbin/mgetty -n 3 -D -m '"" ATZ OK' -a ttyS2 
-------------- /etc/inittab ---------------- 
说明: -n 3  (电话响 3 声後才接) 
       -D    (只接 data(modem),不接 FAX) 
       -a    (modem speed 自动调整) 
       -s 9600 (modem speed 固定在 9600) 
       -m '"" ATZ OK'  (可 on-line 调整 modem 设定字串) 
       ttyS0  --> COM1, ttyS1  --> COM2, .... 
 
2. mgetty098src.tgz 
 
   抓回去後在一个临时目录解开,cd 到 mgetty-0.98 之中,修改 policy.h: 
 
------------------------------ policy.h ------------------------- 
line 114 记录档放在哪里 
                #define LOG_PATH "/var/adm/log_mg.%s" 
line 139 是否将一些错误讯息记录到 syslog 
                /* #define SYSLOG */ 
line 154 你的机器名称 (将 /* 及 */ 去掉) 
                /* #define SYSTEM       "heaven" */ 
line 187 mgetty 若 detect 到此档(如 /etc/nologin.ttyS1) 就不接 modem 
                #define NOLOGIN_FILE "/etc/nologin.%s" 
line 257 modem-to-pc default speed 
                #define DEFAULT_PORTSPEED       38400 
line 278 modem 设定字串 
                /* #define MODEM_INIT_STRING     "ATS0=0Q0&D3&C1" */ 
                #define MODEM_INIT_STRING       "ATZS0=0" 
line 300 每隔几秒检查 modem 是否正常 
                #define MODEM_CHECK_TIME 1800 
line 318 只接受 modem (data) 或连 FAX 也接 (auto) 
                /* #define DEFAULT_MODEMTYPE "auto" */ 
                #define DEFAULT_MODEMTYPE "data" 
line 497 FAX port 
                #define FAX_MODEM_TTYS  "ttyS0" 
line 552 FAX 到时通知谁 
                #define MAIL_TO         "root" 
------------------------------ policy.h ------------------------- 
 
改完後,make,make install,修改 /etc/inittab,再 
 
kill -HUP 1 
 
即可。 
 
 
P.S. 1.现在的 mgetty+sendfax 版本是 0.99,但我懒得改。 
     2.若要能接 FAX 请自己看 documentation 设定。 
     3.如果电话线是下班後才能用 modem dial 进来,可用 crontab 
       设定上班时间 
 
       touch /etc/nologin.ttyS0 
       touch /etc/nologin.ttyS1 .... 
 
       则 mgetty 不会接 modem,电话正常使用。然後,用 crontab 
       设定下班时间 
 
       rm -f /etc/nologin.ttyS0 
       rm -f /etc/nologin.ttyS1 .... 
 
       则电话响 3 声就接 modem 了。这对公司或机构内有连上网路, 
       但无电话专线者颇有用。 
 
 
 
 
 

BBS水木清华站∶精华区