A friend of mine was getting rid of a really old laptop (ten year old Celeron 333 with no working hard drive or ethernet port), so I picked it up, figuring it would work as a dedicated console for my CentOS server.  Here are the steps I took to hook it up through a serial interface to my CentOS server.

First, you need to setup the serial console on the CentOS box (basically the same as RHEL or RedHat). There’s a nice tutorial online, the gist of which is:

1. Check serial ports:

[root@navi root]# dmesg | grep tty
ttyS0 at 0×03f8 (irq = 4) is a 16550A
ttyS1 at 0×02f8 (irq = 3) is a 16550A

[root@navi root]# setserial -g /dev/ttyS[01]
/dev/ttyS0, UART: 16550A, Port: 0×03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0×02f8, IRQ: 3

2. Configure agetty in /etc/inittab:

# Run agetty on COM1/ttyS0 and COM2/ttyS1
s0:2345:respawn:/sbin/agetty -L -f /etc/issueserial 9600 ttyS0 vt100
s1:2345:respawn:/sbin/agetty -L -f /etc/issueserial 38400 ttyS1 vt100
#s1:2345:respawn:/sbin/agetty -L -i 38400 ttyS1 vt100

3. Create the /etc/issueserial file to be used by agetty (more info):

Welcome to \n.\o
Connected on \l at \b bps

4. Reload inittab with the following command:

[root@navi root]# init q

5. Check to make sure agetty is running. You should see two agetty processes running, one on ttyS0 and one on ttyS1, with the command:

[root@navi root]# ps -ef | grep agetty

6. Finally, if you want to allow root to login through the serial console, you need to modify /etc/securetty to include the serial devices after the “console” line:

ttyS0
ttyS1

That takes care of setting up the CentOS server to allow serial console logins. Now we need to setup the laptop.

The laptop was given to me by a friend, so I can’t really complain about its specs:

  • 333 MHz Celeron
  • 18-bit color 800×600 screen (important to note later on)
  • NM2160, 2 MB video card
  • 96 MB RAM
  • No hard drive (it used to have a 4GB HDD, but that died, and I have no replacement)

Given these specs, I decided to use DSL (Damn Small Linux), since it can run off a CD and is very lightweight. Because the native screen specs are a bit unconventional, you can’t just simply boot up DSL, otherwise you’ll get a faded green screen with blurry, illegible text. Instead, at the boot screen you need to set the correct video mode with:

> dsl 2 vga=788

Once you’re at the shell prompt, run microcom to connect to the server (more info):

root@tty1[/]# microcom -D/dev/ttyS0

If all is well, you should get a login prompt for your server. We’re now able to use a ten year old laptop with no hard drive or ethernet port to manage a CentOS server.