我正在尝试使用 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 操作系统。我认为以下操作顺序有助于我解决这个问题:
- 我关闭了所有 systemd getty 服务(systemctl stop serial-getty@ttyS0,...ttyS1)
- 手动运行 /sbin/agetty -L ttyS1 115200 vt100(这组参数让我在 SoL 连接上获得登录字符串)
- 手动执行完agetty后即可结束执行。
在文件 /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"
grub2-mkconfig -o /boot/grub2/grub.cfg
- 重启!
完成上述步骤后,我得到了可以工作的 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 图形启动。这可能会损坏终端。