Supermicro Serial port KVM
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.
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.
Select "Legacy Console Redirection Settings"
Change to COM2 / SOL
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
fmadio@fmadio10-50:/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
fmadio@fmadio10-50:/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 ADMIN@192.168.1.1
ADMIN@192.168.1.1'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 +-
fmadio@fmadio10-50:~$
But whats most satisfying is navigating the BIOS screen in an XTerm
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.