Linux – Serial Over Lan doesn’t redirect OS terminal

linuxredhatserial

I'm trying to create a monitoring system for a remote machine using an IPMI Serial Over Lan (SOL) console. The remote OS is RHEL 6, the mobo manufacturer is Supermicro.

I've successfully enabled SOL redirection in the BIOS. This allows me to see the BIOS and kernel parts of bootup through an attached SOL console over IPMI.

Next, I followed the steps mentioned in many online articles to get my OS ( runlevel 3, just text terminal ) to redirect too.

The result is almost always the same : After making the changes to /etc/grub.conf, /etc/inittab, and /etc/securetty, i can see the grub menu through the SOL console (yay!), but as soon as the OS starts booting, my SOL terminal receives 1 gibberish character, and nothing more.

For reference, this is my grub.conf :

serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
timeout=10
default=0

#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu

title Red Hat Enterprise Linux (2.6.32-220.el6.i686)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.32-220.el6.i686 ro \
     root=UUID=5f8c255c-f997-4d6a-9af5-a133fc9229a0 rd_NO_LUKS \
     rhgb crashkernel=auto quiet biosdevname=0 LANG=en_US.UTF-8 rd_NO_MD quiet \
     SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us \
     rd_NO_LVM rd_NO_DM serial console=tty0 console=ttyS1,115200n8
    initrd /boot/initramfs-2.6.32-220.el6.i686.img

I've added the following line to /etc/inittab:

S1:123456:respawn:/sbin/agetty -L ttyS1 115200 vt100

I've appended the following to my /etc/securetty:

ttyS1

I've created /etc/init/ttyS1.conf which looks like:

start on runlevel [345]
stop on runlevel [S016]

respawn
instance /dev/ttyS1
exec /sbin/agetty ttyS1 115200 vt100

Some concessions:

  • I'm not exaclty sure which serial port my BIOS are trying to redirect
    stuff into (ttyS0, ttyS1). Most of the examples use ttyS1, and since
    the grub menu gets redirected there, i'm pretty confident thats
    'correct'
  • I know the 'terminal types' and baud rates have to match between the
    BIOS and OS settings. I am consistently using 115200 for baud, but
    i'm less confident I'm choosing the right terminal type. The terminal
    type in BIOS is "ANSI", and this gives the coloration i want for the
    BIOS over SOL. However, for the OS settings, most of the examples use
    'linux'; i'm not sure if that's compatible with my ANSI setting. I've
    tried VT100 for both BIOS and OS, and I still never see anything past
    the Grub menu (plus, i lose color info for my BIOS over SOL).

Any help is greatly appreciated.

Best Answer

I faced similar problem with SOL on Supermicro server (SYS-1028R-WTRT). I used a Centos 7 OS. I think this sequence of actions help me decide this problem:

  1. I shutdown all systemd getty services (systemctl stop serial-getty@ttyS0 , ...ttyS1)
  2. Manually run /sbin/agetty -L ttyS1 115200 vt100 (this set of parameters get me a login string on SoL connection)
  3. Kill manually executed agetty.
  4. In file /etc/default/grub set:

    GRUB_CMDLINE_LINUX="console=ttyS1,115200 console=tty0"
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1"
    
  5. grub2-mkconfig -o /boot/grub2/grub.cfg

  6. Reboot!

After that steps I get working SoL console.