利用Windows'95拨入Linux服务器---翻译:何高卓[中国Linux论坛]
这里的 mgetty 配置要点适用于以下系统:
基于 Pentium 的系统... www.intel.com
Slackware Linux 3.0... www.linux.org
Linux Kernel 2.0.27... ftp.cs.helsinki.fi/pub/Software/Linux/Kernel/v2.0
Modules 2.0... sunsite.unc.edu/pub/Linux/kernel
Shadow-ina-box-1.2... sunsite.unc.edu/pub/Linux/system/admin
pppd 2.2.0f 版本... sunsite.unc.edu/pub/Linux/system/network/serial/ppp
Cyclade Cyclom 16YeP... www.cyclades.com
Cardinal 33.6 Modem... www.cardtech.com
mgetty 0.99xand higher...ftp.buoy.com/pub/isp
如果上面的任一个链接失败,不管什么原因,开始搜索的最好地方应该是 John Taylor
的流血边缘 Linux 网页( Bleeding Edge Linux Page)
www.cviog.uga.edu/Misc/info/LinuxBleed.html,
或者 Bill Latura 的 Linux 应用程序网页
www.xnet.net/~blatura/linapps.shtml。
Gert Doering,mgetty+sendfax 的作者, 已经写出了关于 mgetty+sendfax 的
sendfax 部分的有效用法说明。你可以从
theory.uwinnipeg.ca/localfiles/infofiles/mgetty.html 中找到。
内核配置
你将需要 ppp 支持。 启用这样的支持远远超出了本文讨论的范围。
(Infoseek < 'pppd | Linux' = 786 尽可能搜索支持资源。)
pppd 配置
本指导写得很好,你应该不会有生成程序的麻烦。如果你使用影子口令
(shadow password)软件包,生成程序使用:
make HAS_SHADOW=1
我发现,编辑“ppp-2.2.0f/pppd/auth.c”的54行和由影子口令集提供正确
的路径给“pwauth.h”文件是很有必要的。(如果你使用 *in-a-box* 软件包,
也许在 '(../shadow-ina-box-1.2/shadow-96xxxx/pwauth.h)中找到它)'。
mgetty 配置
Mgetty 为 Gert Doering 所写的一个优秀程序。它的性能远远不止简单的
Auto_PPP。从上面所列站点的其中之一获得它(你要有 0.99x
或更高版本)并打开程序包,正如你渴望的一样。
(你*正在阅读*所有这些软件包的说明,是吗?:)policy.h 应该被你的系统
作了调整。大约 在 99行,例如,你也许要检查:
#define DEVICE_GROUP "modem"
(所定义的组必须存在,例如,groupadd -g 800 modem。)
然后,在 276 行附近你可能需要:
#define DEFAULT_PORTSPEED 115200
..而对于 Cardinal 33.6 来说,297 行看起来有点象下面这样(USR 28.8 也对
同样的字串作出反应):
#define MODEM_INIT_STRING "ATE1V1Q0&S0&D2&C1S0=0S13=1"
(*其它* modem 可能只需要 "ATE1V1Q0&D2&C1S0=0"。 mgetty 响应 modem 的“振铃”,
因此 S0=1 是*不*需要的。)
接着,你需要在 Makefile 文件的 110 行或附近编辑一行。它看起来应该像这样:
CFLAGS=-02 -Wall -pipe -DAUTO_PPP
现在,按照说明生成程序。
make
make testdisk
make install
你接着需要编辑 login.config 文件,该文件在你所选择安装的路径
../etc/mgetty+sendfax 目录中。
去掉42 行的注释(假定你不需要 FIDO(业余爱好者网络,译者注)),并编辑 50
行(或者在某处附近),像下面的行:
/AutoPPP/ - - /usr/sbin/pppd auth login +pap -chap modem crtscts proxyarp lock
删去“proxyarp”选项,如果你使用独立的服务器或者要你的拨号用户保持在局域网内的话。
(注意:第二个“-”使得用户的登录名字出现在 utmp/wtmp 中。)
编辑 /etc/inittab 文件以映射(reflect)你的硬件。
如同下面一样利用 Cyclades Cyclom 板的 8 个端口:
s0:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC0
s1:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC1
s2:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC2
s3:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC3
s4:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC4
s5:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC5
s6:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC6
s7:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC7
然而,使用 modem 连接标准串行借口,需要以下的行:
s0:45:respawn:/usr/local/sbin/mgetty -D -x2 -R 45 /dev/ttyS0
s1:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyS1
“-R 45”是可选项。Mgetty 被设计成允许你使用话音线路处理拨号连接。
用“-R xx”开启,呼叫者仅需要呼叫一次,挂断;然后在 xx 秒内再次呼叫。
Mgetty 会忽略第一次呼叫,然后迅速响应第二次呼叫。(又,阅读手册。)
如果有问题,使用:23: 同样,run-level(也就是,每件事似乎都正确,
但 modem 不摘机),尝试:45:
为了 mgetty 能够执行,你必须提供正确的路径,也就是
/usr/sbin/mgetty, /usr/local/sbin/mgetty。
运行“kill -1 1”。你应该看到你的 modem 在做初始化。
由远程机器尝试拨入。如果 modem 应答,那么 mgetty 工作。
(如果你的 modem 应答,任何与 mgetty 有关的额外问题都是非常靠不住的,
假定你的 modem 支持 115200)。
进一步的 pppd 配置
你需要使用“pppd”作为已确定帐户的登录
shell,用来处理拨入。你的“/etc/passwd”文件看起来应该有点像这样:
pppuser:*:xxx:800:PPP Dialup:/users1/ppp/pppuser:/usr/sbin/pppd
你现在需要获得不同的“/etc/ppp/options”正确文件。我的系统已配置成使用 pppd
来拨出以及收到进来的呼叫。我有类似于下面的相关 pppd 文件的配置:
/etc/ppp/options
-detach
/etc/ppp/options/ttyCx (Cyclades 端口)
199.177.27.2:199.177.27.50
或
/etc/ppp/options.ttyS0 (串行端口)
199.177.27.2:199.177.27.3
改名或者删除“pap-secrets”,从 Windows'95
机器再次尝试拨入。(关于“pap-secrets”文件有一些争论。Al
Longyear,当然,和我一样同意删除它。)它为我工作得很好,每次登录都完美无缺。
Windows '95 机器只需创建一个新的连接,增加电话号码、登录名字和口令,每件事情
都会走向美好。
附加注解
我曾经收到关于Windows'95客户机连接后的 pop 邮件的问题。Tim Sailer 写了一个
qpopper的补丁,它已被我编译而没有故障。它可以从 http://www.buoy.com/isp
中找到,连同 Tim Sailer 所写或收集的有用工具集和脚本程序一起。
你也可以找到关于 mgetty 的附加信息。
要是你一直有 modem 的问题,或者一直有定义正确的 /etc/inittab 入口的问题,
我建议你阅读 Greg Hankins 的 Linux Serial HOWTO,它是一种有益的参考资料。
Tim Sailer 还提供了一个卓越的安装动态 IP地址分配的方案。
Mgetty(当然,正如你现在一直在阅读的)的能力远远不止
AutoPPP,传真和语音它都可以处理。它一直被一个热心的小组所发展。
2.2.0f 版本的 pppd 是稳定的,它被广泛、数目众多的站点所包含。
建议或意见直接发给: mrdennis@bellatlantic.net Mick Dennis
最后修改时间:1998年3月7日 17:23:00 EST
中国Linux论坛
