对于终端,init 会在每个配置串行口上为每个拨入连接产生一个getty 进程。例如,
如果一个modem 被附带在/dev/ttyd0 中,用命令ps ax 可以显示下面这些:
4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0
当一个用户拨上modem,并使用它进行连接时,CD 线就会被modem 认出。内核注意到载
波信号已经被检测到,需要完成getty 的端口的打开。Getty 发送一个登陆:在指定的初始
线速度上的命令行。Getty 会检查合法的字符是否被接收,在一个典型的配置中,如果发现
垃圾,getty 就会设法调节线速度,直到它接收到合理的字符。
用户在键入他/她的登陆名称后,getty 执行/usr/bin/login,这会要求用户输入密码
来完成登陆,然后启动用户的shell。
15.4.4 配置文件
在/etc 目录中,有三个你将需要编辑的系统配置文件,来允许拨号访问到你的FreeBSD
系统。第一,/etc/gettytab 包含了针对/usr/libexec/getty 守护程序的配置信息。第二,
保存信息来告诉/sbin/init 什么tty 设备将有运行在他们系统上的getty 进程。最后,你
可以把端口初试化命令放在/etc/rc.serial 脚本中。
在unix 上,关于拨号modem 的想法主要有两种。一种是把本地接口配置成一个固定速
率,以至一个远程用户拨号进入时都保持一个固定速率。这样配置的好处是远程用户总是可
以立即看到一个系统的登陆界面。这种下降趋势是系统不知道一个用户真正的数据速率是多
少,所以象eamcs 全屏程序将不会调接屏幕刷新来确保对比较慢的连接有比较好的回应。
其他的配置RS-232 modem 的方法是随着远程用户连接的速度的变化而变化。例如,连
接到modem 的V.32bis (14.4 Kbps)连接可以使modem 在19.2 Kbps 上运行RS-232 接口,
而连接使得RS-232 接口运行在2400 bps 上。
第12 页FreeBSD 使用手册
因为getty 不了解任何特殊的modem 的连接速度报告,getty 会给出一个登陆:在一个
初始速度和检测字符的信息会作出回应。如果用户看到垃圾,假定他们知道他们键入了
enter 键,知道他看到了一个熟悉的命令行界面。
如果数据速率不相匹配,getty 会把用户键入的任何东西都看作“junk”,设法回到下
面的速度,然后给出登陆:命令行界面。很明显,这个登陆顺序看起来不如locked-speed
的方法,但一个连接在低速率上的用户将更好地交互接收来自全屏幕程序的回应。
15.4.4.1 /etc/gettytab
/etc/gettytab 是一个用来配置getty 信息的termcap 风格的文件。请看看gettytab
的联机手册了解完整的文件格式和功能列表。
15.4.4.1.1 锁定速率的配置
如果你把你的modem 的数据通讯率锁定在一个特殊的速率上, 你不需要对
/etc/gettytab 文件做任何变化。
15.4.4.1.2 匹配速率的配置
你将需要在/etc/gettytab 中设置一个记录来给出getty 的你希望用到你的modem 上的
有关速度的信息。如果你有一个2400 bps 的modem,你可以使用已存在的D2400 的记录。
#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:
第13 页FreeBSD 使用手册
如果你有一个更高速度的modem,你必须在/etc/gettytab 中添加一个记录;这儿是一
个你可以使用的一个最高19.2 Kbps 的接口用在14.4 Kbps 的modem 上的记录:
#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:
上面使用19.2 Kbps 的连接速度的例子,也可以使用9600 bps (for V.32), 2400 bps,
1200 bps, 300 bps,直到19.2 Kbps。通讯率的调节使用nx= (“next table”)来实现。每
条线使用一个tc= (“table continuation”)的记录来加速对于一个特殊数据率的标准设
置。
如果你有一个28.8 Kbps 的modem,或你想使用它的14.4Kbps,你需要使用一个更高的
超过19.2 Kbps 的通讯速率的modem。这是一个启动57.6 Kbps 的gettytab 记录的例子:
#
# Additions for a V.32bis or V.34 Modem
第14 页FreeBSD 使用手册
# Starting at 57.6 Kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:
如果你有一个低速的CPU 或一个庞大负载的系统,你没有16550A 的串行端口,你可能
会在57.6 Kbps 上得到sio 错误。
15.4.4.2 /etc/ttys
/etc/ttys 文件的配置在例15-1 中介绍过。配置modem 是相似的,但我们必须指定一
个不同的终端类型。锁定速度和匹配速度配置的通用格式是:
ttyd0 "/usr/libexec/getty xxx" dialup on
上面的第一条是这个记录的设备特定文件—ttyd0 意味着/dev/ttyd0 是这个getty 将被
监视的文件。第二条"/usr/libexec/getty xxx"是将运行在设备上的处理init。第三条,
dialup,是默认的终端类型。第四个参数,on,指出了线路是可操作的init。也可能会有第
五个参数,secure,但它将只被用作拥有物理安全的终端(如系统终端)。
第15 页FreeBSD 使用手册
默认的终端类型可以依赖于本地参考。拨号是传统的默认的终端类型,以至用户可以定
制他们的登陆脚本来注意终端什么时候拨号,和自动调节他们的终端类型。然而,作者发现
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




