LAN 串行不会重定向 OS 终端

LAN 串行不会重定向 OS 终端

我正在尝试使用 IPMI Serial Over Lan (SOL) 控制台为远程机器创建监控系统。远程操作系统是 RHEL 6,主板制造商是 Supermicro。

我已成功在 BIOS 中启用 SOL 重定向。这使我能够通过 IPMI 上的附加 SOL 控制台查看 BIOS 和启动的内核部分。

接下来,我按照许多在线文章中提到的步骤让我的操作系统(运行级别 3,仅文本终端)也重定向。

结果几乎总是相同的:在对 /etc/grub.conf、/etc/inittab 和 /etc/securetty 进行更改后,我可以通过 SOL 控制台看到 grub 菜单(耶!),但是一旦操作系统开始启动,我的 SOL 终端就会收到 1 个乱码,仅此而已。

作为参考,这是我的 grub.conf:

serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
timeout=10
default=0

#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu

title Red Hat Enterprise Linux (2.6.32-220.el6.i686)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.32-220.el6.i686 ro \
     root=UUID=5f8c255c-f997-4d6a-9af5-a133fc9229a0 rd_NO_LUKS \
     rhgb crashkernel=auto quiet biosdevname=0 LANG=en_US.UTF-8 rd_NO_MD quiet \
     SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us \
     rd_NO_LVM rd_NO_DM serial console=tty0 console=ttyS1,115200n8
    initrd /boot/initramfs-2.6.32-220.el6.i686.img

我已将以下行添加到 /etc/inittab:

S1:123456:respawn:/sbin/agetty -L ttyS1 115200 vt100

我已将以下内容附加到我的 /etc/securetty:

ttyS1

我已经创建了 /etc/init/ttyS1.conf,如下所示:

start on runlevel [345]
stop on runlevel [S016]

respawn
instance /dev/ttyS1
exec /sbin/agetty ttyS1 115200 vt100

一些让步:

  • 我不确定我的 BIOS 试图将内容重定向到哪个串行端口(ttyS0、ttyS1)。大多数示例都使用 ttyS1,而且由于 grub 菜单被重定向到那里,我非常确信这是“正确的”
  • 我知道 BIOS 和 OS 设置之间的“终端类型”和波特率必须匹配。我一直使用 115200 作为波特率,但我不太确定我是否选择了正确的终端类型。BIOS 中的终端类型是“ANSI”,这为 SOL 上的 BIOS 提供了我想要的色彩。但是,对于 OS 设置,大多数示例都使用“linux”;我不确定这是否与我的 ANSI 设置兼容。我尝试过 BIOS 和 OS 的 VT100,但我仍然看不到 Grub 菜单以外的任何内容(此外,我在 SOL 上丢失了 BIOS 的颜色信息)。

任何帮助是极大的赞赏。

答案1

我在 Supermicro 服务器 (SYS-1028R-WTRT) 上遇到了类似的 SOL 问题。我使用的是 Centos 7 操作系统。我认为以下操作顺序有助于我解决这个问题:

  1. 我关闭了所有 systemd getty 服务(systemctl stop serial-getty@ttyS0,...ttyS1)
  2. 手动运行 /sbin/agetty -L ttyS1 115200 vt100(这组参数让我在 SoL 连接上获得登录字符串)
  3. 手动执行完agetty后即可结束执行。
  4. 在文件 /etc/default/grub 中设置:

    GRUB_CMDLINE_LINUX="console=ttyS1,115200 console=tty0"
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1"
    
  5. grub2-mkconfig -o /boot/grub2/grub.cfg

  6. 重启!

完成上述步骤后,我得到了可以工作的 SoL 控制台。

答案2

当你以 root 身份在 shell 中输入以下命令时,控制台上会发生什么?:

initctl start serial DEV=TTYS1 SPEED=115200

答案3

尝试更改您的控制台顺序console=ttyS1,115200n8 console=tty0

如果这不起作用,也许 BIOS/Grub 和内核对串行端口的枚举不同,导致编号不同。

在这种情况下,尝试更改内核行console=ttyS0,115200n8 console=tty0

答案4

我有一段时间没有使用串行控制台了,但我怀疑问题是:

rhgb quiet

在你的 grub.conf 中设置一行。

这将启用 Red Hat 图形启动。这可能会损坏终端。

https://access.redhat.com/site/articles/2938

相关内容