Insufficient serial devices in the amd64 GENERIC kernel for SuperMicro
As I was futzing around trying to get OpenBSD 5.0 (amd64) to play well with the SOL provided by the BMC on my new SuperMicro server, I noticed something unexpected about the amd64 GENERIC kernel.
I really want a reliable console on these new servers, and I’m pretty sure that if any OS is going to manage decent serial support, it’s going to be OpenBSD. Getting OpenBSD to use a serial console is well documented and pretty easy, but installing via serial console is a little more difficult. In my case, though, I don’t need to modify the install CD because I don’t technically need a 100% serial install.
The AMI BIOS on this server provides console redirection that — while not the best — works well enough to allow me to interrupt the VGA boot loader and change the console to the serial port via
set tty com2. After that, the ramdisk kernel booted with a console on the third serial port and my generic OpenBSD 5.0 install went very smoothly. Until it came time to boot into the new OS, that is.
An OpenBSD install is a thing a beauty. It’s the most well thought out installer I’ve ever used, and it’s exclusively text-based. So it’s a great fit for a serial console install. It even detected that I was using com2, and asked if I wanted to make that the console on the install. When I rebooted, however, I received all the kernel messages on the SOL console, but nothing from the startup scripts or getty.
It appears to me the problem is that — while the amd64/RAMDISK_CD and the i386/GENERIC kernels both come configured with 3 COM ports — the amd64 GENERIC kernel is only configured with 2 COM ports. If I use
config -e to add a third com port and boot that modified kernel, everything works perfectly.
As soon as I understand the issue a bit better, I’ll be posting a step-by-step guide with some model numbers.