Supermicro Serial port KVM

Posted by fmadio | 100G Ethernet

One of the great thing about server motherboards is their remote KVM functionality, IPMI interfaces and general ability to run head-less. We use Supermicro boards which have a full featured graphical Java based KVM client you can run from a browser, which is cool. But sometimes in restrictive network topologies its would be simpler and easier to SSH into the serial port.


  • supermicro kvm over serial

With our systems you can SSH into the serial port to change BIOS settings, or inspect POST messages or just login to the system if the linux network login is unavaliable. Our systems are setup like this out of the box, but here`s how to set it up for other systems.

Start by sending the "Legacy Serial Port" to COM2 / SOL (Serial over Lan). Bios setting below.



supermicro serial over ssh


Select "Legacy Console Redirection Settings"



supermicro serial over ssh


Change to COM2 / SOL



supermicro serial over ssh

Then you need to tell the linux kernel to output all boot messages to the serial console with the follow kernel boot commands. Example below

linux /vmlinuz ro console=ttyS1,115200n8 earlyprintk=serial,ttyS1,115200n8

Which almost gets you there, with the final change to allow login via the serial port, with the following additions

[email protected]:/etc$ cat inittab # /etc/inittab: init configuration for busybox init. # Boot-time system configuration/initialization script. # ::sysinit:/etc/init.d/rcS # /sbin/getty respawn shell invocations for selected ttys. tty1::respawn:/sbin/getty -nl /sbin/autologin 38400 tty1 #tty2::respawn:/sbin/getty 38400 tty2 #tty3::respawn:/sbin/getty 38400 tty3 #tty4::askfirst:/sbin/getty 38400 tty4 #tty5::askfirst:/sbin/getty 38400 tty5 #tty6::askfirst:/sbin/getty 38400 tty6 ttyS1::respawn:/sbin/getty 115200 ttyS1 # Stuff to do when restarting the init # process, or before rebooting. ::restart:/etc/init.d/rc.shutdown ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:/etc/init.d/rc.shutdown

and one more file

[email protected]:/etc$ cat securetty # /etc/securetty: List of terminals on which root is allowed to login. console # For people with serial port consoles ttyS0 ttyS1 # Standard consoles tty1 tty2 tty3 tty4 tty5 tty6 tty7

How do I SSH into the serial port?


We use a highly customized version of linux so its likely you`ll need some additional changes for SystemD / Ubuntu / Redhat etc to get the full serial experience going. Once everything is setup, simply ssh into the BMC / IPMI port and follow the commands below.

$ ssh [email protected] [email protected]'s password: ATEN SMASH-CLP System Management Shell, version 1.05 Copyright (c) 2008-2009 by ATEN International CO., Ltd. All Rights Reserved -> cd system1/sol1 /system1/sol1 -> start /system1/sol1 press , , and then to terminate session (press the keys in sequence, one after the other) fmadio10G fmadio10-50 login: fmadio Password: _____ .___.__ 10G _/ ____\_____ _____ __| _/|__| ____ \ __\/ \ \__ \ / __ | | | / _ \ | | | Y Y \ / __ \_/ /_/ | | |( <_> ) |__| |__|_| /(____ /\____ | |__| \____/ \/ \/ \/ ============================================ -+ no user serviceable parts inside +- [email protected]:~$

But whats most satisfying is navigating the BIOS screen in an XTerm


supermicro serial console

Server environments can be pretty tricky, especially exchange colo setups that are tightly controlled port restricted / ip restricted / DENY ALL / pain in general. The ability to ssh into the serial port of your box can be really handy when debuging system problems... particularly when the box is on the other side of the Pacific (or Atlantic) Ocean.