405 lines
14 KiB
Plaintext
405 lines
14 KiB
Plaintext
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
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
|
||
|
select INPUT
|
||
|
default y if !UML
|
||
|
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
|
||
|
default y
|
||
|
|
||
|
config VT_HW_CONSOLE_BINDING
|
||
|
bool "Support for binding and unbinding console drivers"
|
||
|
depends on HW_CONSOLE
|
||
|
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/driver-api/console.rst> for more
|
||
|
information. For framebuffer console users, please refer to
|
||
|
<file:Documentation/fb/fbcon.rst>.
|
||
|
|
||
|
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 LEGACY_TIOCSTI
|
||
|
bool "Allow legacy TIOCSTI usage"
|
||
|
default y
|
||
|
help
|
||
|
Historically the kernel has allowed TIOCSTI, which will push
|
||
|
characters into a controlling TTY. This continues to be used
|
||
|
as a malicious privilege escalation mechanism, and provides no
|
||
|
meaningful real-world utility any more. Its use is considered
|
||
|
a dangerous legacy operation, and can be disabled on most
|
||
|
systems.
|
||
|
|
||
|
Say 'Y here only if you have confirmed that your system's
|
||
|
userspace depends on this functionality to continue operating
|
||
|
normally.
|
||
|
|
||
|
This functionality can be changed at runtime with the
|
||
|
dev.tty.legacy_tiocsti sysctl. This configuration option sets
|
||
|
the default value of the sysctl.
|
||
|
|
||
|
config LDISC_AUTOLOAD
|
||
|
bool "Automatically load TTY Line Disciplines"
|
||
|
default y
|
||
|
help
|
||
|
Historically the kernel has always automatically loaded any
|
||
|
line discipline that is in a kernel module when a user asks
|
||
|
for it to be loaded with the TIOCSETD ioctl, or through other
|
||
|
means. This is not always the best thing to do on systems
|
||
|
where you know you will not be using some of the more
|
||
|
"ancient" line disciplines, so prevent the kernel from doing
|
||
|
this unless the request is coming from a process with the
|
||
|
CAP_SYS_MODULE permissions.
|
||
|
|
||
|
Say 'Y' here if you trust your userspace users to do the right
|
||
|
thing, or if you have only provided the line disciplines that
|
||
|
you know you will be using, or if you wish to continue to use
|
||
|
the traditional method of on-demand loading of these modules
|
||
|
by any user.
|
||
|
|
||
|
This functionality can be changed at runtime with the
|
||
|
dev.tty.ldisc_autoload sysctl, this configuration option will
|
||
|
only set the default value of this functionality.
|
||
|
|
||
|
source "drivers/tty/serial/Kconfig"
|
||
|
|
||
|
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
|
||
|
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 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
|
||
|
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_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 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 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
|
||
|
select SERIAL_CORE
|
||
|
select SERIAL_CORE_CONSOLE
|
||
|
help
|
||
|
Console and system TTY driver for the Goldfish virtual platform.
|
||
|
|
||
|
config GOLDFISH_TTY_EARLY_CONSOLE
|
||
|
bool
|
||
|
default y if GOLDFISH_TTY=y
|
||
|
select SERIAL_EARLYCON
|
||
|
|
||
|
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 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 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.
|
||
|
|
||
|
config NULL_TTY
|
||
|
tristate "NULL TTY driver"
|
||
|
help
|
||
|
Say Y here if you want a NULL TTY which simply discards messages.
|
||
|
|
||
|
This is useful to allow userspace applications which expect a console
|
||
|
device to work without modifications even when no console is
|
||
|
available or desired.
|
||
|
|
||
|
In order to use this driver, you should redirect the console to this
|
||
|
TTY, or boot the kernel with console=ttynull.
|
||
|
|
||
|
If unsure, say N.
|
||
|
|
||
|
config VCC
|
||
|
tristate "Sun Virtual Console Concentrator"
|
||
|
depends on SUN_LDOMS
|
||
|
help
|
||
|
Support for Sun logical domain consoles.
|
||
|
|
||
|
source "drivers/tty/hvc/Kconfig"
|
||
|
|
||
|
config RPMSG_TTY
|
||
|
tristate "RPMSG tty driver"
|
||
|
depends on RPMSG
|
||
|
help
|
||
|
Say y here to export rpmsg endpoints as tty devices, usually found
|
||
|
in /dev/ttyRPMSGx.
|
||
|
This makes it possible for user-space programs to send and receive
|
||
|
rpmsg messages as a standard tty protocol.
|
||
|
|
||
|
To compile this driver as a module, choose M here: the module will be
|
||
|
called rpmsg_tty.
|
||
|
|
||
|
endif # TTY
|
||
|
|
||
|
source "drivers/tty/serdev/Kconfig"
|