Linux configure or enable serial console by editing GRUB boot loader

por | 10 febrero, 2008

Q. How do enable console redirection in the BIOS Console redirection? It will allow me to see my remote dedicate server boot information and any diagnostic information that is normally printed to the screen. I’ve already enabled serial ports in my server BIOS and wired them up. Now how do I configure and access Linux over serial console? A. The serial console is helpful in troubleshooting difficult problems. This is useful to remotely administrate the Linux server even if the network has failed or crashed.

In order to use serial console you need to configure GRUB boot loader and make changes to /etc/inittab file. Following instructions are tested on :
[1] Cent OS 4/5
[2] Redhat Enterprise Linux (RHEL) 3/4/5
[3] Debian 3/4

Step # 1: Serial redirection in the GRUB

Open grub configuration file /boot/grub/menu.lst (Debian / Ubuntu Linux) or /boot/grub/grub.conf (Redhat/CentOS/Fedora Core Linux).
# vi /boot/grub/grub.conf
Append the following lines below “hiddenmenu” option:

serial --unit=1 --speed=19200

terminal --timeout=8 console serial
  • The first line tells GRUB to use the first serial port at a baud rate of 19200
  • The second line gives the user 9 seconds to decide where GRUB should output it’s information.
  • Please adjust port number and speed as per your setup.

Next make sure splashimage options is disabled as graphics can’t be displayed across the serial port. Remove splashimage line or just comment it out by prefixing # symbol:
#splashimage=(hd0,0)/grub/splash.xpm.gz

Step # 2: Enabling serial output from the Linux kernel

Find the kernel line (grub config file) which corresponds to your currently running kernel. Add the following at the end of that line – console=tty0 console=ttyS0,9600n8:

title Red Hat Enterprise Linux ES (2.6.9-42.0.10.ELsmp)

        root (hd0,0)

        kernel /vmlinuz-2.6.9-42.0.10.ELsmp ro root=LABEL=/ console=tty0 console=ttyS1,19200n8

        initrd /initrd-2.6.9-42.0.10.ELsmp.img

Save and close the file.

When multiple console= options are listed, the Linux kernel will output (tty0, ttyS1) to both when possible. Now the kernel errors get logged with on both the normal VGA console and on the serial console.

Step #3: Logging in via the serial console

Finally open /etc/inittab file
# vi /etc/inittab
Append the following line:
1:23:respawn:/sbin/agetty -h -L ttyS1 19200 vt100
The above line allows you to login via the serial device. You are attaching agetty process to serial consol. Many Linux distro do have above line.

Step # 4: Test your setup

Now reboot your server. Next you need to connect to the serial console using IPMI Java client or IPMIView Linux client. Next you should see the following message on screen:
Press any key to continue.
Now hit any key to launch GRUB on the serial console. Please note that if you do nothing, it will open server’s VGA console.