Linux Serial Console

Linux support for a serial console is a very useful feature. It allows running a Linux box in a headless configuration without a monitor or keyboard. This is very common in server rooms where there are racks of servers.

It also can come in handy at home. Since I have two computers and only one monitor, it really helps. My main computer runs Windows 2000 and my lesser computer runs Linux. Normally, the Linux computer is accessed completely through the network. But every one in a while, it needs administration help. Then, a serial console comes in handy. Only in true emergencies or when reinstalling the operating system do I need to connect a monitor and keyboard.

I use GRUB as a boot loader. GRUB supports sending its messages to the serial console. The following lines should be added to the top of the /boot/grub/grub.conf file.

serial --unit=0 --speed=9600
terminal --timeout=10 serial console

The following parameters need to be passed to each instance of the linux kernel. They should be added to the kernel line. It would be helpful if GRUB supported variable substitution so that the parameters only needed to be defined in one place.

console=tty0 console=ttyS0,9600

Linux needs to be told to listen for logins on the serial port. This is done by adding the following line to /etc/inittab. The 115200,9600 part indicates it should start at 115200 and then downgrade to 9600 if it receives junk indicating a speed mismatch.

s0:2345:respawn:/sbin/agetty ttyS0 115200,9600 linux

To connect another computer to the serial port, you need a null modem cable. Or a null modem adapter and regular serial.

On Windows, the excellent open source PuTTY now supports serial ports.

It is also possible to connect a Palm handheld to a serial port using a serial HotSync cable. Unluckily, the newer Palms use USB HotSync cables instead of serial cables. It is possible to buy serial HotSync cable for most models but I haven't yet tried it. It is also possible to get IrDA to serial adapters to communicate through the Palm's IR port. Use a terminal application like ptelnet on the Palm. The usability is poor because of the small screen size and lack of keyboard but you can't beat the portability.