启动引导程序中支持串行控制台非常有用。感谢您对此的支持。
启动引导程序应支持 8250A UART 及其编程兼容的 82510、16450、16550 和 16750 后代产品。IBM PC/XT 中使用的串行芯片、8250 (无 A) 及其 8250B 后代产品不需要支持。8250A 数据手册是 82C50A CMOS 异步通信元件,并由英特尔的勘误表 82510 PC 软件兼容性 更新。16550 数据手册是 PC16550D 带 FIFO 的通用异步接收器/发送器。
为了设置串口和串行参数,大多数 Linux 启动引导程序使用模仿内核语法的语法控制台参数。最好保持这种一致性,因为用户无论如何都需要学习内核语法。
默认值应为 9600bps,8 个数据位,无奇偶校验,1 个停止位和 CTS/RTS 流控制。这为使用串行控制台的其他程序提供了最大的互操作性。
请不要忽略较低的速度,因为当计算机位于新几内亚高地一座山上的三天步行路程时,远程串行控制台最有价值。在不利的天空条件下,很难从 HF 无线电获得超过 75bps 的速度。
保守地使用调制解调器状态线。即使您忽略了传入状态 (DSR、DCD) 和握手线 (RTS),至少要声明传出状态 (DTR) 和握手线 (CTS)。配置正确的调制解调器不会接收 DTR 为低电平的呼叫,而降低 DTR 将导致调制解调器挂断。
考虑到 BIOS 可能已经初始化了 UART,并提供一个配置选项,以便通知启动引导程序。当启动引导程序初始化 UART 时,DTR 将下降,线路将挂断。在某些情况下,每次挂断都需要重新预订卫星电路,然后才能进行另一次呼叫。
考虑线路噪声。想象一下启动引导程序启动,然后每隔几秒钟被发送无意义的字符。虽然这肯定是不对的,但如果机器被困在启动引导程序提示符下,则很难远程诊断和纠正调制解调器的故障。一种解决方案是在定时器到期时启动默认镜像;即使在用户(或线路噪声)开始键入时也发生启动。例如,启动引导程序配置可以说
# Start the machine regardless after 30 minutes # 30 * 60 seconds per minute * units of tenths of seconds lifetime 18000 |
默认值应为无生命周期定时器。定时器在高可用性应用程序中也很有用:当机器用于计划可用性为 99.999% 的环境时,生命周期值应配置为三分钟或更短。
检查从 BIOS 读取的信息是否合理。例如,如果 BIOS 的扩展数据区建议 0x000 作为串口寄存器的地址,则不要尝试初始化寄存器。