Linux 版 (精华区)

发信人: clx (楚留香), 信区: Unix
标  题: Linux Serial HOWTO 中译版(07)
发信站: 紫 丁 香 (Sat Jun 27 17:14:29 1998), 转信

Linux Serial HOWTO 中译版 : 我要怎麽样用数据机以 getty_ps 拨
入及拨出?
Previous: 我怎麽用数据机拨号出去?
Next: 我怎麽设定终端机连线到我的 PC 上? 


6. 我要怎麽样用数据机以 getty_ps 拨入
及拨出?

让你的数据机能够正确地拨号出去.如果你还没有读过 我怎麽用数
据机拨号出去 一节的话现在去读! 它包含有非常重要的设定资
讯.如果你只想用数据机来拨出的话你不需要读此节.

6.1. 拨入及拨出的数据机配置

要用来接受拨接以及拨号出去的话,那麽你必须确实地设定你的数
据机(再一次对你的数据机使用 AT 指令群): 

     E1       本地回应指令
     Q0       回报结果回应
     V1       开启冗长模式
     S0=0     不要接听 (uugetty 以 WAITFOR 选项来处理)

如果你没有正确地设定,放在你配置档里的起始(INIT)字串可能会失
败,因而停住整个程序. 但是,下面有更多配置档的选项... 

     &C1     DCD 只有在连线以後才开启
     &S0     DSR 永远为开启
             DTR 开启/关闭 重置数据机(是数据机制造商而定 - RTFM)

这些会影响你数据机有关开始以及结束拨号的动作.

如果你的数据机不支援储存设定,你可以透过在你配置档里的起始
字串来设定这些东西. 参阅下面所述.有一些数据机是以 DIP 开
关来影响暂存器的设定,也要确定这些设定是正确的.

我已经开始著手收集不同种类数据机的设定. 到目前为止,我还只
有它们的一小部分,如果你想要寄送给我你目前所用配置,非常欢
迎! 你可以从这些取得设些设定:
ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs.

注意: 为了让我的 USR Courier V.34 数据机在 DTR 讯号掉下去後
正常地重置,我必须设定 &D2 及 S13=1(这是设定暂存器 S13 的 bit
0).这确定能在 USR Sportster V.34 上运作正常.

注意: 某些 Supra 数据机处理 DCD 讯号的方式异於其它的数据
机. 如果你在用 Supra 数据机,试著设定为 &C0 而不是 &C1. 你
也必须设定 &D2 使之正常地处理 DTR 讯号.

6.2. 安装 getty_ps

从 ftp://sunsite.unc.edu/pub/Linux/system/serial 最新的版本. 特别
地,如果你想使用高速通讯(57600 或 115200 bps),你必须取得
2.0.7j 或以後的版本. 你也必须有 libc 5.x 或之後的版本.

依照预设值,getty_ps 将会照 Linux 的档案系统标准(FSSTND, File
System Standard)来配置,这个意思是二进位码将会放在 /sbin 
下,而配置档将会以 /etc/conf.{uu}getty.ttySN 来命名. 这点并不能
从文件叙述中找到!它也会假定 lock files 将得要放到 /var/lock
目录里.要确定你有 /var/lock 这个目录.

如果你不想依照 FSSTND 的话,二进位码将会放到 /etc 里面,而配
置档将会放到 /etc/default/{uu}getty.ttySN 里面,而 lock files 则
将会放到 /usr/spool/uucp 里面. 如果你有使用 UUCP 的话那麽我建
议这样做,因为如果你把 lock files 搬到 UUCP 无法找到的地方
去那麽它将会出问题的.

getty_ps 也可使用 syslogd 来记录讯息.如果你目前没有执行它的
话,参阅 syslogd(1) 以及 syslog.conf(5) 的线上手册来设定 
syslogd. 讯息会优先以 LOG_AUTH 记录,错误使用 LOG_ERR 记录,
而除错使用 LOG_DEBUG. 如果你不想使用 syslogd 的话那麽你可
以编辑在 getty_ps 原始档案里的 tune.h 用一个记录档来取代,预设
档名为 /var/adm/getty.log.

决定好是否要依照 FSSTND 以及使用 syslog.你也可以选择两者的
组合. 编辑 Makefile,tune.h 以及 config.h 来反应你所作的决定.
然後,根据套件里的说明编译及安装.

从现在起,所有谈到 getty 的地方都是指 getty_ps 而言. 谈到 
uugetty 则是指 getty_ps 套件里的 uugetty 而言. 这些指令在 mgetty
或 agetty 上将不能运作.

6.3. 设定 uugetty

为了要能从你的数据机拨入及拨出,我们想要用 uugetty.uugetty
执行很重要的 lock file 检查. 如果没有的话更新 /etc/gettydefs
以便为数据机增加项目(注意到这里的项目互相参考,它们并非固定
速度 - 每个项目之间的空白行是必要的): 

     # Modem entries
     115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600

     57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400

     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: #115200

如果你有 9600 bps 或更快且具资料压缩功能的数据机,你可以锁
定你的串列埠速度而让数据机去处理传输的其它速度. 然後,不像
上面在 /etc/gettydefs 里的一连串列表,只需为数据机加上一行,例
如: 

     # 115200 fixed speed
     F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200

如果你将你的数据机设成 RTS/CTS 执行硬体流量控制的话,那麽你
可以将 CRTSCTS 加到这些项目里: 

     # 115200 fixed speed with hardware flow control
     F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200

如果你要的话,你可以让 uugetty 在签入时的标题上印出些有趣的东
西. 在我的例子里,我印出系统名称,串列线路,以及目前的每秒
位元传输率. 你可以加入其它的东西: 

            @B    目前的每秒位元传输率(bps, 在看到 @B 时估计的).
            @D    现在日期, 格式 MM/DD/YY.
            @L    getty 所连接的串列线路.
            @S    系统名称.
            @T    现在时间,格式 HH:MM:SS (24 小时制).
            @U    目前签入的使用者.这是在 /etc/utmp 档中非空 ut_name 栏位项目的计数值.
            @V    版本值,在预设档中给定的.
            如果要显示 '@' 符号的话,用 '\@' 或 '@@'.

接下来,确定你数据机所接的串列埠有输出及输入的设备. 如果你
的数据机设在 ttyS3 的话你将会需要 /dev/cua3,以及 /dev/ttyS3 这
两个设备. 如果你没有正确的设备,参阅 在 /dev 中建立设备 该
节说明如何建立设备,并且建立这些设备. 如果你希望在你的 
uugetty 正在监视这个串列埠是否有人签入时还能够用数据机拨出的
话,用 /dev/cuaN 设备而不要用 /dev/ttySN.

当你正在编辑 /etc/gettydefs 时,你可以这样来检查它的语法是否正
确: 

     linux# getty -c /etc/gettydefs

6.4. 自订 uugetty

你有许多参数可以用来改变你所拥有的每一个埠.这些是以分别对
每一个埠使用不同配置档的方式来实作的. 这个 /etc/conf.uugetty
档案会被所有的 uugetty 行程所使用,而 /etc/conf.uugetty.ttySN 只
由那个埠使用. 预设的配置档□例可以在 getty_ps 的原始档案里找
到,这在绝大部分的 Linux 发行套件里面都会有. 因为篇幅的考
量,没有把它们列在这里. 要注意的是如果你用的是比较旧的 
getty 版本(比 2.0.7e 版还旧),或者是你没有依照 FSSTND 的话,
那麽预设的档案将会是 /etc/default/uugetty.ttySN. 我的 
/etc/conf.uugetty.ttyS3 看起来像这样: 

     # sample uugetty configuration file for a Hayes compatible modem to allow
     # incoming modem connections
     #
     # alternate lock file to check... if this lock file exists, then uugetty is
     # restarted so that the modem is re-initialized
     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
     WAITFOR=RING
     CONNECT="" ATA\r CONNECT\s\A
     # this line sets the time to delay before sending the login banner
     DELAY=1
     #DEBUG=010

将下面那一行加到你的 /etc/inittab 里去,那麽 uugetty 就会在你的
串列埠上执行(用你环境的正确资讯来取代 - 配置档的位置,串列
埠名,速度,及预设终端机形式): 

     S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100

重新启动 init: 

     linux# init q 

对於在你 /etc/inittab 里面的速度参数,你会希望使用你数据机所能
支援的最高每秒位元传输率.

现在 Linux 将会随时监视你的串列埠是否有连线.从别的地方拨号
并签入你的 Linux 机器.

uugetty 还有更多的选项,参阅 getty (lm) 线上手册获得更完整的
叙述. 别的不提它还有排程(scheduling)的功能,以及回拨的能
力.


Linux Serial HOWTO 中译版 : 我要怎麽样用数据机以 getty_ps 拨
入及拨出?
Previous: 我怎麽用数据机拨号出去?
Next: 我怎麽设定终端机连线到我的 PC 上? 

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.244.16]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.158毫秒