Why I'm not all that positive on working through serial consoles

May 17, 2022

Over on Twitter I said some things about BMCs with Java-only KVM over IP. One of the suggestions was to use serial consoles with Serial over LAN. As it happens, I have very mixed feelings about this and I don't think it's attractive to us (although we do have serial consoles and a serial console server). The problem is that almost all of what we want to use KVM over IP for is very low level, and I don't think this low level stuff will generally work very well with a serial console.

There are two ways for a server serial console to work in the x86 world. The first way is for all of the various consoles of Linux and the programs that use them to be explicitly pointed to a serial port, and for them to be prepared to work through the limited features of a serial port console instead of the video console. This means that the server BIOS, the bootloader, the Linux kernel, the init system, the OS installer, the OS recovery mode, and so on and so forth all have to support configuring a serial connection and being used over serial.

(If you're lucky, many of them inherit their configuration from something else and you can just change that.)

The other way is for some low level thing in the server BIOS or the BMC to intercept video output and send a copy over the serial port, and accept serial port input as if it were console keyboard input. This is moderately straightforward for the actual BIOS (or EFI firmware) but becomes much more complicated once the BIOS hands off control to the next step (a bootloader or worse a kernel that will try to put the video console into some sort of resized framebuffer mode and then draw on it directly). Even in the BIOS, serial keyboard input is often more obscure and less well supported than the real keyboard (and you'd better hope that all parties involved agree on the serial version of, say, F11).

In theory, things like the Ubuntu server installer support working over an explicitly configured serial console (but not necessarily a BIOS redirected one). In practice I don't trust this to be well tested, especially in a wide variety of (serial) environments, simply because it's not very common. It's very likely that almost everything we'll interact with has mostly been written for and tested with the video console; the serial support is likely to be at best a second class thing and at the worst, buggy.

(As a general issue, there's also the problem that you mostly can't have both a video console and a serial console, and if we have to pick one we want a video console.)

PS: It appears that the solution to my specific problem is Supermico's IPMIView program, which even appears to work properly on my HiDPI display (this is better than I used to be able to get).

Written on 17 May 2022.
« Python programs as wrappers versus filters of other Unix programs
Missing TLS intermediate certificates can create mysterious browser problems »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Tue May 17 21:58:50 2022
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.