mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 08:43:31 +00:00
Documentation/devices.rst: convert it to ReST markup
- use a quote block for the big device major/minor list; - use tables for the other device tables; - fix the chapter/section/subsection markups; - use ``foo`` for monotonic; - use .. attention:: for the attention note to developers; - use cross-references where needed; - cleanup whitespaces; - add it to the user's book. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
953ab835a9
commit
d9f92f9f9d
1 changed files with 558 additions and 532 deletions
|
@ -1,14 +1,16 @@
|
|||
|
||||
LINUX ALLOCATED DEVICES (4.x+ version)
|
||||
Linux allocated devices (4.x+ version)
|
||||
======================================
|
||||
|
||||
This list is the Linux Device List, the official registry of allocated
|
||||
device numbers and /dev directory nodes for the Linux operating
|
||||
device numbers and ``/dev`` directory nodes for the Linux operating
|
||||
system.
|
||||
|
||||
The LaTeX version of this document is no longer maintained, nor is
|
||||
the document that used to reside at lanana.org. This version in the
|
||||
mainline Linux kernel is the master document. Updates shall be sent
|
||||
as patches to the kernel maintainers (see the SubmittingPatches document).
|
||||
as patches to the kernel maintainers (see the
|
||||
:ref:`Documentation/SubmittingPatches <submittingpatches>` document).
|
||||
Specifically explore the sections titled "CHAR and MISC DRIVERS", and
|
||||
"BLOCK LAYER" in the MAINTAINERS file to find the right maintainers
|
||||
to involve for character and block devices.
|
||||
|
@ -26,12 +28,14 @@ permission of the authors, assuming the authors can be contacted without
|
|||
an unreasonable effort.
|
||||
|
||||
|
||||
**** DEVICE DRIVERS AUTHORS PLEASE READ THIS ****
|
||||
.. attention::
|
||||
|
||||
DEVICE DRIVERS AUTHORS PLEASE READ THIS
|
||||
|
||||
Linux now has extensive support for dynamic allocation of device numbering
|
||||
and can use sysfs and udev (systemd) to handle the naming needs. There are
|
||||
still some exceptions in the serial and boot device area. Before asking
|
||||
for a device number make sure you actually need one.
|
||||
and can use ``sysfs`` and ``udev`` (``systemd``) to handle the naming needs.
|
||||
There are still some exceptions in the serial and boot device area. Before
|
||||
asking for a device number make sure you actually need one.
|
||||
|
||||
To have a major number allocated, or a minor number in situations
|
||||
where that applies (e.g. busmice), please submit a patch and send to
|
||||
|
@ -43,15 +47,16 @@ found to ensure we have all the requisite information to publish your
|
|||
device and avoid conflicts.
|
||||
|
||||
Finally, sometimes we have to play "namespace police." Please don't be
|
||||
offended. We often get submissions for /dev names that would be bound
|
||||
offended. We often get submissions for ``/dev`` names that would be bound
|
||||
to cause conflicts down the road. We are trying to avoid getting in a
|
||||
situation where we would have to suffer an incompatible forward
|
||||
change. Therefore, please consult with us *before* you make your
|
||||
change. Therefore, please consult with us **before** you make your
|
||||
device names and numbers in any way public, at least to the point
|
||||
where it would be at all difficult to get them changed.
|
||||
|
||||
Your cooperation is appreciated.
|
||||
|
||||
::
|
||||
|
||||
0 Unnamed devices (e.g. non-device mounts)
|
||||
0 = reserved as null device number
|
||||
|
@ -3135,7 +3140,9 @@ Your cooperation is appreciated.
|
|||
...
|
||||
255 = /dev/osd255 256th OSD Device
|
||||
|
||||
**** ADDITIONAL /dev DIRECTORY ENTRIES
|
||||
|
||||
Additional ``/dev/`` directory entries
|
||||
--------------------------------------
|
||||
|
||||
This section details additional entries that should or may exist in
|
||||
the /dev directory. It is preferred that symbolic links use the same
|
||||
|
@ -3143,24 +3150,29 @@ form (absolute or relative) as is indicated here. Links are
|
|||
classified as "hard" or "symbolic" depending on the preferred type of
|
||||
link; if possible, the indicated type of link should be used.
|
||||
|
||||
|
||||
Compulsory links
|
||||
++++++++++++++++
|
||||
|
||||
These links should exist on all systems:
|
||||
|
||||
=============== =============== =============== ===============================
|
||||
/dev/fd /proc/self/fd symbolic File descriptors
|
||||
/dev/stdin fd/0 symbolic stdin file descriptor
|
||||
/dev/stdout fd/1 symbolic stdout file descriptor
|
||||
/dev/stderr fd/2 symbolic stderr file descriptor
|
||||
/dev/nfsd socksys symbolic Required by iBCS-2
|
||||
/dev/X0R null symbolic Required by iBCS-2
|
||||
=============== =============== =============== ===============================
|
||||
|
||||
Note: /dev/X0R is <letter X>-<digit 0>-<letter R>.
|
||||
Note: ``/dev/X0R`` is <letter X>-<digit 0>-<letter R>.
|
||||
|
||||
Recommended links
|
||||
+++++++++++++++++
|
||||
|
||||
It is recommended that these links exist on all systems:
|
||||
|
||||
|
||||
=============== =============== =============== ===============================
|
||||
/dev/core /proc/kcore symbolic Backward compatibility
|
||||
/dev/ramdisk ram0 symbolic Backward compatibility
|
||||
/dev/ftape qft0 symbolic Backward compatibility
|
||||
|
@ -3168,14 +3180,17 @@ It is recommended that these links exist on all systems:
|
|||
/dev/radio radio0 symbolic Backward compatibility
|
||||
/dev/i2o* /dev/i2o/* symbolic Backward compatibility
|
||||
/dev/scd? sr? hard Alternate SCSI CD-ROM name
|
||||
=============== =============== =============== ===============================
|
||||
|
||||
Locally defined links
|
||||
+++++++++++++++++++++
|
||||
|
||||
The following links may be established locally to conform to the
|
||||
configuration of the system. This is merely a tabulation of existing
|
||||
practice, and does not constitute a recommendation. However, if they
|
||||
exist, they should have the following uses.
|
||||
|
||||
=============== =============== =============== ===============================
|
||||
/dev/mouse mouse port symbolic Current mouse device
|
||||
/dev/tape tape device symbolic Current tape device
|
||||
/dev/cdrom CD-ROM device symbolic Current CD-ROM device
|
||||
|
@ -3184,38 +3199,46 @@ exist, they should have the following uses.
|
|||
/dev/modem modem port symbolic Current dialout device
|
||||
/dev/root root device symbolic Current root filesystem
|
||||
/dev/swap swap device symbolic Current swap device
|
||||
=============== =============== =============== ===============================
|
||||
|
||||
/dev/modem should not be used for a modem which supports dialin as
|
||||
``/dev/modem`` should not be used for a modem which supports dialin as
|
||||
well as dialout, as it tends to cause lock file problems. If it
|
||||
exists, /dev/modem should point to the appropriate primary TTY device
|
||||
exists, ``/dev/modem`` should point to the appropriate primary TTY device
|
||||
(the use of the alternate callout devices is deprecated).
|
||||
|
||||
For SCSI devices, /dev/tape and /dev/cdrom should point to the
|
||||
``cooked'' devices (/dev/st* and /dev/sr*, respectively), whereas
|
||||
/dev/cdwriter and /dev/scanner should point to the appropriate generic
|
||||
For SCSI devices, ``/dev/tape`` and ``/dev/cdrom`` should point to the
|
||||
*cooked* devices (``/dev/st*`` and ``/dev/sr*``, respectively), whereas
|
||||
``/dev/cdwriter`` and /dev/scanner should point to the appropriate generic
|
||||
SCSI devices (/dev/sg*).
|
||||
|
||||
/dev/mouse may point to a primary serial TTY device, a hardware mouse
|
||||
device, or a socket for a mouse driver program (e.g. /dev/gpmdata).
|
||||
``/dev/mouse`` may point to a primary serial TTY device, a hardware mouse
|
||||
device, or a socket for a mouse driver program (e.g. ``/dev/gpmdata``).
|
||||
|
||||
Sockets and pipes
|
||||
+++++++++++++++++
|
||||
|
||||
Non-transient sockets and named pipes may exist in /dev. Common entries are:
|
||||
|
||||
=============== =============== ===============================================
|
||||
/dev/printer socket lpd local socket
|
||||
/dev/log socket syslog local socket
|
||||
/dev/gpmdata socket gpm mouse multiplexer
|
||||
=============== =============== ===============================================
|
||||
|
||||
Mount points
|
||||
++++++++++++
|
||||
|
||||
The following names are reserved for mounting special filesystems
|
||||
under /dev. These special filesystems provide kernel interfaces that
|
||||
cannot be provided with standard device nodes.
|
||||
|
||||
=============== =============== ===============================================
|
||||
/dev/pts devpts PTY slave filesystem
|
||||
/dev/shm tmpfs POSIX shared memory maintenance access
|
||||
=============== =============== ===============================================
|
||||
|
||||
**** TERMINAL DEVICES
|
||||
Terminal devices
|
||||
----------------
|
||||
|
||||
Terminal, or TTY devices are a special class of character devices. A
|
||||
terminal device is any device that could act as a controlling terminal
|
||||
|
@ -3232,42 +3255,44 @@ conventions include several historical warts; some of these are
|
|||
Linux-specific, some were inherited from other systems, and some
|
||||
reflect Linux outgrowing a borrowed convention.
|
||||
|
||||
A hash mark (#) in a device name is used here to indicate a decimal
|
||||
A hash mark (``#``) in a device name is used here to indicate a decimal
|
||||
number without leading zeroes.
|
||||
|
||||
Virtual consoles and the console device
|
||||
+++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
Virtual consoles are full-screen terminal displays on the system video
|
||||
monitor. Virtual consoles are named /dev/tty#, with numbering
|
||||
starting at /dev/tty1; /dev/tty0 is the current virtual console.
|
||||
/dev/tty0 is the device that should be used to access the system video
|
||||
monitor. Virtual consoles are named ``/dev/tty#``, with numbering
|
||||
starting at ``/dev/tty1``; ``/dev/tty0`` is the current virtual console.
|
||||
``/dev/tty0`` is the device that should be used to access the system video
|
||||
card on those architectures for which the frame buffer devices
|
||||
(/dev/fb*) are not applicable. Do not use /dev/console
|
||||
(``/dev/fb*``) are not applicable. Do not use ``/dev/console``
|
||||
for this purpose.
|
||||
|
||||
The console device, /dev/console, is the device to which system
|
||||
The console device, ``/dev/console``, is the device to which system
|
||||
messages should be sent, and on which logins should be permitted in
|
||||
single-user mode. Starting with Linux 2.1.71, /dev/console is managed
|
||||
single-user mode. Starting with Linux 2.1.71, ``/dev/console`` is managed
|
||||
by the kernel; for previous versions it should be a symbolic link to
|
||||
either /dev/tty0, a specific virtual console such as /dev/tty1, or to
|
||||
a serial port primary (tty*, not cu*) device, depending on the
|
||||
either ``/dev/tty0``, a specific virtual console such as ``/dev/tty1``, or to
|
||||
a serial port primary (``tty*``, not ``cu*``) device, depending on the
|
||||
configuration of the system.
|
||||
|
||||
Serial ports
|
||||
++++++++++++
|
||||
|
||||
Serial ports are RS-232 serial ports and any device which simulates
|
||||
one, either in hardware (such as internal modems) or in software (such
|
||||
as the ISDN driver.) Under Linux, each serial ports has two device
|
||||
names, the primary or callin device and the alternate or callout one.
|
||||
Each kind of device is indicated by a different letter. For any
|
||||
letter X, the names of the devices are /dev/ttyX# and /dev/cux#,
|
||||
respectively; for historical reasons, /dev/ttyS# and /dev/ttyC#
|
||||
correspond to /dev/cua# and /dev/cub#. In the future, it should be
|
||||
letter X, the names of the devices are ``/dev/ttyX#`` and ``/dev/cux#``,
|
||||
respectively; for historical reasons, ``/dev/ttyS#`` and ``/dev/ttyC#``
|
||||
correspond to ``/dev/cua#`` and ``/dev/cub#``. In the future, it should be
|
||||
expected that multiple letters will be used; all letters will be upper
|
||||
case for the "tty" device (e.g. /dev/ttyDP#) and lower case for the
|
||||
"cu" device (e.g. /dev/cudp#).
|
||||
case for the "tty" device (e.g. ``/dev/ttyDP#``) and lower case for the
|
||||
"cu" device (e.g. ``/dev/cudp#``).
|
||||
|
||||
The names /dev/ttyQ# and /dev/cuq# are reserved for local use.
|
||||
The names ``/dev/ttyQ#`` and ``/dev/cuq#`` are reserved for local use.
|
||||
|
||||
The alternate devices provide for kernel-based exclusion and somewhat
|
||||
different defaults than the primary devices. Their main purpose is to
|
||||
|
@ -3276,7 +3301,7 @@ support for serial ports. Their use is deprecated, and they may be
|
|||
removed from a future version of Linux.
|
||||
|
||||
Arbitration of serial ports is provided by the use of lock files with
|
||||
the names /var/lock/LCK..ttyX#. The contents of the lock file should
|
||||
the names ``/var/lock/LCK..ttyX#``. The contents of the lock file should
|
||||
be the PID of the locking process as an ASCII number.
|
||||
|
||||
It is common practice to install links such as /dev/modem
|
||||
|
@ -3287,9 +3312,9 @@ that a lock file be installed with the corresponding alternate
|
|||
device. In order to avoid deadlocks, it is recommended that the locks
|
||||
are acquired in the following order, and released in the reverse:
|
||||
|
||||
1. The symbolic link name, if any (/var/lock/LCK..modem)
|
||||
2. The "tty" name (/var/lock/LCK..ttyS2)
|
||||
3. The alternate device name (/var/lock/LCK..cua2)
|
||||
1. The symbolic link name, if any (``/var/lock/LCK..modem``)
|
||||
2. The "tty" name (``/var/lock/LCK..ttyS2``)
|
||||
3. The alternate device name (``/var/lock/LCK..cua2``)
|
||||
|
||||
In the case of nested symbolic links, the lock files should be
|
||||
installed in the order the symlinks are resolved.
|
||||
|
@ -3301,12 +3326,13 @@ should take into account the possibility of being used on a non-serial
|
|||
port TTY, for which no alternate device would exist.
|
||||
|
||||
Pseudoterminals (PTYs)
|
||||
++++++++++++++++++++++
|
||||
|
||||
Pseudoterminals, or PTYs, are used to create login sessions or provide
|
||||
other capabilities requiring a TTY line discipline (including SLIP or
|
||||
PPP capability) to arbitrary data-generation processes. Each PTY has
|
||||
a master side, named /dev/pty[p-za-e][0-9a-f], and a slave side, named
|
||||
/dev/tty[p-za-e][0-9a-f]. The kernel arbitrates the use of PTYs by
|
||||
a master side, named ``/dev/pty[p-za-e][0-9a-f]``, and a slave side, named
|
||||
``/dev/tty[p-za-e][0-9a-f]``. The kernel arbitrates the use of PTYs by
|
||||
allowing each master side to be opened only once.
|
||||
|
||||
Once the master side has been opened, the corresponding slave device
|
||||
|
@ -3316,9 +3342,9 @@ of a bidirectional pipe with TTY capabilities.
|
|||
|
||||
Recent versions of the Linux kernels and GNU libc contain support for
|
||||
the System V/Unix98 naming scheme for PTYs, which assigns a common
|
||||
device, /dev/ptmx, to all the masters (opening it will automatically
|
||||
give you a previously unassigned PTY) and a subdirectory, /dev/pts,
|
||||
for the slaves; the slaves are named with decimal integers (/dev/pts/#
|
||||
device, ``/dev/ptmx``, to all the masters (opening it will automatically
|
||||
give you a previously unassigned PTY) and a subdirectory, ``/dev/pts``,
|
||||
for the slaves; the slaves are named with decimal integers (``/dev/pts/#``
|
||||
in our notation). This removes the problem of exhausting the
|
||||
namespace and enables the kernel to automatically create the device
|
||||
nodes for the slaves on demand using the "devpts" filesystem.
|
||||
|
|
Loading…
Add table
Reference in a new issue