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水木清华站∶精华区