| # 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 | |
| depends on !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 | |
| ---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 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/driver-api/serial/rocket.rst>. | |
| 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/driver-api/serial/cyclades_z.rst>. | |
| 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 | |
| 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" | |
| 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 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 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 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 VCC | |
| tristate "Sun Virtual Console Concentrator" | |
| depends on SUN_LDOMS | |
| help | |
| Support for Sun logical domain consoles. | |
| 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. | |
| endif # TTY |