远程串行控制台 HOWTO

Glen Turner

澳大利亚学术与研究网络

Mark F. Komarinski

v2.6 2003-03-31

修订历史
修订 2.62003-03-31修订者:gdt
更正了 CTS/RTS 的相反解释。在标记中使用 <quote>。TLDP PDF 现在很好,所以移除将 PostScript 渲染为 PDF 的说明。GRUB 配置中的错别字。
修订 2.52003-01-20修订者:gdt
每种技术类型只有一个控制台。设置时区。在 inittab 中使用 off 参数而不是注释。电缆长度。
修订 2.42002-10-03修订者:gdt
内核流控制错误,更多布线,Debian,Livingston Portmaster,错别字(尤其是在翻译成日语时发现的错别字)。
修订 2.32002-07-11修订者:gdt
Red Hat Linux 7.3 的更新,串行端口速度和 UART 的更正,ioctlsave。
修订 2.22002-05-22修订者:gdt
小的更改
修订 2.12002-05-16修订者:gdt
内核控制台语法的更正。添加了 USB 和 devfs。
修订 2.02002-02-02修订者:gdt
第二版。
修订 ≤1.02001-03-20修订者:mfk
第一版。

RS-232 串行控制台允许通过连接到异步串行端口的终端或调制解调器来控制 Linux。系统管理不再需要显示器、鼠标和键盘。当 Linux 系统部署在远程站点或高密度机架中时,串行控制台非常有用。

HOWTO 描述了如何配置 Linux 以连接串行控制台。


献词

Glen Turner 感谢他的家人允许他花费出乎意料多的夜晚来编写本 HOWTO。谢谢你 Karen、Kayla 和 Ella。

目录
1. 简介
1.1. 什么是控制台?
1.2. 为什么要使用串行控制台?
1.3. “控制台”"console"的替代含义
1.4. 配置概述
2. 准备工作
2.1. 创建回退位置
2.2. 选择一个串行端口
2.3. 选择串行速度和参数
2.4. 配置调制解调器或空调制解调器电缆
2.5. 配置终端或终端仿真器
3. 可选配置 BIOS
4. 配置引导加载程序
4.1. 配置 LILO 引导加载程序
4.2. 配置 GRUB 引导加载程序
4.3. 配置 SYSLINUX 引导加载程序
5. 配置 Linux 内核
5.1. 使用 LILO 配置 Linux 内核
5.2. 使用 GRUB 配置 Linux 内核
5.3. 使用 SYSLINUX 配置 Linux 内核
6. 配置 getty
6.1. init 系统
6.2. 传统 getty
6.3. agetty
6.4. mgetty
6.5. mingetty
6.6. 没有 getty
7. 配置杂项
7.1. 允许 root 从串行控制台登录
7.2. 将 init 级别更改为文本模式
7.3. 删除保存的控制台设置
7.4. 串行控制台不是 /dev/modem
7.5. 更改 /dev/systty 的目标
7.6. 配置可插拔身份验证模块
7.7. 配置 Red Hat Linux
8. 重启并测试
8.1. 验证控制台操作
8.2. 重新创建保存的控制台设置
8.3. 测试控制台
8.4. 接下来去哪里?
9. 安全
9.1. 使用好的密码
9.2. 遵守数据终端就绪和数据载波检测
9.3. 使用或配置哑调制解调器
9.4. 限制控制台消息
9.5. 限制使用的调制解调器功能
9.6. BIOS 功能
9.7. 使用引导加载程序密码
9.8. 非交互式引导序列
9.9. Magic SysRq 键
9.10. 调整 Ctrl-Alt-Delete 的行为
9.11. 记录尝试访问
9.12. 对抗电话线路的拦截
10. 配置内核以支持串行控制台
10.1. Linux 内核版本 2.5
10.2. Linux 内核版本 2.4
10.3. Linux 内核版本 2.2
11. 串行布线
11.1. 术语
11.2. 从控制台端口到调制解调器的电缆
11.3. 从控制台端口到终端(或另一台 PC)的电缆
11.4. 串行电缆的长度
11.5. 制作串行电缆
12. 调制解调器配置
12.1. 使用 Minicom 向调制解调器发送命令
12.2. 配置哑调制解调器
12.3. 使用 AT 命令配置调制解调器
12.4. 内置调制解调器
12.5. WinModems
A. 错误和烦恼
A.1. Linux 内核中的流控制
A.2. Red Hat Linux 7.1 和 SysVinit
A.3. BIOS、键盘和显卡
A.4. 调制解调器在重启时挂断
A.5. init 和 syslog 输出未在辅助控制台上显示
A.6. 连接后控制台无响应
A.7. 调制解调器在初始化期间挂断
A.8. 引导加载程序没有流控制
A.9. 引导加载程序容易受到线路噪声的影响
A.10. 高级电源管理
A.11. 调制解调器和海外电信要求
B. 从串行控制台上传文件
B.1. 禁用控制台日志记录
B.2. ASCII 上传和 cat
B.3. Xmodem、Ymodem 和 Zmodem
B.4. Kermit
C. 从串行控制台升级 Red Hat Linux
C.1. 选择启动盘
C.2. 配置 BIOS 以使用串行端口
C.3. 配置调制解调器以忽略 DTR 并声明 DCD
C.4. 准备网络安装软盘
C.5. 准备 HTTP 服务器
C.6. 记录网络配置
C.7. 记录 LILO 配置
C.8. 升级 Red Hat 发行版
C.9. 为串行控制台创建启动盘
C.10. 更多参考资料
D. 从串行控制台升级 Debian GNU/Linux
E. 终端服务器配置
E.1. 购买二手终端服务器时的注意事项
E.2. Cisco 2511
E.3. Xyplex/iTouch MAXserver 1600
E.4. Xylogics/Bay/Nortel Annex
E.5. Livingston/Lucent Portmaster
F. 给开发人员的免费建议
F.1. 给引导加载程序作者的建议
F.2. 给 BIOS 作者的建议
G. 关于本 HOWTO
G.1. 版权
G.2. 免责声明
G.3. 致谢
G.4. 意见和更正
版本信息
表格列表
1-1. 引用“控制台”"console"的不同方式
2-1. 同一串行端口的多个名称
2-2. 用于 IBM PC/AT RS-232 端口的中断
4-1. SYSLINUX 流控制位图
10-1. IBM-PC/AT 串行端口比特率及其位时钟分频器
11-1. RS-232 中建议的数据速率和最大距离
图表列表
2-1. /etc/rc.serial 中使用 setserial 命令禁用串行端口 /dev/ttyS2
2-2. 串行比特率语法的扩展巴科斯-瑙尔范式
2-3. 串行奇偶校验语法的扩展巴科斯-瑙尔范式
2-4. 串行数据位语法的扩展巴科斯-瑙尔范式
2-5. 串行停止位语法的扩展巴科斯-瑙尔范式
2-6. 串行流控制语法的扩展巴科斯-瑙尔范式
2-7. 内核串行参数语法的扩展巴科斯-瑙尔范式
4-1. LILO serial 命令的语法,采用 EBNF
4-2. LILO serial EBNF 变量
4-3. LILO 引导加载程序示例配置
4-4. 使用 md5crypt 为 GRUB 创建哈希密码
4-5. GRUB 配置需要密码
4-6. 用于串行控制台的 GRUB 配置
4-7. 用于串行控制台以及连接的显示器和键盘控制台的 GRUB 配置
4-8. 配置为串行和连接的显示器输出时,GRUB 输出到默认设备
4-9. 用于 VT100 以外的终端的命令行界面的 GRUB 配置
4-10. 向 GRUB 菜单添加单用户模式选项
4-11. SYSLINUX serial 命令的语法,采用 EBNF
4-12. SYSLINUX serial EBNF 变量
5-1. 内核 console 语法,采用 EBNF
5-2. 推荐的内核参数,带有显卡的 PC
5-3. 推荐的内核参数,没有显卡的 PC
5-4. 推荐的内核参数,LILO 配置
5-5. 推荐的内核参数,GRUB 配置
5-6. 推荐的内核参数,SYSLINUX 配置
6-1. 交互式更改连接终端的制造商和型号
6-2. 交互式更改连接终端的时区
6-3. getty 由 init 启动,基于 /etc/inittab 中的条目
6-4. gettydefs 中定义 CON9600
6-5. /etc/gettydefs 中条目的语法,采用 EBNF
6-6. 用于 agetty 的 /etc/inittab 条目
6-7. 用于 mgetty 的 /etc/inittab 条目
6-8. mgetty 配置文件 mgetty.config
6-9. 更少的虚拟终端。从 /etc/inittab 中删除 mingetty 条目
6-10. 更少的虚拟终端。取消分配未使用的虚拟终端并删除其设备文件。
6-11. 当不使用 getty 时,/etc/rc.serial 的内容锁定控制台串行端口
7-1. 更改 securetty 以允许 root 从串行控制台登录
7-2. 来自 Red Hat Linux 7.2 的 Xservers
7-3. 来自 Red Hat Linux 7.2 的 gdm.conf[servers] 部分
7-4. 删除包含已保存的控制台参数的 ioctl.save
7-5. 如果 /dev/modem 指向串行控制台的端口,则删除它
7-6. /etc/makedev.d/linux-2.4.x/dev/systty 的默认值
7-7. MAKEDEV 配置文件中更改 /dev/systty 的值
7-8. 安装 /dev/systty 的新值
7-9. console.perms 中的默认 <console> 指的是连接的键盘和屏幕
7-10. console.perms 中的默认设备列表
7-11. console.perms 中连接的键盘和屏幕所需的设备
7-12. console.perms 中添加 <sconsole> 以引用串行控制台
7-13. console.perms 中剩余的设备已更改为引用串行控制台
7-14. 对 Red Hat Linux 的 /etc/sysconfig/init 的更改
7-15. 对 Red Hat Linux 的 /etc/sysconfig/kudzu 的更改
8-1. 使用 ioctlsave 创建 /etc/ioctl.save 而无需进入单用户模式
9-1. 摘自《黑客喜欢战争拨号和弱密码》
9-2. 修改后的 /etc/syslog.conf 将日志消息复制到日志服务器
9-3. 通过在 /etc/sysconfig/syslog 中设置选项来允许远程日志消息
9-4. 将 syslog 消息限制为 remote.example.edu.au
9-5. 使用 nscd 缓存反向 DNS 查找
9-6. 限制向控制台用户发送消息
9-7. /etc/profile.d/mesg.sh 限制向控制台用户发送消息
9-8. /etc/profile.d/mesg.csh 限制向控制台用户发送消息
9-9. 将文件安装到 /etc/profile.d
9-10. 使用 sysctl 禁用 magic SysRq 键
9-11. 配置 /etc/sysctl.conf 以禁用 magic SysRq 键
9-12. 内核 make menuconfig 显示已禁用的 SysRq 键
9-13. 内核 .config 显示已禁用的 SysRq 键
9-14. /etc/inittab 中 Ctrl-Alt-Delete 的默认处理
9-15. /etc/inittab 中忽略 Ctrl-Alt-Delete
9-16. /etc/inittab 中按 Ctrl-Alt-Delete 干净地关闭
10-1. 使用 make menuconfig 进行串行控制台的内核配置
10-2. 使用 .config 进行串行控制台的内核配置
10-3. 使用 make menuconfig 进行 USB 适配器串行控制台的内核配置
10-4. 使用 .config 进行 USB 适配器串行控制台的内核配置
10-5. 使用 make menuconfig 进行串行控制台的内核配置
10-6. 使用 .config 进行串行控制台的内核配置
11-1. 具有完整状态和握手的空调制解调器电缆
11-2. 具有完整状态和握手的空调制解调器电缆的变体
11-3. 具有伪造状态和握手的空调制解调器电缆
11-4. 没有状态或握手的空调制解调器电缆
11-5. 单向没有状态或握手的空调制解调器电缆
12-1. 哑调制解调器的前面板
12-2. 测试调制解调器的端口速度
12-3. 使用 AT 命令配置调制解调器
12-4. 重置 Hayes AT 样式调制解调器
A-1. 带有 CTS/RTS 流控制的内核 console 参数
A-2. 控制台 CTS/RTS 流控制的内核源代码
A-3. setserial 导致调制解调器在机器初始化时挂断
B-1. 在 Red Hat Linux 中抑制内核消息到控制台
C-1. 配置 BIOS 以使用串行链路
C-2. 配置 BIOS 以从硬盘启动
C-3. 从 Red Hat Linux 7.2 mkbootdisk 中提取的创建 SYSLINUX.CFG 的内容
C-4. mkbootdisk 中更改的提取内容,它创建了一个使用串行控制台的 SYSLINUX.CFG
E-1. Cisco 2511 终端服务器到 Linux PC 的基本配置
E-2. Portmaster 单元配置
E-3. Portmaster 端口配置
F-1. 配置 /dev/nvram 以访问 CMOS 配置
F-2. 获取 CMOS 配置
F-3. 设置 CMOS 配置
示例列表
4-1. 使用内核参数避免访问权限
5-1. 供应商安装的完整 LILO 配置
5-2. 为串行控制台修改的完整 LILO 配置
5-3. 供应商安装的完整 GRUB 配置
5-4. 为串行控制台修改的完整 GRUB 配置
8-1. 拨号进入串行控制台
C-1. 显示 Internet 协议配置
C-2. 显示 LILO 配置