xref: /linux/drivers/tty/Kconfig (revision 38c91d1d55fe842bf7edde4469e812b34a711cd8)
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