xref: /linux/drivers/tty/Kconfig (revision bdcffc5a1a28b566a38a4b0d5bcefc78a97f4ecb)
1*bdcffc5aSGreg Kroah-Hartmanconfig VT
2*bdcffc5aSGreg Kroah-Hartman	bool "Virtual terminal" if EXPERT
3*bdcffc5aSGreg Kroah-Hartman	depends on !S390
4*bdcffc5aSGreg Kroah-Hartman	select INPUT
5*bdcffc5aSGreg Kroah-Hartman	default y
6*bdcffc5aSGreg Kroah-Hartman	---help---
7*bdcffc5aSGreg Kroah-Hartman	  If you say Y here, you will get support for terminal devices with
8*bdcffc5aSGreg Kroah-Hartman	  display and keyboard devices. These are called "virtual" because you
9*bdcffc5aSGreg Kroah-Hartman	  can run several virtual terminals (also called virtual consoles) on
10*bdcffc5aSGreg Kroah-Hartman	  one physical terminal. This is rather useful, for example one
11*bdcffc5aSGreg Kroah-Hartman	  virtual terminal can collect system messages and warnings, another
12*bdcffc5aSGreg Kroah-Hartman	  one can be used for a text-mode user session, and a third could run
13*bdcffc5aSGreg Kroah-Hartman	  an X session, all in parallel. Switching between virtual terminals
14*bdcffc5aSGreg Kroah-Hartman	  is done with certain key combinations, usually Alt-<function key>.
15*bdcffc5aSGreg Kroah-Hartman
16*bdcffc5aSGreg Kroah-Hartman	  The setterm command ("man setterm") can be used to change the
17*bdcffc5aSGreg Kroah-Hartman	  properties (such as colors or beeping) of a virtual terminal. The
18*bdcffc5aSGreg Kroah-Hartman	  man page console_codes(4) ("man console_codes") contains the special
19*bdcffc5aSGreg Kroah-Hartman	  character sequences that can be used to change those properties
20*bdcffc5aSGreg Kroah-Hartman	  directly. The fonts used on virtual terminals can be changed with
21*bdcffc5aSGreg Kroah-Hartman	  the setfont ("man setfont") command and the key bindings are defined
22*bdcffc5aSGreg Kroah-Hartman	  with the loadkeys ("man loadkeys") command.
23*bdcffc5aSGreg Kroah-Hartman
24*bdcffc5aSGreg Kroah-Hartman	  You need at least one virtual terminal device in order to make use
25*bdcffc5aSGreg Kroah-Hartman	  of your keyboard and monitor. Therefore, only people configuring an
26*bdcffc5aSGreg Kroah-Hartman	  embedded system would want to say N here in order to save some
27*bdcffc5aSGreg Kroah-Hartman	  memory; the only way to log into such a system is then via a serial
28*bdcffc5aSGreg Kroah-Hartman	  or network connection.
29*bdcffc5aSGreg Kroah-Hartman
30*bdcffc5aSGreg Kroah-Hartman	  If unsure, say Y, or else you won't be able to do much with your new
31*bdcffc5aSGreg Kroah-Hartman	  shiny Linux system :-)
32*bdcffc5aSGreg Kroah-Hartman
33*bdcffc5aSGreg Kroah-Hartmanconfig CONSOLE_TRANSLATIONS
34*bdcffc5aSGreg Kroah-Hartman	depends on VT
35*bdcffc5aSGreg Kroah-Hartman	default y
36*bdcffc5aSGreg Kroah-Hartman	bool "Enable character translations in console" if EXPERT
37*bdcffc5aSGreg Kroah-Hartman	---help---
38*bdcffc5aSGreg Kroah-Hartman	  This enables support for font mapping and Unicode translation
39*bdcffc5aSGreg Kroah-Hartman	  on virtual consoles.
40*bdcffc5aSGreg Kroah-Hartman
41*bdcffc5aSGreg Kroah-Hartmanconfig VT_CONSOLE
42*bdcffc5aSGreg Kroah-Hartman	bool "Support for console on virtual terminal" if EXPERT
43*bdcffc5aSGreg Kroah-Hartman	depends on VT
44*bdcffc5aSGreg Kroah-Hartman	default y
45*bdcffc5aSGreg Kroah-Hartman	---help---
46*bdcffc5aSGreg Kroah-Hartman	  The system console is the device which receives all kernel messages
47*bdcffc5aSGreg Kroah-Hartman	  and warnings and which allows logins in single user mode. If you
48*bdcffc5aSGreg Kroah-Hartman	  answer Y here, a virtual terminal (the device used to interact with
49*bdcffc5aSGreg Kroah-Hartman	  a physical terminal) can be used as system console. This is the most
50*bdcffc5aSGreg Kroah-Hartman	  common mode of operations, so you should say Y here unless you want
51*bdcffc5aSGreg Kroah-Hartman	  the kernel messages be output only to a serial port (in which case
52*bdcffc5aSGreg Kroah-Hartman	  you should say Y to "Console on serial port", below).
53*bdcffc5aSGreg Kroah-Hartman
54*bdcffc5aSGreg Kroah-Hartman	  If you do say Y here, by default the currently visible virtual
55*bdcffc5aSGreg Kroah-Hartman	  terminal (/dev/tty0) will be used as system console. You can change
56*bdcffc5aSGreg Kroah-Hartman	  that with a kernel command line option such as "console=tty3" which
57*bdcffc5aSGreg Kroah-Hartman	  would use the third virtual terminal as system console. (Try "man
58*bdcffc5aSGreg Kroah-Hartman	  bootparam" or see the documentation of your boot loader (lilo or
59*bdcffc5aSGreg Kroah-Hartman	  loadlin) about how to pass options to the kernel at boot time.)
60*bdcffc5aSGreg Kroah-Hartman
61*bdcffc5aSGreg Kroah-Hartman	  If unsure, say Y.
62*bdcffc5aSGreg Kroah-Hartman
63*bdcffc5aSGreg Kroah-Hartmanconfig HW_CONSOLE
64*bdcffc5aSGreg Kroah-Hartman	bool
65*bdcffc5aSGreg Kroah-Hartman	depends on VT && !S390 && !UML
66*bdcffc5aSGreg Kroah-Hartman	default y
67*bdcffc5aSGreg Kroah-Hartman
68*bdcffc5aSGreg Kroah-Hartmanconfig VT_HW_CONSOLE_BINDING
69*bdcffc5aSGreg Kroah-Hartman       bool "Support for binding and unbinding console drivers"
70*bdcffc5aSGreg Kroah-Hartman       depends on HW_CONSOLE
71*bdcffc5aSGreg Kroah-Hartman       default n
72*bdcffc5aSGreg Kroah-Hartman       ---help---
73*bdcffc5aSGreg Kroah-Hartman         The virtual terminal is the device that interacts with the physical
74*bdcffc5aSGreg Kroah-Hartman         terminal through console drivers. On these systems, at least one
75*bdcffc5aSGreg Kroah-Hartman         console driver is loaded. In other configurations, additional console
76*bdcffc5aSGreg Kroah-Hartman         drivers may be enabled, such as the framebuffer console. If more than
77*bdcffc5aSGreg Kroah-Hartman         1 console driver is enabled, setting this to 'y' will allow you to
78*bdcffc5aSGreg Kroah-Hartman         select the console driver that will serve as the backend for the
79*bdcffc5aSGreg Kroah-Hartman         virtual terminals.
80*bdcffc5aSGreg Kroah-Hartman
81*bdcffc5aSGreg Kroah-Hartman	 See <file:Documentation/console/console.txt> for more
82*bdcffc5aSGreg Kroah-Hartman	 information. For framebuffer console users, please refer to
83*bdcffc5aSGreg Kroah-Hartman	 <file:Documentation/fb/fbcon.txt>.
84*bdcffc5aSGreg Kroah-Hartman
85*bdcffc5aSGreg Kroah-Hartmanconfig UNIX98_PTYS
86*bdcffc5aSGreg Kroah-Hartman	bool "Unix98 PTY support" if EXPERT
87*bdcffc5aSGreg Kroah-Hartman	default y
88*bdcffc5aSGreg Kroah-Hartman	---help---
89*bdcffc5aSGreg Kroah-Hartman	  A pseudo terminal (PTY) is a software device consisting of two
90*bdcffc5aSGreg Kroah-Hartman	  halves: a master and a slave. The slave device behaves identical to
91*bdcffc5aSGreg Kroah-Hartman	  a physical terminal; the master device is used by a process to
92*bdcffc5aSGreg Kroah-Hartman	  read data from and write data to the slave, thereby emulating a
93*bdcffc5aSGreg Kroah-Hartman	  terminal. Typical programs for the master side are telnet servers
94*bdcffc5aSGreg Kroah-Hartman	  and xterms.
95*bdcffc5aSGreg Kroah-Hartman
96*bdcffc5aSGreg Kroah-Hartman	  Linux has traditionally used the BSD-like names /dev/ptyxx for
97*bdcffc5aSGreg Kroah-Hartman	  masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
98*bdcffc5aSGreg Kroah-Hartman	  has a number of problems. The GNU C library glibc 2.1 and later,
99*bdcffc5aSGreg Kroah-Hartman	  however, supports the Unix98 naming standard: in order to acquire a
100*bdcffc5aSGreg Kroah-Hartman	  pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
101*bdcffc5aSGreg Kroah-Hartman	  terminal is then made available to the process and the pseudo
102*bdcffc5aSGreg Kroah-Hartman	  terminal slave can be accessed as /dev/pts/<number>. What was
103*bdcffc5aSGreg Kroah-Hartman	  traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
104*bdcffc5aSGreg Kroah-Hartman
105*bdcffc5aSGreg Kroah-Hartman	  All modern Linux systems use the Unix98 ptys.  Say Y unless
106*bdcffc5aSGreg Kroah-Hartman	  you're on an embedded system and want to conserve memory.
107*bdcffc5aSGreg Kroah-Hartman
108*bdcffc5aSGreg Kroah-Hartmanconfig DEVPTS_MULTIPLE_INSTANCES
109*bdcffc5aSGreg Kroah-Hartman	bool "Support multiple instances of devpts"
110*bdcffc5aSGreg Kroah-Hartman	depends on UNIX98_PTYS
111*bdcffc5aSGreg Kroah-Hartman	default n
112*bdcffc5aSGreg Kroah-Hartman	---help---
113*bdcffc5aSGreg Kroah-Hartman	  Enable support for multiple instances of devpts filesystem.
114*bdcffc5aSGreg Kroah-Hartman	  If you want to have isolated PTY namespaces (eg: in containers),
115*bdcffc5aSGreg Kroah-Hartman	  say Y here.  Otherwise, say N. If enabled, each mount of devpts
116*bdcffc5aSGreg Kroah-Hartman	  filesystem with the '-o newinstance' option will create an
117*bdcffc5aSGreg Kroah-Hartman	  independent PTY namespace.
118*bdcffc5aSGreg Kroah-Hartman
119*bdcffc5aSGreg Kroah-Hartmanconfig LEGACY_PTYS
120*bdcffc5aSGreg Kroah-Hartman	bool "Legacy (BSD) PTY support"
121*bdcffc5aSGreg Kroah-Hartman	default y
122*bdcffc5aSGreg Kroah-Hartman	---help---
123*bdcffc5aSGreg Kroah-Hartman	  A pseudo terminal (PTY) is a software device consisting of two
124*bdcffc5aSGreg Kroah-Hartman	  halves: a master and a slave. The slave device behaves identical to
125*bdcffc5aSGreg Kroah-Hartman	  a physical terminal; the master device is used by a process to
126*bdcffc5aSGreg Kroah-Hartman	  read data from and write data to the slave, thereby emulating a
127*bdcffc5aSGreg Kroah-Hartman	  terminal. Typical programs for the master side are telnet servers
128*bdcffc5aSGreg Kroah-Hartman	  and xterms.
129*bdcffc5aSGreg Kroah-Hartman
130*bdcffc5aSGreg Kroah-Hartman	  Linux has traditionally used the BSD-like names /dev/ptyxx
131*bdcffc5aSGreg Kroah-Hartman	  for masters and /dev/ttyxx for slaves of pseudo
132*bdcffc5aSGreg Kroah-Hartman	  terminals. This scheme has a number of problems, including
133*bdcffc5aSGreg Kroah-Hartman	  security.  This option enables these legacy devices; on most
134*bdcffc5aSGreg Kroah-Hartman	  systems, it is safe to say N.
135*bdcffc5aSGreg Kroah-Hartman
136*bdcffc5aSGreg Kroah-Hartman
137*bdcffc5aSGreg Kroah-Hartmanconfig LEGACY_PTY_COUNT
138*bdcffc5aSGreg Kroah-Hartman	int "Maximum number of legacy PTY in use"
139*bdcffc5aSGreg Kroah-Hartman	depends on LEGACY_PTYS
140*bdcffc5aSGreg Kroah-Hartman	range 0 256
141*bdcffc5aSGreg Kroah-Hartman	default "256"
142*bdcffc5aSGreg Kroah-Hartman	---help---
143*bdcffc5aSGreg Kroah-Hartman	  The maximum number of legacy PTYs that can be used at any one time.
144*bdcffc5aSGreg Kroah-Hartman	  The default is 256, and should be more than enough.  Embedded
145*bdcffc5aSGreg Kroah-Hartman	  systems may want to reduce this to save memory.
146*bdcffc5aSGreg Kroah-Hartman
147*bdcffc5aSGreg Kroah-Hartman	  When not in use, each legacy PTY occupies 12 bytes on 32-bit
148*bdcffc5aSGreg Kroah-Hartman	  architectures and 24 bytes on 64-bit architectures.
149*bdcffc5aSGreg Kroah-Hartman
150*bdcffc5aSGreg Kroah-Hartman
151