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



Assert RTS



Wait for CTS assertion



Wait for DSR assertion



Wait for RI assertion



Wait for DCD assertion



Ignore input unless CTS asserted



Ignore input unless DSR asserted



Ignore input unless RI asserted



Ignore input unless DCD asserted



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.