patch-2.1.29 linux/Documentation/devices.tex
Next file: linux/Documentation/devices.txt
Previous file: linux/Documentation/Configure.help
Back to the patch index
Back to the overall index
- Lines: 388
- Date:
Tue Mar 4 10:07:24 1997
- Orig file:
v2.1.28/linux/Documentation/devices.tex
- Orig date:
Sat Dec 21 00:40:58 1996
diff -u --recursive --new-file v2.1.28/linux/Documentation/devices.tex linux/Documentation/devices.tex
@@ -34,15 +34,19 @@
\newcommand{\link}[4]{{\file #1} \> {\file #2} \> #3 \> #4 \\}
\newcommand{\vlink}[4]{{\file #1} \> {\em #2 \/} \> #3 \> #4 \\}
\newcommand{\node}[3]{{\file #1} \> #2 \> #3 \\}
+\newcommand{\tum}{$''$}
\newenvironment{nodelist}%
{\begin{tabbing}%
{\file /dev/crambamboli} \= {\file /proc/self/fd/99} \= symbolicxxx \=
foo \kill}%
{\end{tabbing}}
%
+% If you reformat this document, *please* make sure this information
+% gets included!
+%
\title{{\bf Linux Allocated Devices}}
\author{Maintained by H. Peter Anvin $<$hpa@zytor.com$>$}
-\date{Last revised: December 20, 1996}
+\date{Last revised: March 3, 1997}
\maketitle
%
\noindent
@@ -153,7 +157,6 @@
\major{34}{}{char }{Z8530 HDLC driver}
\major{ }{}{block}{Fourth IDE hard disk/CD-ROM interface}
\major{35}{}{char }{tclmidi MIDI driver}
-\major{ }{}{block}{Modular RAM disk}
\major{36}{}{char }{Netlink support}
\major{ }{}{block}{MCA ESDI hard disk}
\major{37}{}{char }{IDE tape}
@@ -189,7 +192,14 @@
\major{65}{}{char }{Sundance ``plink'' Transputer boards}
\major{66}{}{char }{YARC PowerPC PCI coprocessor card}
\major{67}{}{char }{Coda network filesystem}
-\major{68}{--119}{}{Unallocated}
+\major{68}{}{char }{CAPI 2.0 interface}
+\major{69}{}{char }{MA16 numeric accelerator card}
+\major{70}{}{char }{SpellCaster Protocol Services Interface}
+\major{71}{}{char }{Computone IntelliPort II serial card}
+\major{72}{}{char }{Computone IntelliPort II serial card -- alternate devices}
+\major{73}{}{char }{Computone IntelliPort II serial card -- control devices}
+\major{74}{}{char }{SCI bridge}
+\major{75}{--119}{}{Unallocated}
\major{120}{--127}{}{Local/experimental use}
\major{128}{--239}{}{Unallocated}
\major{240}{--254}{}{Local/experimental use}
@@ -198,7 +208,6 @@
\section{Minor numbers}
-
\begin{devicelist}
\major{0}{}{}{Unnamed devices (e.g. non-device mounts)}
\minor{0}{}{reserved as null device number}
@@ -258,37 +267,38 @@
\\
\major{}{}{}{To specify format, add to the autodetect device number}
\minor{ 0}{/dev/fd?}{Autodetect format}
- \minor{ 4}{/dev/fd?d360}{5.25" \num{4}{360}K in a \num{4}{360}K drive\1}
- \minor{ 20}{/dev/fd?h360}{5.25" \num{4}{360}K in a 1200K drive\1}
- \minor{ 48}{/dev/fd?h410}{5.25" \num{4}{410}K in a 1200K drive}
- \minor{ 64}{/dev/fd?h420}{5.25" \num{4}{420}K in a 1200K drive}
- \minor{ 24}{/dev/fd?h720}{5.25" \num{4}{720}K in a 1200K drive}
- \minor{ 80}{/dev/fd?h880}{5.25" \num{4}{880}K in a 1200K drive\1}
- \minor{ 8}{/dev/fd?h1200}{5.25" 1200K in a 1200K drive\1}
- \minor{ 40}{/dev/fd?h1440}{5.25" 1440K in a 1200K drive\1}
- \minor{ 56}{/dev/fd?h1476}{5.25" 1476K in a 1200K drive}
- \minor{ 72}{/dev/fd?h1494}{5.25" 1494K in a 1200K drive}
- \minor{ 92}{/dev/fd?h1600}{5.25" 1600K in a 1200K drive\1}
\minor{}{}{}
- \minor{ 12}{/dev/fd?u360}{3.5" \num{4}{360}K Double Density}
- \minor{ 16}{/dev/fd?u720}{3.5" \num{4}{720}K Double Density\1}
- \minor{120}{/dev/fd?u800}{3.5" \num{4}{800}K Double Density\2}
- \minor{ 52}{/dev/fd?u820}{3.5" \num{4}{820}K Double Density}
- \minor{ 68}{/dev/fd?u830}{3.5" \num{4}{830}K Double Density}
- \minor{ 84}{/dev/fd?u1040}{3.5" 1040K Double Density\1}
- \minor{ 88}{/dev/fd?u1120}{3.5" 1120K Double Density\1}
- \minor{ 28}{/dev/fd?u1440}{3.5" 1440K High Density\1}
- \minor{124}{/dev/fd?u1600}{3.5" 1600K High Density\1}
- \minor{ 44}{/dev/fd?u1680}{3.5" 1680K High Density\3}
- \minor{ 60}{/dev/fd?u1722}{3.5" 1722K High Density}
- \minor{ 76}{/dev/fd?u1743}{3.5" 1743K High Density}
- \minor{ 96}{/dev/fd?u1760}{3.5" 1760K High Density}
- \minor{116}{/dev/fd?u1840}{3.5" 1840K High Density\3}
- \minor{100}{/dev/fd?u1920}{3.5" 1920K High Density\1}
- \minor{ 32}{/dev/fd?u2880}{3.5" 2880K Extra Density\1}
- \minor{104}{/dev/fd?u3200}{3.5" 3200K Extra Density}
- \minor{108}{/dev/fd?u3520}{3.5" 3520K Extra Density}
- \minor{112}{/dev/fd?u3840}{3.5" 3840K Extra Density\1}
+ \minor{ 4}{/dev/fd?d360}{5.25\tum\ \num{4}{360}K in a \num{4}{360}K drive\1}
+ \minor{ 20}{/dev/fd?h360}{5.25\tum\ \num{4}{360}K in a 1200K drive\1}
+ \minor{ 48}{/dev/fd?h410}{5.25\tum\ \num{4}{410}K in a 1200K drive}
+ \minor{ 64}{/dev/fd?h420}{5.25\tum\ \num{4}{420}K in a 1200K drive}
+ \minor{ 24}{/dev/fd?h720}{5.25\tum\ \num{4}{720}K in a 1200K drive}
+ \minor{ 80}{/dev/fd?h880}{5.25\tum\ \num{4}{880}K in a 1200K drive\1}
+ \minor{ 8}{/dev/fd?h1200}{5.25\tum\ 1200K in a 1200K drive\1}
+ \minor{ 40}{/dev/fd?h1440}{5.25\tum\ 1440K in a 1200K drive\1}
+ \minor{ 56}{/dev/fd?h1476}{5.25\tum\ 1476K in a 1200K drive}
+ \minor{ 72}{/dev/fd?h1494}{5.25\tum\ 1494K in a 1200K drive}
+ \minor{ 92}{/dev/fd?h1600}{5.25\tum\ 1600K in a 1200K drive\1}
+ \minor{}{}{}
+ \minor{ 12}{/dev/fd?u360}{3.5\tum\ \num{4}{360}K Double Density}
+ \minor{ 16}{/dev/fd?u720}{3.5\tum\ \num{4}{720}K Double Density\1}
+ \minor{120}{/dev/fd?u800}{3.5\tum\ \num{4}{800}K Double Density\2}
+ \minor{ 52}{/dev/fd?u820}{3.5\tum\ \num{4}{820}K Double Density}
+ \minor{ 68}{/dev/fd?u830}{3.5\tum\ \num{4}{830}K Double Density}
+ \minor{ 84}{/dev/fd?u1040}{3.5\tum\ 1040K Double Density\1}
+ \minor{ 88}{/dev/fd?u1120}{3.5\tum\ 1120K Double Density\1}
+ \minor{ 28}{/dev/fd?u1440}{3.5\tum\ 1440K High Density\1}
+ \minor{124}{/dev/fd?u1600}{3.5\tum\ 1600K High Density\1}
+ \minor{ 44}{/dev/fd?u1680}{3.5\tum\ 1680K High Density\3}
+ \minor{ 60}{/dev/fd?u1722}{3.5\tum\ 1722K High Density}
+ \minor{ 76}{/dev/fd?u1743}{3.5\tum\ 1743K High Density}
+ \minor{ 96}{/dev/fd?u1760}{3.5\tum\ 1760K High Density}
+ \minor{116}{/dev/fd?u1840}{3.5\tum\ 1840K High Density\3}
+ \minor{100}{/dev/fd?u1920}{3.5\tum\ 1920K High Density\1}
+ \minor{ 32}{/dev/fd?u2880}{3.5\tum\ 2880K Extra Density\1}
+ \minor{104}{/dev/fd?u3200}{3.5\tum\ 3200K Extra Density}
+ \minor{108}{/dev/fd?u3520}{3.5\tum\ 3520K Extra Density}
+ \minor{112}{/dev/fd?u3840}{3.5\tum\ 3840K Extra Density\1}
\minor{}{}{}
\minor{36}{/dev/fd?CompaQ}{Compaq 2880K drive; probably obsolete}
\\
@@ -298,11 +308,12 @@
\end{devicelist}
NOTE: The letter in the device name ({\file d}, {\file q}, {\file h}
-or {\file u}) signifies the type of drive supported: 5.25" Double
-Density ({\file d}), 5.25" Quad Density ({\file q}), 5.25" High
-Density ({\file h}) or 3.5" (any type, {\file u}). The capital
-letters {\file D}, {\file H}, or {\file E} for the 3.5" models have
-been deprecated, since the drive type is insignificant for these devices.
+or {\file u}) signifies the type of drive supported: 5.25\tum\ Double
+Density ({\file d}), 5.25\tum\ Quad Density ({\file q}), 5.25\tum\
+High Density ({\file h}) or 3.5\tum\ (any type, {\file u}). The
+capital letters {\file D}, {\file H}, or {\file E} for the 3.5\tum\
+models have been deprecated, since the drive type is insignificant for
+these devices.
\begin{devicelist}
\major{3}{}{char}{Pseudo-TTY slaves}
@@ -324,9 +335,10 @@
\end{devicelist}
\noindent
-For Linux/i386, partitions 1-4 are the primary partitions, partitions
-5 and up are logical partitions. Other versions of Linux use
-partitioning schemes appropriate to their respective architectures.
+For MS-DOS style partition tables (typically used by Linux/i386),
+partitions 1-4 are the primary partitions, partitions 5 and up are
+logical partitions. For other partitioning schemes, the meaning of
+the numbers vary.
\begin{devicelist}
\major{ 4}{}{char }{TTY devices}
@@ -481,6 +493,7 @@
\minor{139}{/dev/openprom}{SPARC OpenBoot PROM}
\minor{140}{/dev/relay8}{Berkshire Products Octal relay card}
\minor{141}{/dev/relay16}{Berkshire Products ISO-16 relay card}
+ \minor{142}{/dev/msr}{x86 model specific registers}
\end{devicelist}
\begin{devicelist}
@@ -913,15 +926,8 @@
\minor{129}{/dev/smpte1}{Second MIDI port, SMPTE timed}
\minor{130}{/dev/smpte2}{Third MIDI port, SMPTE timed}
\minor{131}{/dev/smpte3}{Fourth MIDI port, SMPTE timed}
-\\
-\major{ }{}{block}{Modular RAM disk}
\end{devicelist}
-\noindent
-This device number is provided for older kernels which did not have
-the modular RAM disk in the standard distribution. See major number
-1. This assignment will be removed when the 2.0 kernel is released.
-
\begin{devicelist}
\major{36}{}{char }{Netlink support}
\minor{0}{/dev/route}{Routing, device updates (kernel to user)}
@@ -1213,7 +1219,98 @@
See {\em http://www.coda.cs.cmu.edu\/} for information about Coda.
\begin{devicelist}
-\major{68}{--119}{}{Unallocated}
+\major{68}{}{char }{CAPI 2.0 interface}
+ \minor{0}{/dev/capi20}{Control device}
+ \minor{1}{/dev/capi20.00}{First CAPI 2.0 application}
+ \minor{2}{/dev/capi20.01}{Second CAPI 2.0 application}
+ \minordots
+ \minor{20}{/dev/capi20.19}{19th CAPI 2.0 application}
+\end{devicelist}
+
+\noindent
+ISDN CAPI 2.0 driver for use with CAPI 2.0 applications; currently
+supports the AVM B1 card.
+
+\begin{devicelist}
+\major{69}{}{char }{MA16 numeric accelerator card}
+ \minor{0}{/dev/ma16}{Board memory access}
+\end{devicelist}
+
+\begin{devicelist}
+\major{70}{}{char }{SpellCaster Protocol Services Interface}
+ \minor{0}{/dev/apscfg}{Configuration interface}
+ \minor{1}{/dev/apsauth}{Authentication interface}
+ \minor{2}{/dev/apslog}{Logging interface}
+ \minor{3}{/dev/apsdbg}{Debugging interface}
+ \minor{64}{/dev/apsisdn}{ISDN command interface}
+ \minor{65}{/dev/apsasync}{Async command interface}
+ \minor{128}{/dev/apsmon}{Monitor interface}
+\end{devicelist}
+
+\begin{devicelist}
+\major{71}{}{char }{Computone IntelliPort II serial card}
+ \minor{0}{/dev/ttyF0}{IntelliPort II board 0, port 0}
+ \minor{1}{/dev/ttyF1}{IntelliPort II board 0, port 1}
+ \minordots
+ \minor{63}{/dev/ttyF63}{IntelliPort II board 0, port 63}
+ \minor{64}{/dev/ttyF64}{IntelliPort II board 1, port 0}
+ \minor{65}{/dev/ttyF65}{IntelliPort II board 1, port 1}
+ \minordots
+ \minor{127}{/dev/ttyF127}{IntelliPort II board 1, port 63}
+ \minor{128}{/dev/ttyF128}{IntelliPort II board 2, port 0}
+ \minor{129}{/dev/ttyF129}{IntelliPort II board 2, port 1}
+ \minordots
+ \minor{191}{/dev/ttyF191}{IntelliPort II board 2, port 63}
+ \minor{192}{/dev/ttyF192}{IntelliPort II board 3, port 0}
+ \minor{193}{/dev/ttyF193}{IntelliPort II board 3, port 1}
+ \minordots
+ \minor{255}{/dev/ttyF255}{IntelliPort II board 3, port 63}
+\end{devicelist}
+
+\begin{devicelist}
+\major{72}{}{char }{Computone IntelliPort II serial card -- alternate devices}
+ \minor{0}{/dev/cuf0}{Callout device corresponding to {\file ttyF0}}
+ \minor{1}{/dev/cuf1}{Callout device corresponding to {\file ttyF1}}
+ \minordots
+ \minor{63}{/dev/cuf63}{Callout device corresponding to {\file ttyF63}}
+ \minor{64}{/dev/cuf64}{Callout device corresponding to {\file ttyF64}}
+ \minor{65}{/dev/cuf65}{Callout device corresponding to {\file ttyF65}}
+ \minordots
+ \minor{127}{/dev/cuf127}{Callout device corresponding to {\file ttyF127}}
+ \minor{128}{/dev/cuf128}{Callout device corresponding to {\file ttyF128}}
+ \minor{129}{/dev/cuf129}{Callout device corresponding to {\file ttyF129}}
+ \minordots
+ \minor{191}{/dev/cuf191}{Callout device corresponding to {\file ttyF191}}
+ \minor{192}{/dev/cuf192}{Callout device corresponding to {\file ttyF192}}
+ \minor{193}{/dev/cuf193}{Callout device corresponding to {\file ttyF193}}
+ \minordots
+ \minor{255}{/dev/cuf255}{Callout device corresponding to {\file ttyF255}}
+\end{devicelist}
+
+\begin{devicelist}
+\major{73}{}{char }{Computone IntelliPort II serial card -- control devices}
+ \minor{0}{/dev/ip2ipl0}{Loadware device for board 0}
+ \minor{1}{/dev/ip2stat0}{Status device for board 0}
+ \minor{4}{/dev/ip2ipl1}{Loadware device for board 1}
+ \minor{5}{/dev/ip2stat1}{Status device for board 1}
+ \minor{8}{/dev/ip2ipl2}{Loadware device for board 2}
+ \minor{9}{/dev/ip2stat2}{Status device for board 2}
+ \minor{12}{/dev/ip2ipl3}{Loadware device for board 3}
+ \minor{13}{/dev/ip2stat3}{Status device for board 3}
+\end{devicelist}
+
+\begin{devicelist}
+\major{74}{}{char }{SCI bridge}
+ \minor{0}{/dev/SCI/0}{SCI device 0}
+ \minor{1}{/dev/SCI/1}{SCI device 1}
+ \minordots
+\end{devicelist}
+
+\noindent
+Currently for Dolphin Interconnect Solutions' PCI-SCI bridge.
+
+\begin{devicelist}
+\major{75}{--119}{}{Unallocated}
\end{devicelist}
\begin{devicelist}
@@ -1317,5 +1414,108 @@
\node{/dev/gpmdata}{socket}{{\file gpm} mouse multiplexer}
\end{nodelist}
-\end{document}
+\section{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
+for a session; this includes virtual consoles, serial ports, and
+pseudoterminals (PTYs).
+
+All terminal devices share a common set of capabilities known as line
+diciplines; these include the common terminal line dicipline as well
+as SLIP and PPP modes.
+
+All terminal devices are named similarly; this section explains the
+naming and use of the various types of TTYs. Note that the naming
+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
+number without leading zeroes.
+
+\subsection{Virtual consoles and the console device}
+
+Virtual consoles are full-screen terminal displays on the system video
+monitor. Virtual consoles are named {\file /dev/tty$\#$}, with
+numbering starting at {\file /dev/tty1}; {\file /dev/tty0} is the
+current virtual console. {\file /dev/tty0} is the device that should
+be used to access the system video card on those architectures for
+which the frame buffer devices ({\file /dev/fb*}) do not exist
+(including the x86). Do not use {\file /dev/console} for this
+purpose.
+
+The {\em console device\/}, {\file /dev/console}, is the device to
+which system messages should be sent, and on which logins should be
+permitted in single-user mode. {\file /dev/console} should be a
+symbolic link to either {\file /dev/tty0}, a specific virtual console
+such as {\file /dev/tty1}, or to a serial port primary ({\file tty})
+device, depending on the configuration of the system.
+
+\subsection{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 {\file /dev/tty${X\#}$} and
+{\file /dev/cu${x\#}$}, respectively; for historical reasons, {\file
+/dev/ttyS$\#$} and {\file /dev/ttyC$\#$} correspond to {\file
+/dev/cua$\#$} and {\file /dev/cub$\#$}. In the future, it should be
+expected that multiple letters will be used; all letters will be upper
+case for the {\file tty} device and lower case for the {\file cu}
+device.
+
+The alternate devices provide for kernel-based exclusion and somewhat
+different defaults than the primary devices. Their main purpose is to
+allow the use of serial ports with programs with no inherent or broken
+support for serial ports. For programs with proper knowledge of
+serial port operation, their use should probably be avoided.
+
+Arbitration of serial ports is provided by the use of lock files with
+the names {\file /var/lock/LCK..tty${X\#}$}. 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 {\file /dev/modem\/}
+which point to serial ports. In order to ensure proper locking in the
+presence of these links, it is recommended that software chase
+symlinks and lock all possible names; additionally, it is recommended
+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:
+\begin{itemize}
+\item{The symbolic link name, if any ({\file /var/lock/LCK..modem})}
+\item{The {\file tty} name ({\file /var/lock/LCK..ttyS2})}
+\item{The alternate device name ({\file /var/lock/LCK..cua2})}
+\end{itemize}
+In the case of nested symbolic links, the lock files should be
+installed in the order the symlinks are resolved.
+
+Under no circumstances should an application hold a lock while waiting
+for another to be released. In addition, applications which attempt
+to create lock files for the corresponding alternate device names
+should take into account the possibility of being used on a non-serial
+port TTY, for which no alternate device would exist.
+
+\subsection{Pseudoterminals (PTYs)}
+
+Pseudoterminals, or PTYs, are used to create login sessions or provide
+other capabilities requiring a TTY line dicipline (including SLIP or
+PPP capability) to arbitrary data-generation processes. Each PTY has
+a {\em master\/} side, named {\file /dev/pty[p-za-e][0-9a-f]\/}, and a
+{\em slave\/} side, named {\file /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
+can be used in the same manner as any TTY device. The master and
+slave devices are connected by the kernel, generating the equivalent
+of a bidirectional pipe with TTY capabilities.
+
+The entire namespace {\file /dev/[pt]ty[p-za-o][0-9a-z]\/} should be
+considered reserved for the future use of PTYs. Should more than 936
+PTYs ever become a necessity, we will likely adopt a System V-like
+scheme by which PTYs use a subdirectory of {\file /dev}.
+
+\end{document}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov