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