如何在 FreeBSD 上设置 Serial-Over-Lan (SOL)超微 X9-SCM-F主板?那里有一些资源,但它们互相矛盾,不清楚,而且实际上不允许我让 SOL 在引导加载程序之后运行。
答案1
这最初是在 FreeBSD 10.0-RELEASE 上测试的,但可能适用于 FreeBSD 9.x,并且已知至少可以运行到 13.0-RELEASE。不同的主板可能具有略微不同的配置,但这仍可能是一个有用的参考。
BIOS 配置
打开 BIOS 设置并导航到“高级 → 串行端口控制台重定向”,并确保“SOL 控制台重定向”设置为“已启用”(您不需要启用 COM1 或 COM2 或带外管理)。
打开“SOL控制台重定向设置”,配置如下:
Terminal Type [VT-UTF8] Bits per second [115200] Data Bits [8] Parity [None] Stop Bits [1] Flow Control [None] VT-UTF8 Combo Key Support [Enabled] Recorder Mode [Disabled] Resolution 100x31 [Enabled] Legacy OS Redirection Resolution [80x24] Putty KeyPad [VT100] Redirection After BIOS POST [Always Enable]
您只需将“终端类型”更改为 VT-UTF8,将“每秒位数”更改为 115200 即可实现上述配置。不更改终端类型会导致在复制粘贴到 SOL 会话时出现一些问题。
FreeBSD 配置
启动 FreeBSD 并将以下行添加到
/boot/loader.conf
:console="comconsole vidconsole" comconsole_speed=115200 comconsole_port="0x3E8"
0x3E8
是 COM3 的端口(BIOS 设置中的“SOL”)。您可以通过dmesg
以下方式检查来发现可能的值:
$ dmesg | grep uart
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart0: console (115200,n,8,1)
uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
uart2: <16550 or compatible> port 0x3e8-0x3ef irq 10 on acpi0
如果您希望通过 SOL 获得登录提示(从而能够登录),请编辑/etc/ttys
更改以下行:
ttyu2 "/usr/libexec/getty std.9600" dialup off secure
到
ttyu2 "/usr/libexec/getty std.115200" vt100 on secure
我们之所以进行更改,ttyu2
是因为这对应于 COM3(因为 TTY 是零索引的,而 COM 不是),这是我们的 SOL 使用的。如果您不需要登录(因为,例如,您只需要输入密码即可格力在启动过程中),您可以保持/etc/ttys
原样。
笔记
以上是实现此功能所需的最低要求。很多人(见下文“参考资料”)建议或表示他们“需要”大量其他设置,但对我来说,这些设置不是必需的,但也不会损害 SOL 功能。再次,以下内容不需要,仅供参考。
在
/boot/loader.conf
:boot_multicons="yes" boot_serial="yes" hint.uart.0.flags="0x00" hint.uart.2.at="isa" hint.uart.2.flags="0x10" hint.uart.2.irq="10" hint.uart.2.port="0x3E8"
在
/boot.config
:-P
或者
-Dh
尽管FreeBSD 手册似乎说,您不需要编译自定义内核。
参考
请注意,其中许多都是错误的、过时的或过于热衷于设置实际上不需要的选项。尽管如此,它们对于实现上述最终实现还是有帮助的。
- http://www.ackstorm.org/?p=44(archive.org 镜像)
- http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/serialconsole-setup.html
- http://lists.freebsd.org/pipermail/freebsd-questions/2012-June/242173.html
- http://freebsd.1045724.n5.nabble.com/IPMI-SOL-setup-on-FreeBSD-9-1-amd64-supermicro-X9SCM-F-X9CL-F-td5779729.html
- http://lists.freebsd.org/pipermail/freebsd-stable/2013-February/thread.html#72437
- http://www.paranoid.nl/~eilander/freebsd/ipmi/ipmicons.html(archive.org 镜像)
答案2
没有足够的代表来评论上面的答案,因此:
我运行的是 FreeBSD 9.2,Andrew 的上述配置为我在 X8SIL-F / X8SIE-F 上的 COM 3 启用了 SOL,从 BIOS 到登录提示。它完全基于他的上述回答,但在 9.2 上使用 GENERIC 内核进行了测试——谢谢,Andrew!
几点说明:
似乎是 中“console=...”行中的“comconsole”或“vidconsole”的顺序
/boot/loader.conf
决定了哪个成为正确的启动控制台,从而决定了控制台消息(和单用户提示)出现的位置。我无法/boot.config
影响这一点,无论是探测键盘、-P 还是双控制台、-D(参见 )boot(8)
,都没有任何效果——所以我没有/boot.config
。X8SIL 的 BIOS 中 COM3 的设置非常准确。我只按照建议将终端类型更改为 VT-UTF8,尽管 ANSI 和 VT100 也可以使用——我测试过它们。
我没有必要
uart2
在 中设置 irq/boot/loader.conf
。有关标志,请参阅uart(8)
。在 中
/dev/ttys
,我将其设置ttyu2
为“不安全”,因为我不想 root 通过 SOL 登录(单用户模式仍会让您获得 root 权限)。我建议也将控制台设置为不安全。
答案3
如果某人仍然无法获取 SOL 输出 - 请重置 BMC,可能就是这种情况。
答案4
虽然没有足够的声誉来评论,但是这拯救了我。
但是我确实需要添加这些,/boot/device.hints
因为如果没有它们,FreeBSD 就看不到 SOL 控制台的 uart2 设备。我有一台 Supermicro X9SRi-3F,SOL 控制台在 COM3 上运行。即使您禁用其他两个板载串行端口,也无法更改这一点。
我必须添加这些才能完全解锁 FreeBSD 12.2 上的串行控制台支持
hint.uart.2.at="isa"
hint.uart.2.port="0x3E8"
hint.uart.2.flags="0x10"