- Add an <example> and use a calloutlist for the /etc/ttys section

instead of creating a new subsection for each field.  The output is
  much more succinct and legible.
- Add a note about FreeBSD 5.0 and devfs that obviates the 'Making
  Device Special Files' section.
- Remove reference to a book that we don't have any bibliographical
  information for and that is a bit tangential to the subject at hand
  (RS-232 Bible).
- Add missing words to make complete sentences.
- Simplify discussion of null-modem and "straight" serial cables.
- Consistently use a replaceable 'N' for the last character of
  terminal devices instead of interspersing ? and X.
- Remove duplicate 'See the sio(4) manual page for more information.'
  lines.  One of these is quite sufficient per section.
- Remove more duplicate information that is unnecessary since this
  chapter has been reorganized.
- Enclose a hint in the <tip> tag.

This chapter still needs work.
This commit is contained in:
Murray Stokely 2001-08-08 06:42:18 +00:00
parent e7f5444e88
commit 2a14ff14f4
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=10242

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml,v 1.36 2001/08/06 12:36:16 murray Exp $
$FreeBSD: doc/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml,v 1.37 2001/08/06 21:25:28 chern Exp $
-->
<chapter id="serialcomms">
@ -85,11 +85,6 @@
</varlistentry>
</variablelist>
<!-- XXX Use a formal citation and bibliography entry -->
<para>If you need more information about these terms and data
communications in general, <emphasis>The RS-232
Bible</emphasis> is a good reference.</para>
<para>When talking about communications data rates, the authors
do not use the term <quote>baud</quote>. Baud refers to the
number of electrical state transitions that may be made in a
@ -102,7 +97,7 @@
<title>Cables and Ports</title>
<para>To connect a modem or terminal to your FreeBSD system, you
a serial port on your computer and the proper cable to connect
will need a serial port on your computer and the proper cable to connect
to your serial device. If you are already familiar with your
hardware and the cable it requires, you can safely skip this
section.</para>
@ -110,46 +105,25 @@
<sect3 id="term-cables">
<title>Cables</title>
<para>Because terminals use serial ports, you need to use
serial&mdash;also known as RS-232C&mdash;cables to connect the
terminal to the FreeBSD system.</para>
<para>There are several different kinds of serial cables. The
two most common types for our purposes are null-modem cables
and standard ("straight") RS-232 cables. The documentation
for your hardware should describe the type of cable
required.</para>
<para>There are a couple of kinds of serial cables. Which one
you'll use depends on the terminal you want to connect:</para>
<indexterm><primary>null-modem cable</primary></indexterm>
<itemizedlist>
<listitem>
<para>If you are connecting a personal computer to act as a
terminal, use a <link linkend="term-null">null-modem</link>
cable. A null-modem cable connects two computers or terminals
together.</para>
</listitem>
<listitem>
<para>If you have an actual terminal, your best source of
information on what cable to use is the documentation that
accompanied the terminal. If you do not have the documentation,
then try a <link linkend="term-null">null-modem</link> cable.
If that does not work, then try a <link
linkend="term-std">standard</link> cable.</para>
</listitem>
</itemizedlist>
<para>Also, the serial port on <emphasis>both</emphasis> the terminal
and your FreeBSD system must have connectors that will fit the cable
you are using.</para>
<sect4 id="term-null">
<sect4 id="term-cables-null">
<title>Null-modem cables</title>
<indexterm>
<primary>null-modem cable</primary>
</indexterm>
<para>A null-modem cable passes some signals straight through, like
<quote>signal ground,</quote> but switches other signals. For
example, the <quote>send data</quote> pin on one end goes to the
<quote>receive data</quote> pin on the other end.</para>
<para>If you like making your own cables, here is a table showing a
recommended way to construct a null-modem cable for use with
<para>If you like making your own cables, you can construct
a null-modem cable for use with
terminals. This table shows the RS-232C signal names and the pin
numbers on a DB-25 connector.</para>
@ -240,10 +214,10 @@
</note>
</sect4>
<sect4 id="term-std">
<sect4 id="term-cables-std">
<title>Standard RS-232C Cables</title>
<indexterm><primary>RS-232C cables</primary></indexterm>
<indexterm><primary>RS-232C cables</primary></indexterm>
<para>A standard serial cable passes all the RS-232C signals
straight-through. That is, the <quote>send data</quote> pin on one
end of the cable goes to the <quote>send data</quote> pin on the
@ -288,8 +262,8 @@
<itemizedlist>
<listitem>
<para>Call-in ports are named
<filename>/dev/ttyd<replaceable>X</replaceable></filename>
where <replaceable>X</replaceable> is the port number,
<filename>/dev/ttyd<replaceable>N</replaceable></filename>
where <replaceable>N</replaceable> is the port number,
starting from zero. Generally, you use the call-in port for
terminals. Call-in ports require that the serial line assert
the data carrier detect (DCD) signal to work.</para>
@ -297,7 +271,7 @@
<listitem>
<para>Call-out ports are named
<filename>/dev/cuaa<replaceable>X</replaceable></filename>.
<filename>/dev/cuaa<replaceable>N</replaceable></filename>.
You usually do not use the call-out port for terminals, just
for modems. You may use the call-out port if the serial cable
or the terminal does not support the carrier detect
@ -305,19 +279,13 @@
</listitem>
</itemizedlist>
<para>See the &man.sio.4; manual page for more information.</para>
<para>If you have connected a terminal to the first serial port
(<devicename>COM1</devicename> in DOS parlance), then you want to
(<devicename>COM1</devicename> in MS-DOS parlance), then you want to
use <filename>/dev/ttyd0</filename> to refer to the terminal. If
it is on the second serial port (also known as
<devicename>COM2</devicename>), it is
<filename>/dev/ttyd1</filename>, and so forth.</para>
<para>Note that you may have to configure your kernel to support
each serial port, especially if you have a multiport serial card.
See <link linkend="kernelconfig">Configuring the FreeBSD
Kernel</link> for more information.</para>
</sect4>
</sect3>
</sect2>
@ -332,8 +300,7 @@
<devicename>COM3:</devicename>, and
<devicename>COM4:</devicename>. FreeBSD currently supports
<quote>dumb</quote> multiport serial interface cards, such as
the BocaBoard 1008 and 2016 (please see the &man.sio.4 manual
page for more information on these cards), as well as more
the BocaBoard 1008 and 2016, as well as more
intelligent multi-port cards such as those made by Digiboard
and Stallion Technologies. The default kernel only looks for
the standard COM ports, though.</para>
@ -342,10 +309,13 @@
for messages while the kernel is booting, or use the
<command>/sbin/dmesg</command> command to replay the kernel's boot
messages. In particular, look for messages that start with the
characters <literal>sio</literal>. Hint: to view just the messages
that have the word <literal>sio</literal>, use the command:</para>
characters <literal>sio</literal>.</para>
<tip><para>To view just the messages that have the word
<literal>sio</literal>, use the command:</para>
<screen>&prompt.root; <userinput>/sbin/dmesg | grep 'sio'</userinput></screen>
</tip>
<para>For example, on a system with four serial ports, these are the
serial-port specific kernel boot messages:</para>
@ -361,8 +331,9 @@ sio3: type 16550A</screen>
<para>If your kernel does not recognize all of your serial
ports, you will probably need to configure a custom FreeBSD
kernel for your system. For more information about this
please see <xref linkend="kernelconfig">.</para>
kernel for your system. For detailed information on
configuring your kernel, please see <xref
linkend="kernelconfig">.</para>
<para>The relevant device lines for your kernel configuration
file would look like this:</para>
@ -403,14 +374,14 @@ device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr</programlisting>
special files</quote>, which are located in the
<filename>/dev</filename> directory. The <devicename>sio</devicename>
devices are accessed through the
<filename>/dev/ttyd<replaceable>?</replaceable></filename> (dial-in)
and <filename>/dev/cuaa<replaceable>?</replaceable></filename>
<filename>/dev/ttyd<replaceable>N</replaceable></filename> (dial-in)
and <filename>/dev/cuaa<replaceable>N</replaceable></filename>
(call-out) devices. FreeBSD also provides initialization devices
(<filename>/dev/ttyid<replaceable>?</replaceable></filename> and
<filename>/dev/cuai0<replaceable>?</replaceable></filename>) and
(<filename>/dev/ttyid<replaceable>N</replaceable></filename> and
<filename>/dev/cuai0<replaceable>N</replaceable></filename>) and
locking devices
(<filename>/dev/ttyld<replaceable>?</replaceable></filename> and
<filename>/dev/cual0<replaceable>?</replaceable></filename>). The
(<filename>/dev/ttyld<replaceable>N</replaceable></filename> and
<filename>/dev/cual0<replaceable>N</replaceable></filename>). The
initialization devices are used to initialize communications port
parameters each time a port is opened, such as
<literal>crtscts</literal> for modems which use
@ -424,6 +395,12 @@ device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr</programlisting>
<sect3>
<title>Making Device Special Files</title>
<note><para>FreeBSD 5.0 includes the <literal>devfs</literal>
filesystem which automatically creates device nodes as
needed. If you are running a version of FreeBSD with
<literal>devfs</literal> enabled then you can safely skip
this section.</para></note>
<para>A shell script called <command>MAKEDEV</command> in the
<filename>/dev</filename> directory manages the device special
files. To use <command>MAKEDEV</command> to make dial-up device
@ -434,14 +411,14 @@ device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr</programlisting>
use <command>MAKEDEV ttyd1</command>.</para>
<para><command>MAKEDEV</command> not only creates the
<devicename>/dev/ttyd<replaceable>?</replaceable></devicename> device
<devicename>/dev/ttyd<replaceable>N</replaceable></devicename> device
special files, but also creates the
<devicename>/dev/cuaa<replaceable>?</replaceable></devicename>,
<devicename>/dev/cuaia<replaceable>?</replaceable></devicename>,
<devicename>/dev/cuala<replaceable>?</replaceable></devicename>,
<devicename>/dev/ttyld<replaceable>?</replaceable></devicename>,
<devicename>/dev/cuaa<replaceable>N</replaceable></devicename>,
<devicename>/dev/cuaia<replaceable>N</replaceable></devicename>,
<devicename>/dev/cuala<replaceable>N</replaceable></devicename>,
<devicename>/dev/ttyld<replaceable>N</replaceable></devicename>,
and
<devicename>/dev/ttyid<replaceable>?</replaceable></devicename>
<devicename>/dev/ttyid<replaceable>N</replaceable></devicename>
nodes.</para>
<para>After making new device special files, be sure to check the
@ -469,8 +446,8 @@ crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1</screen>
<indexterm><primary><devicename>ttyd</devicename></primary></indexterm>
<indexterm><primary><devicename>cuaa</devicename></primary></indexterm>
<para>The <devicename>ttyd<replaceable>X</replaceable></devicename> (or
<devicename>cuaa<replaceable>X</replaceable></devicename>) device is the
<para>The <devicename>ttyd<replaceable>N</replaceable></devicename> (or
<devicename>cuaa<replaceable>N</replaceable></devicename>) device is the
regular device you will want to open for your applications. When a
process opens the device, it will have a default set of terminal I/O
settings. You can see these settings with the command</para>
@ -651,7 +628,7 @@ crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1</screen>
<procedure>
<step>
<para>Add an line to <filename>/etc/ttys</filename> for the entry in
<para>Add a line to <filename>/etc/ttys</filename> for the entry in
the <filename>/dev</filename> directory for the serial port if it
is not already there.</para>
</step>
@ -688,168 +665,138 @@ crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1</screen>
not explain how to do so; you are encouraged to see the
&man.gettytab.5; and the &man.getty.8; manual pages for more
information.</para>
<para>To help illustrate this procedure, we will use a running
example throughout this section. In our example, we will
connect two terminals to the system: a Wyse-50 and a old 286
IBM PC running <application>Procomm</application> terminal
software emulating a VT-100 terminal. We connect the Wyse to
the second serial port and the 286 to the sixth serial port (a
port on a multiport serial card).</para>
<sect3 id="term-etcttys">
<title>Adding an Entry to <filename>/etc/ttys</filename></title>
<para>First, you need to add an entry to the
<filename>/etc/ttys</filename> file, unless one is already
there.</para>
<para>The <filename>/etc/ttys</filename> file lists all of the ports
on your FreeBSD system where you want to allow logins. For example,
the first virtual console <filename>ttyv0</filename> has an entry in
this file. You can log in on the console using this entry. This
file contains entries for the other virtual consoles, serial ports,
file also contains entries for the other virtual consoles, serial ports,
and pseudo-ttys. For a hardwired terminal, just list the serial
port's <filename>/dev</filename> entry without the
<filename>/dev</filename> part.</para>
<para>A default FreeBSD install includes a
<filename>/etc/ttys</filename> file with support for the first
four serial ports: <filename>ttyd0</filename> through
<filename>ttyd3</filename>. If you are attaching a terminal on one
of those ports, you do not need to add another entry.</para>
<para>In our example, we attached a Wyse-50 to the second serial port,
<filename>ttyd1</filename>, which is already in the file. We need
to add an entry for the 286 PC connected to the sixth serial port.
Here is an excerpt of the <filename>/etc/ttys</filename> file after
we add the new entry:</para>
<filename>ttyd3</filename>. If you are attaching a terminal
to one of those ports, you do not need to add another entry.</para>
<programlisting>ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd5</programlisting>
</sect3>
<example id="ex-etc-ttys">
<title>Adding Terminal Entries to
<filename>/etc/ttys</filename></title>
<para>Suppose we would like to connect two terminals to the
system: a Wyse-50 and an old 286 IBM PC running
<application>Procomm</application> terminal software
emulating a VT-100 terminal. We connect the Wyse to the
second serial port and the 286 to the sixth serial port (a
port on a multiport serial card). The corresponding
entries in the <filename>/etc/ttys</filename> file would
look like this:</para>
<programlisting>ttyd1<co
id="co-ttys-line1col1"> "/usr/libexec/getty std.38400"<co
id="co-ttys-line1col2"> wy50<co
id="co-ttys-line1col3"> on<co
id="co-ttys-line1col4"> insecure<co
id="co-ttys-line1col5">
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
</programlisting>
<sect3 id="term-getty">
<title>Specifying the <replaceable>getty</replaceable> Type</title>
<calloutlist>
<callout arearefs="co-ttys-line1col1">
<para>The first field normally specifies the name of
the terminal special file as it is found in
<filename>/dev</filename>.</para>
</callout>
<callout arearefs="co-ttys-line1col2">
<para>Next, we need to specify what program will be run to handle the
logins on a terminal. For FreeBSD, the standard program to do that
is <filename>/usr/libexec/getty</filename>. It is what provides the
<prompt>login:</prompt> prompt.</para>
<para>The second field is the command to execute for
this line, which is usually &man.getty.8;.
<command>getty</command> initializes and opens the
line, sets the speed, prompts for a user name and then
executes the &man.login.1; program.</para>
<para>The <command>getty</command> program accepts one
(optional) parameter on its command line, the
<replaceable>getty</replaceable> type. A
<replaceable>getty</replaceable> type tells about
characteristics on the terminal line, like bps rate
and parity. The <command>getty</command> program reads
these characteristics from the file
<filename>/etc/gettytab</filename>.</para>
<para>The file <filename>/etc/gettytab</filename>
contains lots of entries for terminal lines both old
and new. In almost all cases, the entries that start
with the text <literal>std</literal> will work for
hardwired terminals. These entries ignore parity.
There is a <literal>std</literal> entry for each bps
rate from 110 to 115200. Of course, you can add your
own entries to this file. The &man.gettytab.5; manual
page provides more information.</para>
<para>When setting the <replaceable>getty</replaceable>
type in the <filename>/etc/ttys</filename> file, make
sure that the communications settings on the terminal
match.</para>
<para>The program <command>getty</command> takes one (optional)
parameter on its command line, the <replaceable>getty</replaceable>
type. A <replaceable>getty</replaceable> type tells about
characteristics on the terminal line, like bps rate and parity. The
<command>getty</command> program reads these characteristics from
the file <filename>/etc/gettytab</filename>.</para>
<para>The file <filename>/etc/gettytab</filename> contains lots of
entries for terminal lines both old and new. In almost all cases,
the entries that start with the text <literal>std</literal> will
work for hardwired terminals. These entries ignore parity. There is
a <literal>std</literal> entry for each bps rate from 110 to 115200.
Of course, you can add your own entries to this file. The
&man.gettytab.5; manual page provides more information.</para>
<para>When setting the <replaceable>getty</replaceable> type in the
<filename>/etc/ttys</filename> file, make sure that the
communications settings on the terminal match.</para>
<para>For our example, the Wyse-50 uses no parity and connects at
38400 bps. The 286 PC uses no parity and connects at 19200 bps.
Here is the <filename>/etc/ttys</filename> file so far (showing just
the two terminals in which we are interested):</para>
<para>For our example, the Wyse-50 uses no parity and
connects at 38400 bps. The 286 PC uses no parity and
connects at 19200 bps.</para>
<programlisting>ttyd1 "/usr/libexec/getty std.38400" unknown off secure
ttyd5 "/usr/libexec/getty std.19200"</programlisting>
</callout>
<para>Note that the second field&mdash;where we specify what program
to run&mdash;appears in quotes. This is important, otherwise the
type argument to <command>getty</command> might be interpreted as
the next field.</para>
</sect3>
<sect3 id="term-deftermtype">
<title>Specifying the Default Terminal Type</title>
<callout arearefs="co-ttys-line1col3">
<para>The third field in the <filename>/etc/ttys</filename> file lists
the default terminal type for the port. For dial-up ports, you
typically put <literal>unknown</literal> or
<literal>dialup</literal> in this field because users may dial up
with practically any kind of terminal or software. For hardwired
terminals, the terminal type does not change, so you can put a real
terminal type in this field.</para>
<para>The third field is the type of terminal usually
connected to that tty line. For dial-up ports,
<literal>unknown</literal> or
<literal>dialup</literal> is typically used in this
field since users may dial up with practically any
type of terminal or software. For hardwired
terminals, the terminal type does not change, so you
can put a real terminal type from the &man.termcap.5;
database file in this field.</para>
<para>Users will usually use the <command>tset</command> program in
their <filename>.login</filename> or <filename>.profile</filename>
files to check the terminal type and prompt for one if necessary.
By setting a terminal type in the <filename>/etc/ttys</filename>
file, users can forego such prompting.</para>
<para>For our example, the Wyse-50 uses the real
terminal type while the 286 PC running
<application>Procomm</application> will be set to
emulate at VT-100. </para>
<indexterm><primary>termcap</primary></indexterm>
<para>To find out what terminal types FreeBSD supports, see the
file <filename>/usr/share/misc/termcap</filename>. It lists
about 600 terminal types. You can add more if you wish. See
the &man.termcap.5; manual page for information.</para>
</callout>
<para>In our example, the Wyse-50 is a Wyse-50 type of terminal
(although it can emulate others, we will leave it in Wyse-50 mode).
The 286 PC is running Procomm which will be set to emulate a VT-100.
Here are the pertinent yet unfinished entries from the
<filename>/etc/ttys</filename> file:</para>
<callout arearefs="co-ttys-line1col4">
<para>The fourth field specifies if the port should be
enabled. Putting <literal>on</literal> here will have
the <command>init</command> process start the program
in the second field, <command>getty</command>. If you
put <literal>off</literal> in this field, there will
be no <command>getty</command>, and hence no logins on
the port.</para>
</callout>
<programlisting>ttyd1 "/usr/libexec/getty std.38400" wy50 off secure
ttyd5 "/usr/libexec/getty std.19200" vt100</programlisting>
</sect3>
<sect3 id="term-enable">
<title>Enabling the Port</title>
<callout arearefs="co-ttys-line1col5">
<para>The final field is used to specify whether the
port is secure. Marking a port as secure means that
you trust it enough to allow the
<username>root</username> account (or any account with
a user ID of 0) to login from that port. Insecure
ports do not allow <username>root</username> logins.
On an insecure port, users must login from
unprivileged accounts and then use &man.su.1; or a
similar mechanism to gain superuser privileges.</para>
<para>The fourth field in <filename>/etc/ttys</filename>
specifies if the port should be enabled. Putting
<literal>on</literal> here will have the <command>init</command>
process start the program in the second field,
<command>getty</command>, which will prompt for a login. If you put
<literal>off</literal> in the fourth field, there will be no
<command>getty</command>, and hence no logins on the port.</para>
<para>So, naturally, you want an <literal>on</literal> in this field.
Here again is the <filename>/etc/ttys</filename> file. We have
turned each port <literal>on</literal>.</para>
<programlisting>ttyd1 "/usr/libexec/getty std.38400" wy50 on secure
ttyd5 "/usr/libexec/getty std.19200" vt100 on</programlisting>
</sect3>
<sect3 id="term-secure">
<title>Specifying Secure Ports</title>
<para>We have arrived at the last field (well, almost: there is an
optional <literal>window</literal> specifier, but we will ignore
that). The last field tells whether the port is secure.</para>
<para>Marking a port as secure means that you trust it enough
to allow the the <username>root</username> account (or any
account with a user ID of 0) to login from that port.
Insecure ports do not allow <username>root</username>
logins. On an insecure port, users must login from
unprivileged accounts and then use &man.su.1; or similar to
gain superuser privileges.</para>
<para>It is highly recommended that you use
<quote>insecure</quote> even for terminals that are behind
locked doors. It is quite easy to login and use &man.su.1;
if you need superuser privileges.</para>
<para>Here finally are the completed entries in the
<filename>/etc/ttys</filename> file, with comments added to describe
where the terminals are:</para>
<programlisting>ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure # Kitchen
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure # Guest bathroom</programlisting>
</sect3>
<para>It is highly recommended that you use "insecure"
even for terminals that are behind locked doors. It
is quite easy to login and use <command>su</command>
if you need superuser privileges.</para>
</callout>
</calloutlist>
</example>
<sect3 id="term-hup">
<title>Force <command>init</command> to Reread
@ -871,7 +818,7 @@ ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure # Guest bathroom</pro
</sect2>
<sect2 id="term-debug">
<title>Debugging your connection</title>
<title>Troubleshooting your connection</title>
<para>Even with the most meticulous attention to detail, something could
still go wrong while setting up a terminal. Here is a list of
@ -1246,7 +1193,7 @@ vq|VH57600|Very High Speed Modem at 57600,8-bit:\
</indexterm>
<para>Configuration of the <filename>/etc/ttys</filename> file
was covered in the last section for configuring terminals.
was covered in <xref linkend="ex-etc-ttys">.
Configuration for modems is similar but we must pass a
different argument to <command>getty</command> and specify a
different terminal type. The general format for both
@ -1538,7 +1485,7 @@ AT&amp;B2&amp;W</programlisting>
<para>If you do not see any <command>getty</command> processes waiting
to open the desired
<filename>ttyd<replaceable>?</replaceable></filename> port,
<filename>ttyd<replaceable>N</replaceable></filename> port,
double-check your entries in <filename>/etc/ttys</filename> to see
if there are any mistakes there. Also, check the log file
<filename>/var/log/messages</filename> to see if there are any log
@ -1546,7 +1493,7 @@ AT&amp;B2&amp;W</programlisting>
regarding any problems. If there are any messages, triple-check the
configuration files <filename>/etc/ttys</filename> and
<filename>/etc/gettytab</filename>, as well as the appropriate
device special files <filename>/dev/ttyd?</filename>, for any
device special files <filename>/dev/ttydN</filename>, for any
mistakes, missing entries, or missing device special files.</para>
</sect3>
@ -2043,7 +1990,7 @@ raisechar=^^</programlisting>
another higher priority console), regardless of the
<option>-h</option> option discussed below. This flag
replaces the <literal>COMCONSOLE</literal> option in FreeBSD
versions 2.X. The flag <literal>0x20</literal> must be used
versions 2.<replaceable>X</replaceable>. The flag <literal>0x20</literal> must be used
together with the <option>0x10</option> flag.</para>
</listitem>
</varlistentry>