BBS水木清华站∶精华区
发信人: thhsieh.bbs@bbs.phys.ntu.edu.tw (居士), 看板: Linux
标 题: 用 uugetty 来接电话
发信站: 台大物理 冷月流苏BBS驿站 (Sat Dec 14 09:42:26 1996)
转信站: sobee!netnews.ntu!news.phys.ntu!chdrv2
前一阵子版上有人讨论到用 getty_ps 这个 package 来接电话却有问题,
但很幸运的我并未遇到问题,也许我把我的经验提出来,大家加减参考一下。
我的设定基本上是参照 Serial-HOWTO 与 getty man page 做成的,如果大
家认为我有交代不清楚的地方,可以去查阅原文,当然,更欢迎提出来讨论。
我的 modem 是连在 com2 的。文件上说 getty_ps 中包含了两个主程式:
getty 及 uugetty ,其中 getty 是专门用来设 term 的,而 uugetty 是
专门用来设 modem 的,所以我选择了 uugetty (可是後来我想想,用 getty
来接 modem 应该也不成问题,但没有试就是了)
我的 /etc/inittab 中只加了这一行
S1:345:respawn:/sbin/uugetty ttyS1 38400 vt100
^^^^^
我有试过将它设成 ttyS3 ( com2 & com4 应在同一个 port 吧? ) ,其
他地方也对应地设成 ttyS3 ,但跑不起来,也许需要用 setserial 对
ttyS3 稍做些设定 ( ref. Serial-HOWTO ) ,但我没做。不过没关系,
反正 ttyS1 成功了就是了。
设定 uugetty 的设定档 /etc/gettydefs 如下:
38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200
19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600
9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400
2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #1200
1200# B1200 CS8 # B1200 SANE -ISTRIP HUPCL #@S @L @B login: #300
300# B300 CS8 # B300 SANE -ISTRIP HUPCL #@S @L @B login: #38400
其中各栏位的定义为:
label# initial-flags # final-flags # login-prompt #next-label
label 是告诉 uugetty 应采用那一行的设定来控制该 port 的 login 动作。
前面提到 /etc/inittab 中我设定了 /sbin/uugetty ttyS1 38400 vt100 ,
则当电话自 ttyS1 打进来时, uugetty 便会到 /etc/gettydefs 找到 label
为 38400 那一行,来做 login 的控制。
next-label 是告诉 uugetty 万一这一行无法控制该 port 时 (例如该 port
的速度跟不上该行的设定) ,uugetty 应选择那一行进行控制。由上例,假如
38400 那一行无法控制,则 uugetty 会选 19200 来控制,再不行,则选 9600,
以此类推。换句话说,如果你要永远限定 uugetty 用 38400 来做控制,你可
以把那行改成:
38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #38400
^^^^^
指回自己
initial-flags 和 final-flags 是指该 port 的一些控制旗标,包含传输速
率、硬体流量控制等。
login-prompt 是 uugetty 给出 login: 的提示字串。
设定 uugetty 的初始设定档:
uugetty ( getty ) 的初始设定档是放在 /etc/default 目录下,档名叫
uugetty.ttySN ( getty.ttySN ) ,看你是用那一个 port 而定档名。我
不知道先前曾设定失败的网友们有没有注意这个档,因为当初在安装
getty_ps 时这目录下的东东都已存在了,但当中的设定可能有些不恰当,
我是参考 Serial-HOWTO 来设的:
ALTLOCK=cua3
ALTLINE=cua3
# line to initialize
INITLINE=cua3
# timeout to disconnect if idle...
TIMEOUT=60
# modem initialization string...
# format: <expect> <send> ... (chat sequence)
INIT="" AT\r OK\r\n
# ^^
# 注意这□不要设成 ATS0=1 ,不要设 modem 为自动应答模式,
# uugetty 应是等待电话钤响後才接电话。
#
WAITFOR=RING
CONNECT="" ATA\r CONNECT\s\A
# this line sets the time to delay before sending the login banner
DELAY=1
重跑 init q ,就没问题了。
如果各位网友按照上述过程设定还是有问题的话,请提出来讨论。或有人认为
有地方需要改正的话,也请批评指教。
--
———— 居 士 ————
台大物理系
Email: thhsieh@twclx.phys.ntu.edu.tw
※ 来源:.冷月流苏BBS驿站 bbs.phys.ntu.edu.tw.[FROM: twclx.phys.ntu.]
BBS水木清华站∶精华区