mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 08:58:07 +00:00
eedf265aa0
The /dev/ptmx device node is changed to lookup the directory entry "pts" in the same directory as the /dev/ptmx device node was opened in. If there is a "pts" entry and that entry is a devpts filesystem /dev/ptmx uses that filesystem. Otherwise the open of /dev/ptmx fails. The DEVPTS_MULTIPLE_INSTANCES configuration option is removed, so that userspace can now safely depend on each mount of devpts creating a new instance of the filesystem. Each mount of devpts is now a separate and equal filesystem. Reserved ttys are now available to all instances of devpts where the mounter is in the initial mount namespace. A new vfs helper path_pts is introduced that finds a directory entry named "pts" in the directory of the passed in path, and changes the passed in path to point to it. The helper path_pts uses a function path_parent_directory that was factored out of follow_dotdot. In the implementation of devpts: - devpts_mnt is killed as it is no longer meaningful if all mounts of devpts are equal. - pts_sb_from_inode is replaced by just inode->i_sb as all cached inodes in the tty layer are now from the devpts filesystem. - devpts_add_ref is rolled into the new function devpts_ptmx. And the unnecessary inode hold is removed. - devpts_del_ref is renamed devpts_release and reduced to just a deacrivate_super. - The newinstance mount option continues to be accepted but is now ignored. In devpts_fs.h definitions for when !CONFIG_UNIX98_PTYS are removed as they are never used. Documentation/filesystems/devices.txt is updated to describe the current situation. This has been verified to work properly on openwrt-15.05, centos5, centos6, centos7, debian-6.0.2, debian-7.9, debian-8.2, ubuntu-14.04.3, ubuntu-15.10, fedora23, magia-5, mint-17.3, opensuse-42.1, slackware-14.1, gentoo-20151225 (13.0?), archlinux-2015-12-01. With the caveat that on centos6 and on slackware-14.1 that there wind up being two instances of the devpts filesystem mounted on /dev/pts, the lower copy does not end up getting used. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Greg KH <greg@kroah.com> Cc: Peter Hurley <peter@hurleysoftware.com> Cc: Peter Anvin <hpa@zytor.com> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Serge Hallyn <serge.hallyn@ubuntu.com> Cc: Willy Tarreau <w@1wt.eu> Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk> Cc: Jann Horn <jann@thejh.net> Cc: Jiri Slaby <jslaby@suse.com> Cc: Florian Weimer <fw@deneb.enyo.de> Cc: Konstantin Khlebnikov <koct9i@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
458 lines
16 KiB
Text
458 lines
16 KiB
Text
config TTY
|
|
bool "Enable TTY" if EXPERT
|
|
default y
|
|
---help---
|
|
Allows you to remove TTY support which can save space, and
|
|
blocks features that require TTY from inclusion in the kernel.
|
|
TTY is required for any text terminals or serial port
|
|
communication. Most users should leave this enabled.
|
|
|
|
if TTY
|
|
|
|
config VT
|
|
bool "Virtual terminal" if EXPERT
|
|
depends on !S390 && !UML
|
|
select INPUT
|
|
default y
|
|
---help---
|
|
If you say Y here, you will get support for terminal devices with
|
|
display and keyboard devices. These are called "virtual" because you
|
|
can run several virtual terminals (also called virtual consoles) on
|
|
one physical terminal. This is rather useful, for example one
|
|
virtual terminal can collect system messages and warnings, another
|
|
one can be used for a text-mode user session, and a third could run
|
|
an X session, all in parallel. Switching between virtual terminals
|
|
is done with certain key combinations, usually Alt-<function key>.
|
|
|
|
The setterm command ("man setterm") can be used to change the
|
|
properties (such as colors or beeping) of a virtual terminal. The
|
|
man page console_codes(4) ("man console_codes") contains the special
|
|
character sequences that can be used to change those properties
|
|
directly. The fonts used on virtual terminals can be changed with
|
|
the setfont ("man setfont") command and the key bindings are defined
|
|
with the loadkeys ("man loadkeys") command.
|
|
|
|
You need at least one virtual terminal device in order to make use
|
|
of your keyboard and monitor. Therefore, only people configuring an
|
|
embedded system would want to say N here in order to save some
|
|
memory; the only way to log into such a system is then via a serial
|
|
or network connection.
|
|
|
|
If unsure, say Y, or else you won't be able to do much with your new
|
|
shiny Linux system :-)
|
|
|
|
config CONSOLE_TRANSLATIONS
|
|
depends on VT
|
|
default y
|
|
bool "Enable character translations in console" if EXPERT
|
|
---help---
|
|
This enables support for font mapping and Unicode translation
|
|
on virtual consoles.
|
|
|
|
config VT_CONSOLE
|
|
bool "Support for console on virtual terminal" if EXPERT
|
|
depends on VT
|
|
default y
|
|
---help---
|
|
The system console is the device which receives all kernel messages
|
|
and warnings and which allows logins in single user mode. If you
|
|
answer Y here, a virtual terminal (the device used to interact with
|
|
a physical terminal) can be used as system console. This is the most
|
|
common mode of operations, so you should say Y here unless you want
|
|
the kernel messages be output only to a serial port (in which case
|
|
you should say Y to "Console on serial port", below).
|
|
|
|
If you do say Y here, by default the currently visible virtual
|
|
terminal (/dev/tty0) will be used as system console. You can change
|
|
that with a kernel command line option such as "console=tty3" which
|
|
would use the third virtual terminal as system console. (Try "man
|
|
bootparam" or see the documentation of your boot loader (lilo or
|
|
loadlin) about how to pass options to the kernel at boot time.)
|
|
|
|
If unsure, say Y.
|
|
|
|
config VT_CONSOLE_SLEEP
|
|
def_bool y
|
|
depends on VT_CONSOLE && PM_SLEEP
|
|
|
|
config HW_CONSOLE
|
|
bool
|
|
depends on VT && !UML
|
|
default y
|
|
|
|
config VT_HW_CONSOLE_BINDING
|
|
bool "Support for binding and unbinding console drivers"
|
|
depends on HW_CONSOLE
|
|
default n
|
|
---help---
|
|
The virtual terminal is the device that interacts with the physical
|
|
terminal through console drivers. On these systems, at least one
|
|
console driver is loaded. In other configurations, additional console
|
|
drivers may be enabled, such as the framebuffer console. If more than
|
|
1 console driver is enabled, setting this to 'y' will allow you to
|
|
select the console driver that will serve as the backend for the
|
|
virtual terminals.
|
|
|
|
See <file:Documentation/console/console.txt> for more
|
|
information. For framebuffer console users, please refer to
|
|
<file:Documentation/fb/fbcon.txt>.
|
|
|
|
config UNIX98_PTYS
|
|
bool "Unix98 PTY support" if EXPERT
|
|
default y
|
|
---help---
|
|
A pseudo terminal (PTY) is a software device consisting of two
|
|
halves: a master and a slave. The slave device behaves identical to
|
|
a physical terminal; the master device is used by a process to
|
|
read data from and write data to the slave, thereby emulating a
|
|
terminal. Typical programs for the master side are telnet servers
|
|
and xterms.
|
|
|
|
Linux has traditionally used the BSD-like names /dev/ptyxx for
|
|
masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
|
|
has a number of problems. The GNU C library glibc 2.1 and later,
|
|
however, supports the Unix98 naming standard: in order to acquire a
|
|
pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
|
|
terminal is then made available to the process and the pseudo
|
|
terminal slave can be accessed as /dev/pts/<number>. What was
|
|
traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
|
|
|
|
All modern Linux systems use the Unix98 ptys. Say Y unless
|
|
you're on an embedded system and want to conserve memory.
|
|
|
|
config LEGACY_PTYS
|
|
bool "Legacy (BSD) PTY support"
|
|
default y
|
|
---help---
|
|
A pseudo terminal (PTY) is a software device consisting of two
|
|
halves: a master and a slave. The slave device behaves identical to
|
|
a physical terminal; the master device is used by a process to
|
|
read data from and write data to the slave, thereby emulating a
|
|
terminal. Typical programs for the master side are telnet servers
|
|
and xterms.
|
|
|
|
Linux has traditionally used the BSD-like names /dev/ptyxx
|
|
for masters and /dev/ttyxx for slaves of pseudo
|
|
terminals. This scheme has a number of problems, including
|
|
security. This option enables these legacy devices; on most
|
|
systems, it is safe to say N.
|
|
|
|
|
|
config LEGACY_PTY_COUNT
|
|
int "Maximum number of legacy PTY in use"
|
|
depends on LEGACY_PTYS
|
|
range 0 256
|
|
default "256"
|
|
---help---
|
|
The maximum number of legacy PTYs that can be used at any one time.
|
|
The default is 256, and should be more than enough. Embedded
|
|
systems may want to reduce this to save memory.
|
|
|
|
When not in use, each legacy PTY occupies 12 bytes on 32-bit
|
|
architectures and 24 bytes on 64-bit architectures.
|
|
|
|
config BFIN_JTAG_COMM
|
|
tristate "Blackfin JTAG Communication"
|
|
depends on BLACKFIN
|
|
help
|
|
Add support for emulating a TTY device over the Blackfin JTAG.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called bfin_jtag_comm.
|
|
|
|
config BFIN_JTAG_COMM_CONSOLE
|
|
bool "Console on Blackfin JTAG"
|
|
depends on BFIN_JTAG_COMM=y
|
|
|
|
config SERIAL_NONSTANDARD
|
|
bool "Non-standard serial port support"
|
|
depends on HAS_IOMEM
|
|
---help---
|
|
Say Y here if you have any non-standard serial boards -- boards
|
|
which aren't supported using the standard "dumb" serial driver.
|
|
This includes intelligent serial boards such as Cyclades,
|
|
Digiboards, etc. These are usually used for systems that need many
|
|
serial ports because they serve many terminals or dial-in
|
|
connections.
|
|
|
|
Note that the answer to this question won't directly affect the
|
|
kernel: saying N will just cause the configurator to skip all
|
|
the questions about non-standard serial boards.
|
|
|
|
Most people can say N here.
|
|
|
|
config ROCKETPORT
|
|
tristate "Comtrol RocketPort support"
|
|
depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI)
|
|
help
|
|
This driver supports Comtrol RocketPort and RocketModem PCI boards.
|
|
These boards provide 2, 4, 8, 16, or 32 high-speed serial ports or
|
|
modems. For information about the RocketPort/RocketModem boards
|
|
and this driver read <file:Documentation/serial/rocket.txt>.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called rocket.
|
|
|
|
If you want to compile this driver into the kernel, say Y here. If
|
|
you don't have a Comtrol RocketPort/RocketModem card installed, say N.
|
|
|
|
config CYCLADES
|
|
tristate "Cyclades async mux support"
|
|
depends on SERIAL_NONSTANDARD && (PCI || ISA)
|
|
select FW_LOADER
|
|
---help---
|
|
This driver supports Cyclades Z and Y multiserial boards.
|
|
You would need something like this to connect more than two modems to
|
|
your Linux box, for instance in order to become a dial-in server.
|
|
|
|
For information about the Cyclades-Z card, read
|
|
<file:Documentation/serial/README.cycladesZ>.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called cyclades.
|
|
|
|
If you haven't heard about it, it's safe to say N.
|
|
|
|
config CYZ_INTR
|
|
bool "Cyclades-Z interrupt mode operation"
|
|
depends on CYCLADES && PCI
|
|
help
|
|
The Cyclades-Z family of multiport cards allows 2 (two) driver op
|
|
modes: polling and interrupt. In polling mode, the driver will check
|
|
the status of the Cyclades-Z ports every certain amount of time
|
|
(which is called polling cycle and is configurable). In interrupt
|
|
mode, it will use an interrupt line (IRQ) in order to check the
|
|
status of the Cyclades-Z ports. The default op mode is polling. If
|
|
unsure, say N.
|
|
|
|
config MOXA_INTELLIO
|
|
tristate "Moxa Intellio support"
|
|
depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI)
|
|
select FW_LOADER
|
|
help
|
|
Say Y here if you have a Moxa Intellio multiport serial card.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called moxa.
|
|
|
|
config MOXA_SMARTIO
|
|
tristate "Moxa SmartIO support v. 2.0"
|
|
depends on SERIAL_NONSTANDARD && (PCI || EISA || ISA)
|
|
help
|
|
Say Y here if you have a Moxa SmartIO multiport serial card and/or
|
|
want to help develop a new version of this driver.
|
|
|
|
This is upgraded (1.9.1) driver from original Moxa drivers with
|
|
changes finally resulting in PCI probing.
|
|
|
|
This driver can also be built as a module. The module will be called
|
|
mxser. If you want to do that, say M here.
|
|
|
|
config SYNCLINK
|
|
tristate "Microgate SyncLink card support"
|
|
depends on SERIAL_NONSTANDARD && PCI && ISA_DMA_API
|
|
help
|
|
Provides support for the SyncLink ISA and PCI multiprotocol serial
|
|
adapters. These adapters support asynchronous and HDLC bit
|
|
synchronous communication up to 10Mbps (PCI adapter).
|
|
|
|
This driver can only be built as a module ( = code which can be
|
|
inserted in and removed from the running kernel whenever you want).
|
|
The module will be called synclink. If you want to do that, say M
|
|
here.
|
|
|
|
config SYNCLINKMP
|
|
tristate "SyncLink Multiport support"
|
|
depends on SERIAL_NONSTANDARD && PCI
|
|
help
|
|
Enable support for the SyncLink Multiport (2 or 4 ports)
|
|
serial adapter, running asynchronous and HDLC communications up
|
|
to 2.048Mbps. Each ports is independently selectable for
|
|
RS-232, V.35, RS-449, RS-530, and X.21
|
|
|
|
This driver may be built as a module ( = code which can be
|
|
inserted in and removed from the running kernel whenever you want).
|
|
The module will be called synclinkmp. If you want to do that, say M
|
|
here.
|
|
|
|
config SYNCLINK_GT
|
|
tristate "SyncLink GT/AC support"
|
|
depends on SERIAL_NONSTANDARD && PCI
|
|
help
|
|
Support for SyncLink GT and SyncLink AC families of
|
|
synchronous and asynchronous serial adapters
|
|
manufactured by Microgate Systems, Ltd. (www.microgate.com)
|
|
|
|
config NOZOMI
|
|
tristate "HSDPA Broadband Wireless Data Card - Globe Trotter"
|
|
depends on PCI
|
|
help
|
|
If you have a HSDPA driver Broadband Wireless Data Card -
|
|
Globe Trotter PCMCIA card, say Y here.
|
|
|
|
To compile this driver as a module, choose M here, the module
|
|
will be called nozomi.
|
|
|
|
config ISI
|
|
tristate "Multi-Tech multiport card support"
|
|
depends on SERIAL_NONSTANDARD && PCI
|
|
select FW_LOADER
|
|
help
|
|
This is a driver for the Multi-Tech cards which provide several
|
|
serial ports. The driver is experimental and can currently only be
|
|
built as a module. The module will be called isicom.
|
|
If you want to do that, choose M here.
|
|
|
|
config N_HDLC
|
|
tristate "HDLC line discipline support"
|
|
depends on SERIAL_NONSTANDARD
|
|
help
|
|
Allows synchronous HDLC communications with tty device drivers that
|
|
support synchronous HDLC such as the Microgate SyncLink adapter.
|
|
|
|
This driver can be built as a module ( = code which can be
|
|
inserted in and removed from the running kernel whenever you want).
|
|
The module will be called n_hdlc. If you want to do that, say M
|
|
here.
|
|
|
|
config N_GSM
|
|
tristate "GSM MUX line discipline support (EXPERIMENTAL)"
|
|
depends on NET
|
|
help
|
|
This line discipline provides support for the GSM MUX protocol and
|
|
presents the mux as a set of 61 individual tty devices.
|
|
|
|
config TRACE_ROUTER
|
|
tristate "Trace data router for MIPI P1149.7 cJTAG standard"
|
|
depends on TRACE_SINK
|
|
default n
|
|
help
|
|
The trace router uses the Linux tty line discipline framework to
|
|
route trace data coming from a tty port (say UART for example) to
|
|
the trace sink line discipline driver and to another tty port (say
|
|
USB). This is part of a solution for the MIPI P1149.7, compact JTAG,
|
|
standard, which is for debugging mobile devices. The PTI driver in
|
|
drivers/misc/pti.c defines the majority of this MIPI solution.
|
|
|
|
You should select this driver if the target kernel is meant for
|
|
a mobile device containing a modem. Then you will need to select
|
|
"Trace data sink for MIPI P1149.7 cJTAG standard" line discipline
|
|
driver.
|
|
|
|
config TRACE_SINK
|
|
tristate "Trace data sink for MIPI P1149.7 cJTAG standard"
|
|
default n
|
|
help
|
|
The trace sink uses the Linux line discipline framework to receive
|
|
trace data coming from the trace router line discipline driver
|
|
to a user-defined tty port target, like USB.
|
|
This is to provide a way to extract modem trace data on
|
|
devices that do not have a PTI HW module, or just need modem
|
|
trace data to come out of a different HW output port.
|
|
This is part of a solution for the P1149.7, compact JTAG, standard.
|
|
|
|
If you select this option, you need to select
|
|
"Trace data router for MIPI P1149.7 cJTAG standard".
|
|
|
|
config PPC_EPAPR_HV_BYTECHAN
|
|
bool "ePAPR hypervisor byte channel driver"
|
|
depends on PPC
|
|
select EPAPR_PARAVIRT
|
|
help
|
|
This driver creates /dev entries for each ePAPR hypervisor byte
|
|
channel, thereby allowing applications to communicate with byte
|
|
channels as if they were serial ports.
|
|
|
|
config PPC_EARLY_DEBUG_EHV_BC
|
|
bool "Early console (udbg) support for ePAPR hypervisors"
|
|
depends on PPC_EPAPR_HV_BYTECHAN=y
|
|
help
|
|
Select this option to enable early console (a.k.a. "udbg") support
|
|
via an ePAPR byte channel. You also need to choose the byte channel
|
|
handle below.
|
|
|
|
config PPC_EARLY_DEBUG_EHV_BC_HANDLE
|
|
int "Byte channel handle for early console (udbg)"
|
|
depends on PPC_EARLY_DEBUG_EHV_BC
|
|
default 0
|
|
help
|
|
If you want early console (udbg) output through a byte channel,
|
|
specify the handle of the byte channel to use.
|
|
|
|
For this to work, the byte channel driver must be compiled
|
|
in-kernel, not as a module.
|
|
|
|
Note that only one early console driver can be enabled, so don't
|
|
enable any others if you enable this one.
|
|
|
|
If the number you specify is not a valid byte channel handle, then
|
|
there simply will be no early console output. This is true also
|
|
if you don't boot under a hypervisor at all.
|
|
|
|
config GOLDFISH_TTY
|
|
tristate "Goldfish TTY Driver"
|
|
depends on GOLDFISH
|
|
help
|
|
Console and system TTY driver for the Goldfish virtual platform.
|
|
|
|
config DA_TTY
|
|
bool "DA TTY"
|
|
depends on METAG_DA
|
|
select SERIAL_NONSTANDARD
|
|
help
|
|
This enables a TTY on a Dash channel.
|
|
|
|
config DA_CONSOLE
|
|
bool "DA Console"
|
|
depends on DA_TTY
|
|
help
|
|
This enables a console on a Dash channel.
|
|
|
|
config MIPS_EJTAG_FDC_TTY
|
|
bool "MIPS EJTAG Fast Debug Channel TTY"
|
|
depends on MIPS_CDMM
|
|
help
|
|
This enables a TTY and console on the MIPS EJTAG Fast Debug Channels,
|
|
if they are present. This can be useful when working with an EJTAG
|
|
probe which supports it, to get console output and a login prompt via
|
|
EJTAG without needing to connect a serial cable.
|
|
|
|
TTY devices are named e.g. ttyFDC3c2 (for FDC channel 2 of the FDC on
|
|
CPU3).
|
|
|
|
The console can be enabled with console=fdc1 (for FDC channel 1 on all
|
|
CPUs). Do not use the console unless there is a debug probe attached
|
|
to drain the FDC TX FIFO.
|
|
|
|
If unsure, say N.
|
|
|
|
config MIPS_EJTAG_FDC_EARLYCON
|
|
bool "Early FDC console"
|
|
depends on MIPS_EJTAG_FDC_TTY
|
|
help
|
|
This registers a console on FDC channel 1 very early during boot (from
|
|
MIPS arch code). This is useful for bring-up and debugging early boot
|
|
issues.
|
|
|
|
Do not enable unless there is a debug probe attached to drain the FDC
|
|
TX FIFO.
|
|
|
|
If unsure, say N.
|
|
|
|
config MIPS_EJTAG_FDC_KGDB
|
|
bool "Use KGDB over an FDC channel"
|
|
depends on MIPS_EJTAG_FDC_TTY && KGDB
|
|
default y
|
|
help
|
|
This enables the use of KGDB over an FDC channel, allowing KGDB to be
|
|
used remotely or when a serial port isn't available.
|
|
|
|
config MIPS_EJTAG_FDC_KGDB_CHAN
|
|
int "KGDB FDC channel"
|
|
depends on MIPS_EJTAG_FDC_KGDB
|
|
range 2 15
|
|
default 3
|
|
help
|
|
FDC channel number to use for KGDB.
|
|
|
|
endif # TTY
|