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

Tip

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.