Serial Console

Jim Wright jwright at
Sun Jul 14 11:57:56 PDT 2002

> Date: Sat, 13 Jul 2002 12:54:13 -0500
> From: "Timothy W. Moore" <moor007 at>
> To: beowulf at
> Subject: Serial Console
> This should be in the Redhat docs...and if it is, I have been unable to 
> find it.

> I built an 8-CPU cluster, and because I am not a linux guru, took the 
> lazy route and used a KVM switch.  I upgraded my networking with GigE 
> that now occupies the riser slot...former resting place of my video 
> card.  I now want to upgrade to Redhat 7.3 without the benefit of a 
> video card and have no idea where to begin.  The first question is 
> I need a special card?  switch? The second question is 
> software...what files do I change to redirect the ouput to com2(?)?  If 
> there is an Idiot's guide (step by step) on the net, the URL would be 
> greatly appreciated.  Remember...I know absolutely nothing about this 
> topic.

First, get a terminal server.  Wonderful devices.  For years and years I
used Xylogics Remote Annex.  They've been bought out a few times, and I'm
not sure who owns them now.  Very reliable, but not the cheapest solution.
At Penguin we use and resell the Cyclades boxes.  Most of the clusters
we sell include one or more of these.  I've had very good experiences
with them.  And they run embedded linux!  Setup is straightforward,
and they don't start the manual out by saying "load our software on your
windoze box..."

The one trick you need is how to get the installer started using the
serial port as console.  If you just put in the cdrom and boot, it
doesn't matter what is contained in the files on you hard drive.  I
recommend that you create a boot floppy for RH73, then mount that
floppy and edit the syslinux.cfg file.  Change the default entry
so it looks like

    label linux
      kernel vmlinuz
      append initrd=initrd.img lang= devfs=nomount ramdisk_size=8192 text console=ttyS0,9600n8

Fill in the values appropriate for your serial port.  Then boot
off the floppy, wait for the timeout and then it will boot with your
default option.  Eventually you should see the installer appear on the
serial port.  Install or upgrade as desired.

There are several improvements, such as booting via PXE, installing over
the network, using kickstart, etc.  That is an excersize for the reader.

After the system is installed, you will want to make the following changes
to allow the running system to use the serial console.  You might want
use to the floppy trick again, but this time add "rescue" to the append
options.  This will allow you to modify the installed system.

Below are the steps required to set up access to a system's console
via the serial port. This setup will assume 9600 baud, with no parity,
eight data bits and one stop bit. It also assumes you will be using the
first serial port on the motherboard. Adjust to suit your needs.

   1. BIOS

      Set up your BIOS as required so that it operates both through
      the serial port and through the graphics console. The details of
      this are different for every motherboard, and will not be covered
      here. Note that some motherboards (usually "workstation" boards)
      do not have this feature.

      (This is the chicken and egg step.  There really is no way around
      having to install a keyboard/video/mouse on your system to do this.
      Unless of course your system vendor did it for you!  Hint.  :)

   2. LILO

      In the global options section of the /etc/lilo.conf file, add
      the line


   3. kernel

      In the /etc/lilo.conf file, add the following line to each of the
      individual boot sections

	append="console=tty0 console=ttyS0,9600n8"

      This instructs the kernel where to print startup messages. As
      illustrated, you can have more than one console defined for startup
      messages. However, only a single device can be associated with
      /dev/console. The last device listed as a console argument will
      become /dev/console for the running system. This means that on
      the graphics console, only a subset of the boot messages will
      appear. The complete collection of boot messages will appear on
      the serial port.

   4. getty

      Add the following line to the /etc/inittab file.

	S0:2345:respawn:/sbin/agetty -w 9600 ttyS0

      This will allow you to log in to the serial port. If you happen
      to prefer mgetty over agetty (and I'm not aware of any compelling
      reason to choose one over the other) you can instead use the
      following line.

	S0:2345:respawn:/sbin/mgetty -r -s 9600 /dev/ttyS0 vt100

   5. stty settings

      Delete the file /etc/ This file is where SysVinit records
      tty settings. Since you are changing from the graphics console to
      the serial port, you want a new set of settings for this terminal.

   6. security

      Modify the /etc/securetty file so that root can log in on the serial
      port.  For example, append a line containing "ttyS0" to the file.

The above instructions are what we use here.  I recommend lilo
for clusters.  If you use grub, you need to modify steps 2 and 3 as

Jim Wright, Senior Engineer
Tel: 415-358-2609   Fax: 415-358-2646   Toll Free: 888-PENGUIN

More information about the Beowulf mailing list