1# SPDX-License-Identifier: GPL-2.0 2config TTY 3 bool "Enable TTY" if EXPERT 4 default y 5 help 6 Allows you to remove TTY support which can save space, and 7 blocks features that require TTY from inclusion in the kernel. 8 TTY is required for any text terminals or serial port 9 communication. Most users should leave this enabled. 10 11if TTY 12 13config VT 14 bool "Virtual terminal" if EXPERT 15 select INPUT 16 default y if !UML 17 help 18 If you say Y here, you will get support for terminal devices with 19 display and keyboard devices. These are called "virtual" because you 20 can run several virtual terminals (also called virtual consoles) on 21 one physical terminal. This is rather useful, for example one 22 virtual terminal can collect system messages and warnings, another 23 one can be used for a text-mode user session, and a third could run 24 an X session, all in parallel. Switching between virtual terminals 25 is done with certain key combinations, usually Alt-<function key>. 26 27 The setterm command ("man setterm") can be used to change the 28 properties (such as colors or beeping) of a virtual terminal. The 29 man page console_codes(4) ("man console_codes") contains the special 30 character sequences that can be used to change those properties 31 directly. The fonts used on virtual terminals can be changed with 32 the setfont ("man setfont") command and the key bindings are defined 33 with the loadkeys ("man loadkeys") command. 34 35 You need at least one virtual terminal device in order to make use 36 of your keyboard and monitor. Therefore, only people configuring an 37 embedded system would want to say N here in order to save some 38 memory; the only way to log into such a system is then via a serial 39 or network connection. 40 41 If unsure, say Y, or else you won't be able to do much with your new 42 shiny Linux system :-) 43 44config CONSOLE_TRANSLATIONS 45 depends on VT 46 default y 47 bool "Enable character translations in console" if EXPERT 48 help 49 This enables support for font mapping and Unicode translation 50 on virtual consoles. 51 52config VT_CONSOLE 53 bool "Support for console on virtual terminal" if EXPERT 54 depends on VT 55 default y 56 help 57 The system console is the device which receives all kernel messages 58 and warnings and which allows logins in single user mode. If you 59 answer Y here, a virtual terminal (the device used to interact with 60 a physical terminal) can be used as system console. This is the most 61 common mode of operations, so you should say Y here unless you want 62 the kernel messages be output only to a serial port (in which case 63 you should say Y to "Console on serial port", below). 64 65 If you do say Y here, by default the currently visible virtual 66 terminal (/dev/tty0) will be used as system console. You can change 67 that with a kernel command line option such as "console=tty3" which 68 would use the third virtual terminal as system console. (Try "man 69 bootparam" or see the documentation of your boot loader (lilo or 70 loadlin) about how to pass options to the kernel at boot time.) 71 72 If unsure, say Y. 73 74config VT_CONSOLE_SLEEP 75 def_bool y 76 depends on VT_CONSOLE && PM_SLEEP 77 78config HW_CONSOLE 79 bool 80 depends on VT 81 default y 82 83config VT_HW_CONSOLE_BINDING 84 bool "Support for binding and unbinding console drivers" 85 depends on HW_CONSOLE 86 help 87 The virtual terminal is the device that interacts with the physical 88 terminal through console drivers. On these systems, at least one 89 console driver is loaded. In other configurations, additional console 90 drivers may be enabled, such as the framebuffer console. If more than 91 1 console driver is enabled, setting this to 'y' will allow you to 92 select the console driver that will serve as the backend for the 93 virtual terminals. 94 95 See <file:Documentation/driver-api/console.rst> for more 96 information. For framebuffer console users, please refer to 97 <file:Documentation/fb/fbcon.rst>. 98 99config UNIX98_PTYS 100 bool "Unix98 PTY support" if EXPERT 101 default y 102 help 103 A pseudo terminal (PTY) is a software device consisting of two 104 halves: a master and a slave. The slave device behaves identical to 105 a physical terminal; the master device is used by a process to 106 read data from and write data to the slave, thereby emulating a 107 terminal. Typical programs for the master side are telnet servers 108 and xterms. 109 110 Linux has traditionally used the BSD-like names /dev/ptyxx for 111 masters and /dev/ttyxx for slaves of pseudo terminals. This scheme 112 has a number of problems. The GNU C library glibc 2.1 and later, 113 however, supports the Unix98 naming standard: in order to acquire a 114 pseudo terminal, a process opens /dev/ptmx; the number of the pseudo 115 terminal is then made available to the process and the pseudo 116 terminal slave can be accessed as /dev/pts/<number>. What was 117 traditionally /dev/ttyp2 will then be /dev/pts/2, for example. 118 119 All modern Linux systems use the Unix98 ptys. Say Y unless 120 you're on an embedded system and want to conserve memory. 121 122config LEGACY_PTYS 123 bool "Legacy (BSD) PTY support" 124 default y 125 help 126 A pseudo terminal (PTY) is a software device consisting of two 127 halves: a master and a slave. The slave device behaves identical to 128 a physical terminal; the master device is used by a process to 129 read data from and write data to the slave, thereby emulating a 130 terminal. Typical programs for the master side are telnet servers 131 and xterms. 132 133 Linux has traditionally used the BSD-like names /dev/ptyxx 134 for masters and /dev/ttyxx for slaves of pseudo 135 terminals. This scheme has a number of problems, including 136 security. This option enables these legacy devices; on most 137 systems, it is safe to say N. 138 139config LEGACY_PTY_COUNT 140 int "Maximum number of legacy PTY in use" 141 depends on LEGACY_PTYS 142 range 0 256 143 default "256" 144 help 145 The maximum number of legacy PTYs that can be used at any one time. 146 The default is 256, and should be more than enough. Embedded 147 systems may want to reduce this to save memory. 148 149 When not in use, each legacy PTY occupies 12 bytes on 32-bit 150 architectures and 24 bytes on 64-bit architectures. 151 152config LDISC_AUTOLOAD 153 bool "Automatically load TTY Line Disciplines" 154 default y 155 help 156 Historically the kernel has always automatically loaded any 157 line discipline that is in a kernel module when a user asks 158 for it to be loaded with the TIOCSETD ioctl, or through other 159 means. This is not always the best thing to do on systems 160 where you know you will not be using some of the more 161 "ancient" line disciplines, so prevent the kernel from doing 162 this unless the request is coming from a process with the 163 CAP_SYS_MODULE permissions. 164 165 Say 'Y' here if you trust your userspace users to do the right 166 thing, or if you have only provided the line disciplines that 167 you know you will be using, or if you wish to continue to use 168 the traditional method of on-demand loading of these modules 169 by any user. 170 171 This functionality can be changed at runtime with the 172 dev.tty.ldisc_autoload sysctl, this configuration option will 173 only set the default value of this functionality. 174 175source "drivers/tty/serial/Kconfig" 176 177config SERIAL_NONSTANDARD 178 bool "Non-standard serial port support" 179 depends on HAS_IOMEM 180 help 181 Say Y here if you have any non-standard serial boards -- boards 182 which aren't supported using the standard "dumb" serial driver. 183 This includes intelligent serial boards such as 184 Digiboards, etc. These are usually used for systems that need many 185 serial ports because they serve many terminals or dial-in 186 connections. 187 188 Note that the answer to this question won't directly affect the 189 kernel: saying N will just cause the configurator to skip all 190 the questions about non-standard serial boards. 191 192 Most people can say N here. 193 194config MOXA_INTELLIO 195 tristate "Moxa Intellio support" 196 depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI) 197 select FW_LOADER 198 help 199 Say Y here if you have a Moxa Intellio multiport serial card. 200 201 To compile this driver as a module, choose M here: the 202 module will be called moxa. 203 204config MOXA_SMARTIO 205 tristate "Moxa SmartIO support v. 2.0" 206 depends on SERIAL_NONSTANDARD && PCI 207 help 208 Say Y here if you have a Moxa SmartIO multiport serial card and/or 209 want to help develop a new version of this driver. 210 211 This is upgraded (1.9.1) driver from original Moxa drivers with 212 changes finally resulting in PCI probing. 213 214 This driver can also be built as a module. The module will be called 215 mxser. If you want to do that, say M here. 216 217config SYNCLINK_GT 218 tristate "SyncLink GT/AC support" 219 depends on SERIAL_NONSTANDARD && PCI 220 help 221 Support for SyncLink GT and SyncLink AC families of 222 synchronous and asynchronous serial adapters 223 manufactured by Microgate Systems, Ltd. (www.microgate.com) 224 225config N_HDLC 226 tristate "HDLC line discipline support" 227 depends on SERIAL_NONSTANDARD 228 help 229 Allows synchronous HDLC communications with tty device drivers that 230 support synchronous HDLC such as the Microgate SyncLink adapter. 231 232 This driver can be built as a module ( = code which can be 233 inserted in and removed from the running kernel whenever you want). 234 The module will be called n_hdlc. If you want to do that, say M 235 here. 236 237config PPC_EPAPR_HV_BYTECHAN 238 bool "ePAPR hypervisor byte channel driver" 239 depends on PPC 240 select EPAPR_PARAVIRT 241 help 242 This driver creates /dev entries for each ePAPR hypervisor byte 243 channel, thereby allowing applications to communicate with byte 244 channels as if they were serial ports. 245 246config PPC_EARLY_DEBUG_EHV_BC 247 bool "Early console (udbg) support for ePAPR hypervisors" 248 depends on PPC_EPAPR_HV_BYTECHAN=y 249 help 250 Select this option to enable early console (a.k.a. "udbg") support 251 via an ePAPR byte channel. You also need to choose the byte channel 252 handle below. 253 254config PPC_EARLY_DEBUG_EHV_BC_HANDLE 255 int "Byte channel handle for early console (udbg)" 256 depends on PPC_EARLY_DEBUG_EHV_BC 257 default 0 258 help 259 If you want early console (udbg) output through a byte channel, 260 specify the handle of the byte channel to use. 261 262 For this to work, the byte channel driver must be compiled 263 in-kernel, not as a module. 264 265 Note that only one early console driver can be enabled, so don't 266 enable any others if you enable this one. 267 268 If the number you specify is not a valid byte channel handle, then 269 there simply will be no early console output. This is true also 270 if you don't boot under a hypervisor at all. 271 272config GOLDFISH_TTY 273 tristate "Goldfish TTY Driver" 274 depends on GOLDFISH 275 select SERIAL_CORE 276 select SERIAL_CORE_CONSOLE 277 help 278 Console and system TTY driver for the Goldfish virtual platform. 279 280config GOLDFISH_TTY_EARLY_CONSOLE 281 bool 282 default y if GOLDFISH_TTY=y 283 select SERIAL_EARLYCON 284 285config N_GSM 286 tristate "GSM MUX line discipline support (EXPERIMENTAL)" 287 depends on NET 288 help 289 This line discipline provides support for the GSM MUX protocol and 290 presents the mux as a set of 61 individual tty devices. 291 292config NOZOMI 293 tristate "HSDPA Broadband Wireless Data Card - Globe Trotter" 294 depends on PCI 295 help 296 If you have a HSDPA driver Broadband Wireless Data Card - 297 Globe Trotter PCMCIA card, say Y here. 298 299 To compile this driver as a module, choose M here, the module 300 will be called nozomi. 301 302config MIPS_EJTAG_FDC_TTY 303 bool "MIPS EJTAG Fast Debug Channel TTY" 304 depends on MIPS_CDMM 305 help 306 This enables a TTY and console on the MIPS EJTAG Fast Debug Channels, 307 if they are present. This can be useful when working with an EJTAG 308 probe which supports it, to get console output and a login prompt via 309 EJTAG without needing to connect a serial cable. 310 311 TTY devices are named e.g. ttyFDC3c2 (for FDC channel 2 of the FDC on 312 CPU3). 313 314 The console can be enabled with console=fdc1 (for FDC channel 1 on all 315 CPUs). Do not use the console unless there is a debug probe attached 316 to drain the FDC TX FIFO. 317 318 If unsure, say N. 319 320config MIPS_EJTAG_FDC_EARLYCON 321 bool "Early FDC console" 322 depends on MIPS_EJTAG_FDC_TTY 323 help 324 This registers a console on FDC channel 1 very early during boot (from 325 MIPS arch code). This is useful for bring-up and debugging early boot 326 issues. 327 328 Do not enable unless there is a debug probe attached to drain the FDC 329 TX FIFO. 330 331 If unsure, say N. 332 333config MIPS_EJTAG_FDC_KGDB 334 bool "Use KGDB over an FDC channel" 335 depends on MIPS_EJTAG_FDC_TTY && KGDB 336 default y 337 help 338 This enables the use of KGDB over an FDC channel, allowing KGDB to be 339 used remotely or when a serial port isn't available. 340 341config MIPS_EJTAG_FDC_KGDB_CHAN 342 int "KGDB FDC channel" 343 depends on MIPS_EJTAG_FDC_KGDB 344 range 2 15 345 default 3 346 help 347 FDC channel number to use for KGDB. 348 349config NULL_TTY 350 tristate "NULL TTY driver" 351 help 352 Say Y here if you want a NULL TTY which simply discards messages. 353 354 This is useful to allow userspace applications which expect a console 355 device to work without modifications even when no console is 356 available or desired. 357 358 In order to use this driver, you should redirect the console to this 359 TTY, or boot the kernel with console=ttynull. 360 361 If unsure, say N. 362 363config VCC 364 tristate "Sun Virtual Console Concentrator" 365 depends on SUN_LDOMS 366 help 367 Support for Sun logical domain consoles. 368 369source "drivers/tty/hvc/Kconfig" 370 371config RPMSG_TTY 372 tristate "RPMSG tty driver" 373 depends on RPMSG 374 help 375 Say y here to export rpmsg endpoints as tty devices, usually found 376 in /dev/ttyRPMSGx. 377 This makes it possible for user-space programs to send and receive 378 rpmsg messages as a standard tty protocol. 379 380 To compile this driver as a module, choose M here: the module will be 381 called rpmsg_tty. 382 383endif # TTY 384 385source "drivers/tty/serdev/Kconfig" 386