Remote Serial Console HOWTO
Prev | Chapter 4. Configure the boot loader | Next

# 4.3. Configure the SYSLINUX boot loader

SYSLINUX is a boot loader that is installed on a MS-DOS floppy disk. As directed by it's configuration file `\SYSLINUX.CFG` it will load one of the files from the floppy disk as a Linux kernel.

SYSLINUX presents a simple text interface that can be used to select between canned configurations defined in the configuration file and can be used to add parameters to the kernel.

ISOLINUX and PXELINUX are variants of SYSLINUX for CD-ROMs and Intel's Preboot Execution Environment.

SYSLINUX supports a variety of serial port speeds, but it only supports eight data bits, no parity and one stop bit. SYSLINUX supports the serial ports `COM1:` through to `COM4:`, as with most boot loaders these are written as port `0` through to port `3`.

For SYSLINUX to support a serial console add a new first line to `\SYSLINUX.CFG`:

Figure 4-11. Syntax of SYSLINUX serial command, in EBNF

`serial` `<space>` `<serial_port>` [ `<space>` `<speed>` [ `<space>` `<syslinux_flow_control>` ] ]

The variables are the same as used by syntax descriptions in Figure 2-7 and Figure 4-2 plus those in Figure 4-12.

Figure 4-12. SYSLINUX serial EBNF variables

`<space>` ::= ‘`` ’
`<syslinux_flow_control>` ::= `<hex_digits>`
`<hex_digits>` ::= `0x``<hex_digit>``<hex_digit>``<hex_digit>`
`<hex_digit>` ::= `0` | `1` | … | `9` | `a` | `b` | … | `f`

The `<syslinux_flow_control>` variable controlling the RS-232 status and flow control signals is optional. If your null-modem cable does not present any status or handshaking signals then do not use it. The value of `<syslinux_flow_control>` is calculated by adding the hexadecimal values for the desired flow control behaviours listed in Table 4-1.

The behaviours for a correctly-wired null-modem cable or a correctly configured modem are marked "Required for full RS-232 compliance" in the table. The sum of these values is `0xab3`.

Table 4-1. SYSLINUX flow control bitmap

Flow control behaviour | Hex value | Required for full RS-232 compliance?
--- | --- | ---
Assert DTR | 0x001 | Yes
Assert RTS | 0x002 | Yes
Wait for CTS assertion | 0x010 | Yes
Wait for DSR assertion | 0x020 | Yes
Wait for RI assertion | 0x040 | No
Wait for DCD assertion | 0x080 | Yes
Ignore input unless CTS asserted | 0x100 | No
Ignore input unless DSR asserted | 0x200 | Yes
Ignore input unless RI asserted | 0x400 | No
Ignore input unless DCD asserted | 0x800 | Yes

Our preferred configuration of 9600bps, port `0`, full RS-232 status signals and CTS/RTS flow control is written as:

    serial 0 9600 0xab3

| When using this configuration SYSLINUX will not display anything and will not accept any typed character until the RS-232 status signals show a connected modem call (or a connected terminal if you are using a null-modem cable).

If you have a null modem cable with no RS-232 status signals and no flow control then use:

    serial 0 9600

Remember that the serial command must be the first line in `\SYSLINUX.CFG`.

Prev | Home | Next
Configure the GRUB boot loader | Up | Configure Linux kernel