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