下一步 上一步 目录

13. Uugetty 用于拨入 (来自旧的 Serial-HOWTO)

请注意,您可以将 mgetty 用作 uugetty 的(更好?)替代品。mgetty 比 uugetty 更新且更受欢迎。有关这两种 getty 的简要比较,请参阅 Getty

13.1 安装 getty_ps

由于 uugetty 是 getty_ps 的一部分,您首先需要安装 getty_ps。如果您没有安装,请从 metalab.unc.edu:/pub/Linux/system/serial 获取最新版本。特别是,如果您想使用高速(57600 和 115200 bps),您必须获取 2.0.7j 或更高版本。您还必须拥有 libc 5.x 或更高版本。

默认情况下,getty_ps 将配置为符合 Linux FSSTND(文件系统标准),这意味着二进制文件将位于 /sbin 中,配置文件将命名为 /etc/conf.{uu}getty.ttySN。这在文档中并不明显!它还会期望锁文件位于 /var/lock 中。请确保您有 /var/lock 目录。

如果您不想要 FSSTND 兼容性,二进制文件将位于 /etc 中,配置文件将位于 /etc/default/{uu}getty.ttySN 中,锁文件将位于 /usr/spool/uucp 中。如果您正在使用 UUCP,我建议您这样做,因为如果您将锁文件移动到 UUCP 找不到的位置,UUCP 将会出现问题。

getty_ps 还可以使用 syslogd 来记录消息。如果您尚未运行 syslogd,请参阅 syslogd(1)syslog.conf(5) 的 man 手册以了解如何设置 syslogd。消息以 LOG_AUTH 优先级记录,错误使用 LOG_ERR,调试使用 LOG_DEBUG。如果您不想使用 syslogd,您可以编辑 getty_ps 源代码中的 tune.h 文件,以便使用日志文件来记录消息,默认情况下是 /var/adm/getty.log

决定您是否需要 FSSTND 兼容性和 syslog 功能。您也可以选择两者的组合。编辑 Makefiletune.hconfig.h 以反映您的决定。然后根据软件包中包含的说明进行编译和安装。

13.2 设置 uugetty

使用 uugetty,您可以使用调制解调器拨出,同时 uugetty 正在监视端口以进行登录。uugetty 执行重要的锁文件检查。更新 /etc/gettydefs 以包含您的调制解调器的条目。有关您放入 /etc/gettydefs 中的条目的含义的帮助,请参阅 Vern Hoxie 收集的 "serial_suite"。获取方法请参见 关于 getty_em 部分。当您完成编辑 /etc/gettydefs 后,您可以通过执行以下操作来验证语法是否正确

linux# getty -c /etc/gettydefs

现代调制解调器

如果您有 9600 bps 或更快的带数据压缩的调制解调器,您可以将您的串行端口锁定到一个速度。例如

# 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

旧的慢速调制解调器

如果您有一个慢速调制解调器(低于 9600 bps),那么,您需要多行来尝试多个速度,而不是单行来表示单个速度。请注意,这些行通过行中最后一个“单词”(例如 #4800)相互链接。每个条目之间都需要空行。此示例中慢速调制解调器真的需要更高的调制解调器到串行端口速度吗?uugetty 文档显示了它们,所以我尚未删除它们。

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

4800# B4800 CS8 # B4800 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: #115200

登录标语

如果您愿意,您可以让 uugetty 在登录标语中打印有趣的内容。在 Greg 的示例中,他有系统名称、串行线路和当前 bps 速率。您可以添加其他内容

       @B    The current (evaluated at the time the @B is seen) bps rate.
       @D    The current date, in MM/DD/YY.
       @L    The serial line to which uugetty is attached.
       @S    The system name.
       @T    The current time, in HH:MM:SS (24-hour).
       @U    The number of currently signed-on users.  This is  a
             count of the number of entries in the /etc/utmp file
             that have a non-null ut_name field.
       @V    The value of VERSION, as given in the defaults file.
       To display a single '@' character, use either '\@' or '@@'.

13.3 自定义 uugetty

您可以为每个端口调整许多参数。这些参数在每个端口的单独配置文件中实现。/etc/conf.uugetty 文件将被所有 uugetty 实例使用,而 /etc/conf.uugetty.ttySN 将仅被该端口使用。可以在 getty_ps 源代码文件中找到示例默认配置文件,这些文件随大多数 Linux 发行版一起提供。由于空间限制,此处未列出它们。请注意,如果您使用的是较旧版本的 uugetty(早于 2.0.7e),或者未使用 FSSTND,则默认文件将是 /etc/default/uugetty.ttySN。Greg 的 /etc/conf.uugetty.ttyS3 看起来像这样

# sample uugetty configuration file for a Hayes compatible modem to allow
# incoming modem connections
#
# line to initialize
INITLINE=ttyS3
# 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,并为您环境替换正确的信息 - 运行级别(2345 或 345 等)、配置文件位置、端口、速度和默认终端类型

S3:2345:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100
重启 init
linux# init q
对于 /etc/inittab 中的 speed 参数,您需要使用您的调制解调器支持的最高 bps 速率。

现在 Linux 将监视您的串行端口以进行连接。从另一台机器拨入并登录到您的 Linux 系统。

uugetty 有更多选项,请参阅 uugetty)(通常简称为 getty)的 man 手册以获取完整描述。其中还有调度功能和回铃功能。


下一步 上一步 目录