Remote Serial Console

Serial console access will enable you to boot in single user mode to perform maintenance, check whether your server is hung if it isn’t pingable, or adjust your BIOS settings

Connecting to the serial console

Assuming you’ve been through the initial setup described below, you can connect to your console over SSH at console.scl.iocoop.org, using the username given in the post-install setup below. For example if your username was jdoe you would run ssh jdoe@console.scl.iocoop.org

On login, you’ll be dropped into a conserver session. The interface is documented here, or you can view online docs by entering ^E, c and ? sequentially. Disconnect from your session with ^E c . (also sequentially). The console server logs recent activity from the port, even when you’re not connected.

Initial Setup

Configure your server with a serial console – this should be done before racking in if at all possible, since it’s much harder once you can’t physically touch the thing. The exact procedure varies with the machine, BIOS variant and OS. The instructions below are somewhat PC/Linux centric.

Physical connection

Our ACS32/Cyclades servers connect via cat-5 cables with RJ45 ends. We have adapters on hand in the colo to hook these up to typical PC DB9 male serial ports (the most common kind). For anything else you’ll need to supply your own adapters, either to DB9 male or RJ45 female with the following pinout:

Pin Connection
1 RTS
2 DTR
3 TX
4 GND
5 CTS
6 RX
7 DCD
8 DSR

BIOS (optional)

A modest fraction of PC BIOS types can export the BIOS interface over a serial port during the early boot stage (and you may be able to reflash your BIOS with coreboot if your original BIOS doesn’t). This procedure varies so widely there’s nothing to document here, other than to be sure that whatever baud rate and serial settings you choose should be consistent between OS, bootloader and BIOS.

GRUB bootloader

The GRUB and GRUB2 bootloaders can support both VGA and serial output simultaneously. In your GRUB config (e.g. /etc/grub/menu.lst), include the following:

# enable the serial console
serial --unit=0 --speed=115200
terminal --timeout=10 serial console

During a normal boot, GRUB will display messages on both the VGA and serial outputs requesting a keypress; if it gets one from either, that becomes the console for that session and the normal GRUB menus are shown. If there’s no response, it proceed with automatic boot.

Linux kernel

Linux can support simultaneous VGA and serial console output if given multiple console= arguments at boot time. For example, here’s a sample set of boot args:

title           Debian GNU/Linux
root            (hd0,1)
kernel          /boot/vmlinuz root=/dev/disk/by-label/root console=tty0 console=ttyS0,115200
initrd          /boot/initrd

Post-install setup

Open an support ticket requesting access to the console server. In the subject line, include the phrase “serial console”. We will need the following information from you:

  • Your server name
  • Serial port settings: baud rate, data bits, parity, stop bits (e.g. 115200 8N1).
  • Hostname we should expect to see in the login prompt
  • Your preferred UNIX username
  • One or more SSH2 public keys

There are no password-based logins on the console server. If you lose or invalidate your SSH public keys, you should file a ticket requesting an update.

If you co-admin your server with other people, request multiple accounts (it’s fine to do this in one RT ticket), giving the preferred usernames and which SSH keys go with each.

Last updated: 2014-11-07 11:56:24 by ops