Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 config TTY
0003         bool "Enable TTY" if EXPERT
0004         default y
0005         help
0006           Allows you to remove TTY support which can save space, and
0007           blocks features that require TTY from inclusion in the kernel.
0008           TTY is required for any text terminals or serial port
0009           communication. Most users should leave this enabled.
0010 
0011 if TTY
0012 
0013 config VT
0014         bool "Virtual terminal" if EXPERT
0015         select INPUT
0016         default y if !UML
0017         help
0018           If you say Y here, you will get support for terminal devices with
0019           display and keyboard devices. These are called "virtual" because you
0020           can run several virtual terminals (also called virtual consoles) on
0021           one physical terminal. This is rather useful, for example one
0022           virtual terminal can collect system messages and warnings, another
0023           one can be used for a text-mode user session, and a third could run
0024           an X session, all in parallel. Switching between virtual terminals
0025           is done with certain key combinations, usually Alt-<function key>.
0026 
0027           The setterm command ("man setterm") can be used to change the
0028           properties (such as colors or beeping) of a virtual terminal. The
0029           man page console_codes(4) ("man console_codes") contains the special
0030           character sequences that can be used to change those properties
0031           directly. The fonts used on virtual terminals can be changed with
0032           the setfont ("man setfont") command and the key bindings are defined
0033           with the loadkeys ("man loadkeys") command.
0034 
0035           You need at least one virtual terminal device in order to make use
0036           of your keyboard and monitor. Therefore, only people configuring an
0037           embedded system would want to say N here in order to save some
0038           memory; the only way to log into such a system is then via a serial
0039           or network connection.
0040 
0041           If unsure, say Y, or else you won't be able to do much with your new
0042           shiny Linux system :-)
0043 
0044 config CONSOLE_TRANSLATIONS
0045         depends on VT
0046         default y
0047         bool "Enable character translations in console" if EXPERT
0048         help
0049           This enables support for font mapping and Unicode translation
0050           on virtual consoles.
0051 
0052 config VT_CONSOLE
0053         bool "Support for console on virtual terminal" if EXPERT
0054         depends on VT
0055         default y
0056         help
0057           The system console is the device which receives all kernel messages
0058           and warnings and which allows logins in single user mode. If you
0059           answer Y here, a virtual terminal (the device used to interact with
0060           a physical terminal) can be used as system console. This is the most
0061           common mode of operations, so you should say Y here unless you want
0062           the kernel messages be output only to a serial port (in which case
0063           you should say Y to "Console on serial port", below).
0064 
0065           If you do say Y here, by default the currently visible virtual
0066           terminal (/dev/tty0) will be used as system console. You can change
0067           that with a kernel command line option such as "console=tty3" which
0068           would use the third virtual terminal as system console. (Try "man
0069           bootparam" or see the documentation of your boot loader (lilo or
0070           loadlin) about how to pass options to the kernel at boot time.)
0071 
0072           If unsure, say Y.
0073 
0074 config VT_CONSOLE_SLEEP
0075         def_bool y
0076         depends on VT_CONSOLE && PM_SLEEP
0077 
0078 config HW_CONSOLE
0079         bool
0080         depends on VT
0081         default y
0082 
0083 config VT_HW_CONSOLE_BINDING
0084         bool "Support for binding and unbinding console drivers"
0085         depends on HW_CONSOLE
0086         help
0087           The virtual terminal is the device that interacts with the physical
0088           terminal through console drivers. On these systems, at least one
0089           console driver is loaded. In other configurations, additional console
0090           drivers may be enabled, such as the framebuffer console. If more than
0091           1 console driver is enabled, setting this to 'y' will allow you to
0092           select the console driver that will serve as the backend for the
0093           virtual terminals.
0094 
0095           See <file:Documentation/driver-api/console.rst> for more
0096           information. For framebuffer console users, please refer to
0097           <file:Documentation/fb/fbcon.rst>.
0098 
0099 config UNIX98_PTYS
0100         bool "Unix98 PTY support" if EXPERT
0101         default y
0102         help
0103           A pseudo terminal (PTY) is a software device consisting of two
0104           halves: a master and a slave. The slave device behaves identical to
0105           a physical terminal; the master device is used by a process to
0106           read data from and write data to the slave, thereby emulating a
0107           terminal. Typical programs for the master side are telnet servers
0108           and xterms.
0109 
0110           Linux has traditionally used the BSD-like names /dev/ptyxx for
0111           masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
0112           has a number of problems. The GNU C library glibc 2.1 and later,
0113           however, supports the Unix98 naming standard: in order to acquire a
0114           pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
0115           terminal is then made available to the process and the pseudo
0116           terminal slave can be accessed as /dev/pts/<number>. What was
0117           traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
0118 
0119           All modern Linux systems use the Unix98 ptys.  Say Y unless
0120           you're on an embedded system and want to conserve memory.
0121 
0122 config LEGACY_PTYS
0123         bool "Legacy (BSD) PTY support"
0124         default y
0125         help
0126           A pseudo terminal (PTY) is a software device consisting of two
0127           halves: a master and a slave. The slave device behaves identical to
0128           a physical terminal; the master device is used by a process to
0129           read data from and write data to the slave, thereby emulating a
0130           terminal. Typical programs for the master side are telnet servers
0131           and xterms.
0132 
0133           Linux has traditionally used the BSD-like names /dev/ptyxx
0134           for masters and /dev/ttyxx for slaves of pseudo
0135           terminals. This scheme has a number of problems, including
0136           security.  This option enables these legacy devices; on most
0137           systems, it is safe to say N.
0138 
0139 config LEGACY_PTY_COUNT
0140         int "Maximum number of legacy PTY in use"
0141         depends on LEGACY_PTYS
0142         range 0 256
0143         default "256"
0144         help
0145           The maximum number of legacy PTYs that can be used at any one time.
0146           The default is 256, and should be more than enough.  Embedded
0147           systems may want to reduce this to save memory.
0148 
0149           When not in use, each legacy PTY occupies 12 bytes on 32-bit
0150           architectures and 24 bytes on 64-bit architectures.
0151 
0152 config LDISC_AUTOLOAD
0153         bool "Automatically load TTY Line Disciplines"
0154         default y
0155         help
0156           Historically the kernel has always automatically loaded any
0157           line discipline that is in a kernel module when a user asks
0158           for it to be loaded with the TIOCSETD ioctl, or through other
0159           means.  This is not always the best thing to do on systems
0160           where you know you will not be using some of the more
0161           "ancient" line disciplines, so prevent the kernel from doing
0162           this unless the request is coming from a process with the
0163           CAP_SYS_MODULE permissions.
0164 
0165           Say 'Y' here if you trust your userspace users to do the right
0166           thing, or if you have only provided the line disciplines that
0167           you know you will be using, or if you wish to continue to use
0168           the traditional method of on-demand loading of these modules
0169           by any user.
0170 
0171           This functionality can be changed at runtime with the
0172           dev.tty.ldisc_autoload sysctl, this configuration option will
0173           only set the default value of this functionality.
0174 
0175 source "drivers/tty/serial/Kconfig"
0176 
0177 config SERIAL_NONSTANDARD
0178         bool "Non-standard serial port support"
0179         depends on HAS_IOMEM
0180         help
0181           Say Y here if you have any non-standard serial boards -- boards
0182           which aren't supported using the standard "dumb" serial driver.
0183           This includes intelligent serial boards such as
0184           Digiboards, etc. These are usually used for systems that need many
0185           serial ports because they serve many terminals or dial-in
0186           connections.
0187 
0188           Note that the answer to this question won't directly affect the
0189           kernel: saying N will just cause the configurator to skip all
0190           the questions about non-standard serial boards.
0191 
0192           Most people can say N here.
0193 
0194 config MOXA_INTELLIO
0195         tristate "Moxa Intellio support"
0196         depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI)
0197         select FW_LOADER
0198         help
0199           Say Y here if you have a Moxa Intellio multiport serial card.
0200 
0201           To compile this driver as a module, choose M here: the
0202           module will be called moxa.
0203 
0204 config MOXA_SMARTIO
0205         tristate "Moxa SmartIO support v. 2.0"
0206         depends on SERIAL_NONSTANDARD && PCI
0207         help
0208           Say Y here if you have a Moxa SmartIO multiport serial card and/or
0209           want to help develop a new version of this driver.
0210 
0211           This is upgraded (1.9.1) driver from original Moxa drivers with
0212           changes finally resulting in PCI probing.
0213 
0214           This driver can also be built as a module. The module will be called
0215           mxser. If you want to do that, say M here.
0216 
0217 config SYNCLINK_GT
0218         tristate "SyncLink GT/AC support"
0219         depends on SERIAL_NONSTANDARD && PCI
0220         help
0221           Support for SyncLink GT and SyncLink AC families of
0222           synchronous and asynchronous serial adapters
0223           manufactured by Microgate Systems, Ltd. (www.microgate.com)
0224 
0225 config N_HDLC
0226         tristate "HDLC line discipline support"
0227         depends on SERIAL_NONSTANDARD
0228         help
0229           Allows synchronous HDLC communications with tty device drivers that
0230           support synchronous HDLC such as the Microgate SyncLink adapter.
0231 
0232           This driver can be built as a module ( = code which can be
0233           inserted in and removed from the running kernel whenever you want).
0234           The module will be called n_hdlc. If you want to do that, say M
0235           here.
0236 
0237 config PPC_EPAPR_HV_BYTECHAN
0238         bool "ePAPR hypervisor byte channel driver"
0239         depends on PPC
0240         select EPAPR_PARAVIRT
0241         help
0242           This driver creates /dev entries for each ePAPR hypervisor byte
0243           channel, thereby allowing applications to communicate with byte
0244           channels as if they were serial ports.
0245 
0246 config PPC_EARLY_DEBUG_EHV_BC
0247         bool "Early console (udbg) support for ePAPR hypervisors"
0248         depends on PPC_EPAPR_HV_BYTECHAN=y
0249         help
0250           Select this option to enable early console (a.k.a. "udbg") support
0251           via an ePAPR byte channel.  You also need to choose the byte channel
0252           handle below.
0253 
0254 config PPC_EARLY_DEBUG_EHV_BC_HANDLE
0255         int "Byte channel handle for early console (udbg)"
0256         depends on PPC_EARLY_DEBUG_EHV_BC
0257         default 0
0258         help
0259           If you want early console (udbg) output through a byte channel,
0260           specify the handle of the byte channel to use.
0261 
0262           For this to work, the byte channel driver must be compiled
0263           in-kernel, not as a module.
0264 
0265           Note that only one early console driver can be enabled, so don't
0266           enable any others if you enable this one.
0267 
0268           If the number you specify is not a valid byte channel handle, then
0269           there simply will be no early console output.  This is true also
0270           if you don't boot under a hypervisor at all.
0271 
0272 config GOLDFISH_TTY
0273         tristate "Goldfish TTY Driver"
0274         depends on GOLDFISH
0275         select SERIAL_CORE
0276         select SERIAL_CORE_CONSOLE
0277         help
0278           Console and system TTY driver for the Goldfish virtual platform.
0279 
0280 config GOLDFISH_TTY_EARLY_CONSOLE
0281         bool
0282         default y if GOLDFISH_TTY=y
0283         select SERIAL_EARLYCON
0284 
0285 config N_GSM
0286         tristate "GSM MUX line discipline support (EXPERIMENTAL)"
0287         depends on NET
0288         help
0289           This line discipline provides support for the GSM MUX protocol and
0290           presents the mux as a set of 61 individual tty devices.
0291 
0292 config NOZOMI
0293         tristate "HSDPA Broadband Wireless Data Card - Globe Trotter"
0294         depends on PCI
0295         help
0296           If you have a HSDPA driver Broadband Wireless Data Card -
0297           Globe Trotter PCMCIA card, say Y here.
0298 
0299           To compile this driver as a module, choose M here, the module
0300           will be called nozomi.
0301 
0302 config MIPS_EJTAG_FDC_TTY
0303         bool "MIPS EJTAG Fast Debug Channel TTY"
0304         depends on MIPS_CDMM
0305         help
0306           This enables a TTY and console on the MIPS EJTAG Fast Debug Channels,
0307           if they are present. This can be useful when working with an EJTAG
0308           probe which supports it, to get console output and a login prompt via
0309           EJTAG without needing to connect a serial cable.
0310 
0311           TTY devices are named e.g. ttyFDC3c2 (for FDC channel 2 of the FDC on
0312           CPU3).
0313 
0314           The console can be enabled with console=fdc1 (for FDC channel 1 on all
0315           CPUs). Do not use the console unless there is a debug probe attached
0316           to drain the FDC TX FIFO.
0317 
0318           If unsure, say N.
0319 
0320 config MIPS_EJTAG_FDC_EARLYCON
0321         bool "Early FDC console"
0322         depends on MIPS_EJTAG_FDC_TTY
0323         help
0324           This registers a console on FDC channel 1 very early during boot (from
0325           MIPS arch code). This is useful for bring-up and debugging early boot
0326           issues.
0327 
0328           Do not enable unless there is a debug probe attached to drain the FDC
0329           TX FIFO.
0330 
0331           If unsure, say N.
0332 
0333 config MIPS_EJTAG_FDC_KGDB
0334         bool "Use KGDB over an FDC channel"
0335         depends on MIPS_EJTAG_FDC_TTY && KGDB
0336         default y
0337         help
0338           This enables the use of KGDB over an FDC channel, allowing KGDB to be
0339           used remotely or when a serial port isn't available.
0340 
0341 config MIPS_EJTAG_FDC_KGDB_CHAN
0342         int "KGDB FDC channel"
0343         depends on MIPS_EJTAG_FDC_KGDB
0344         range 2 15
0345         default 3
0346         help
0347           FDC channel number to use for KGDB.
0348 
0349 config NULL_TTY
0350         tristate "NULL TTY driver"
0351         help
0352           Say Y here if you want a NULL TTY which simply discards messages.
0353 
0354           This is useful to allow userspace applications which expect a console
0355           device to work without modifications even when no console is
0356           available or desired.
0357 
0358           In order to use this driver, you should redirect the console to this
0359           TTY, or boot the kernel with console=ttynull.
0360 
0361           If unsure, say N.
0362 
0363 config VCC
0364         tristate "Sun Virtual Console Concentrator"
0365         depends on SUN_LDOMS
0366         help
0367           Support for Sun logical domain consoles.
0368 
0369 source "drivers/tty/hvc/Kconfig"
0370 
0371 config RPMSG_TTY
0372         tristate "RPMSG tty driver"
0373         depends on RPMSG
0374         help
0375           Say y here to export rpmsg endpoints as tty devices, usually found
0376           in /dev/ttyRPMSGx.
0377           This makes it possible for user-space programs to send and receive
0378           rpmsg messages as a standard tty protocol.
0379 
0380           To compile this driver as a module, choose M here: the module will be
0381           called rpmsg_tty.
0382 
0383 endif # TTY
0384 
0385 source "drivers/tty/serdev/Kconfig"