GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / um / drivers / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 menu "UML Character Devices"
4
5 config STDERR_CONSOLE
6         bool "stderr console"
7         default y
8         help
9           console driver which dumps all printk messages to stderr.
10
11 config SSL
12         bool "Virtual serial line"
13         help
14           The User-Mode Linux environment allows you to create virtual serial
15           lines on the UML that are usually made to show up on the host as
16           ttys or ptys.
17
18           See <http://user-mode-linux.sourceforge.net/old/input.html> for more
19           information and command line examples of how to use this facility.
20
21           Unless you have a specific reason for disabling this, say Y.
22
23 config NULL_CHAN
24         bool "null channel support"
25         help
26           This option enables support for attaching UML consoles and serial
27           lines to a device similar to /dev/null.  Data written to it disappears
28           and there is never any data to be read.
29
30 config PORT_CHAN
31         bool "port channel support"
32         help
33           This option enables support for attaching UML consoles and serial
34           lines to host portals.  They may be accessed with 'telnet <host>
35           <port number>'.  Any number of consoles and serial lines may be
36           attached to a single portal, although what UML device you get when
37           you telnet to that portal will be unpredictable.
38           It is safe to say 'Y' here.
39
40 config PTY_CHAN
41         bool "pty channel support"
42         help
43           This option enables support for attaching UML consoles and serial
44           lines to host pseudo-terminals.  Access to both traditional
45           pseudo-terminals (/dev/pty*) and pts pseudo-terminals are controlled
46           with this option.  The assignment of UML devices to host devices
47           will be announced in the kernel message log.
48           It is safe to say 'Y' here.
49
50 config TTY_CHAN
51         bool "tty channel support"
52         help
53           This option enables support for attaching UML consoles and serial
54           lines to host terminals.  Access to both virtual consoles
55           (/dev/tty*) and the slave side of pseudo-terminals (/dev/ttyp* and
56           /dev/pts/*) are controlled by this option.
57           It is safe to say 'Y' here.
58
59 config XTERM_CHAN
60         bool "xterm channel support"
61         help
62           This option enables support for attaching UML consoles and serial
63           lines to xterms.  Each UML device so assigned will be brought up in
64           its own xterm.
65           It is safe to say 'Y' here.
66
67 config XTERM_CHAN_DEFAULT_EMULATOR
68         string "xterm channel default terminal emulator"
69         depends on XTERM_CHAN
70         default "xterm"
71         help
72           This option allows changing the default terminal emulator.
73
74 config NOCONFIG_CHAN
75         bool
76         default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN)
77
78 config CON_ZERO_CHAN
79         string "Default main console channel initialization"
80         default "fd:0,fd:1"
81         help
82           This is the string describing the channel to which the main console
83           will be attached by default.  This value can be overridden from the
84           command line.  The default value is "fd:0,fd:1", which attaches the
85           main console to stdin and stdout.
86           It is safe to leave this unchanged.
87
88 config CON_CHAN
89         string "Default console channel initialization"
90         default "xterm"
91         help
92           This is the string describing the channel to which all consoles
93           except the main console will be attached by default.  This value can
94           be overridden from the command line.  The default value is "xterm",
95           which brings them up in xterms.
96           It is safe to leave this unchanged, although you may wish to change
97           this if you expect the UML that you build to be run in environments
98           which don't have X or xterm available.
99
100 config SSL_CHAN
101         string "Default serial line channel initialization"
102         default "pty"
103         help
104           This is the string describing the channel to which the serial lines
105           will be attached by default.  This value can be overridden from the
106           command line.  The default value is "pty", which attaches them to
107           traditional pseudo-terminals.
108           It is safe to leave this unchanged, although you may wish to change
109           this if you expect the UML that you build to be run in environments
110           which don't have a set of /dev/pty* devices.
111
112 config UML_SOUND
113         tristate "Sound support"
114         depends on SOUND
115         select SOUND_OSS_CORE
116         help
117           This option enables UML sound support.  If enabled, it will pull in
118           the UML hostaudio relay, which acts as a intermediary
119           between the host's dsp and mixer devices and the UML sound system.
120           It is safe to say 'Y' here.
121
122 endmenu
123
124 menu "UML Network Devices"
125         depends on NET
126
127 # UML virtual driver
128 config UML_NET
129         bool "Virtual network device"
130         help
131           While the User-Mode port cannot directly talk to any physical
132           hardware devices, this choice and the following transport options
133           provide one or more virtual network devices through which the UML
134           kernels can talk to each other, the host, and with the host's help,
135           machines on the outside world.
136
137           For more information, including explanations of the networking and
138           sample configurations, see
139           <http://user-mode-linux.sourceforge.net/old/networking.html>.
140
141           If you'd like to be able to enable networking in the User-Mode
142           linux environment, say Y; otherwise say N.  Note that you must
143           enable at least one of the following transport options to actually
144           make use of UML networking.
145
146 config UML_NET_ETHERTAP
147         bool "Ethertap transport (obsolete)"
148         depends on UML_NET
149         help
150           The Ethertap User-Mode Linux network transport allows a single
151           running UML to exchange packets with its host over one of the
152           host's Ethertap devices, such as /dev/tap0.  Additional running
153           UMLs can use additional Ethertap devices, one per running UML.
154           While the UML believes it's on a (multi-device, broadcast) virtual
155           Ethernet network, it's in fact communicating over a point-to-point
156           link with the host.
157
158           To use this, your host kernel must have support for Ethertap
159           devices.  Also, if your host kernel is 2.4.x, it must have
160           CONFIG_NETLINK_DEV configured as Y or M.
161
162           For more information, see
163           <http://user-mode-linux.sourceforge.net/old/networking.html>  That site
164           has examples of the UML command line to use to enable Ethertap
165           networking.
166
167           NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
168           migrate to UML_NET_VECTOR.
169
170           If unsure, say N.
171
172 config UML_NET_TUNTAP
173         bool "TUN/TAP transport (obsolete)"
174         depends on UML_NET
175         help
176           The UML TUN/TAP network transport allows a UML instance to exchange
177           packets with the host over a TUN/TAP device.  This option will only
178           work with a 2.4 host, unless you've applied the TUN/TAP patch to
179           your 2.2 host kernel.
180
181           To use this transport, your host kernel must have support for TUN/TAP
182           devices, either built-in or as a module.
183
184           NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
185           migrate to UML_NET_VECTOR.
186
187           If unsure, say N.
188
189 config UML_NET_SLIP
190         bool "SLIP transport (obsolete)"
191         depends on UML_NET
192         help
193           The slip User-Mode Linux network transport allows a running UML to
194           network with its host over a point-to-point link.  Unlike Ethertap,
195           which can carry any Ethernet frame (and hence even non-IP packets),
196           the slip transport can only carry IP packets.
197
198           To use this, your host must support slip devices.
199
200           For more information, see
201           <http://user-mode-linux.sourceforge.net/old/networking.html>.
202           has examples of the UML command line to use to enable slip
203           networking, and details of a few quirks with it.
204
205           NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
206           migrate to UML_NET_VECTOR.
207
208           If unsure, say N.
209
210 config UML_NET_DAEMON
211         bool "Daemon transport (obsolete)"
212         depends on UML_NET
213         help
214           This User-Mode Linux network transport allows one or more running
215           UMLs on a single host to communicate with each other, but not to
216           the host.
217
218           To use this form of networking, you'll need to run the UML
219           networking daemon on the host.
220
221           For more information, see
222           <http://user-mode-linux.sourceforge.net/old/networking.html>  That site
223           has examples of the UML command line to use to enable Daemon
224           networking.
225
226           NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
227           migrate to UML_NET_VECTOR.
228
229           If unsure, say N.
230
231 config UML_NET_DAEMON_DEFAULT_SOCK
232         string "Default socket for daemon transport"
233         default "/tmp/uml.ctl"
234         depends on UML_NET_DAEMON
235         help
236           This option allows setting the default socket for the daemon
237           transport, normally it defaults to /tmp/uml.ctl.
238
239 config UML_NET_VECTOR
240         bool "Vector I/O high performance network devices"
241         depends on UML_NET
242         select MAY_HAVE_RUNTIME_DEPS
243         help
244           This User-Mode Linux network driver uses multi-message send
245           and receive functions. The host running the UML guest must have
246           a linux kernel version above 3.0 and a libc version > 2.13.
247           This driver provides tap, raw, gre and l2tpv3 network transports
248           with up to 4 times higher network throughput than the UML network
249           drivers.
250
251 config UML_NET_VDE
252         bool "VDE transport (obsolete)"
253         depends on UML_NET
254         select MAY_HAVE_RUNTIME_DEPS
255         help
256           This User-Mode Linux network transport allows one or more running
257           UMLs on a single host to communicate with each other and also
258           with the rest of the world using Virtual Distributed Ethernet,
259           an improved fork of uml_switch.
260
261           You must have libvdeplug installed in order to build the vde
262           transport into UML.
263
264           To use this form of networking, you will need to run vde_switch
265           on the host.
266
267           For more information, see <http://wiki.virtualsquare.org/>
268           That site has a good overview of what VDE is and also examples
269           of the UML command line to use to enable VDE networking.
270
271           NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
272           migrate to UML_NET_VECTOR.
273
274           If unsure, say N.
275
276 config UML_NET_MCAST
277         bool "Multicast transport (obsolete)"
278         depends on UML_NET
279         help
280           This Multicast User-Mode Linux network transport allows multiple
281           UMLs (even ones running on different host machines!) to talk to
282           each other over a virtual ethernet network.  However, it requires
283           at least one UML with one of the other transports to act as a
284           bridge if any of them need to be able to talk to their hosts or any
285           other IP machines.
286
287           To use this, your host kernel(s) must support IP Multicasting.
288
289           For more information, see
290           <http://user-mode-linux.sourceforge.net/old/networking.html>  That site
291           has examples of the UML command line to use to enable Multicast
292           networking, and notes about the security of this approach.
293
294           NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
295           migrate to UML_NET_VECTOR.
296
297           If unsure, say N.
298
299 config UML_NET_PCAP
300         bool "pcap transport (obsolete)"
301         depends on UML_NET
302         select MAY_HAVE_RUNTIME_DEPS
303         help
304           The pcap transport makes a pcap packet stream on the host look
305           like an ethernet device inside UML.  This is useful for making
306           UML act as a network monitor for the host.  You must have libcap
307           installed in order to build the pcap transport into UML.
308
309           For more information, see
310           <http://user-mode-linux.sourceforge.net/old/networking.html>  That site
311           has examples of the UML command line to use to enable this option.
312
313           NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
314           migrate to UML_NET_VECTOR.
315
316           If unsure, say N.
317
318 config UML_NET_SLIRP
319         bool "SLiRP transport (obsolete)"
320         depends on UML_NET
321         help
322           The SLiRP User-Mode Linux network transport allows a running UML
323           to network by invoking a program that can handle SLIP encapsulated
324           packets.  This is commonly (but not limited to) the application
325           known as SLiRP, a program that can re-socket IP packets back onto
326           he host on which it is run.  Only IP packets are supported,
327           unlike other network transports that can handle all Ethernet
328           frames.  In general, slirp allows the UML the same IP connectivity
329           to the outside world that the host user is permitted, and unlike
330           other transports, SLiRP works without the need of root level
331           privileges, setuid binaries, or SLIP devices on the host.  This
332           also means not every type of connection is possible, but most
333           situations can be accommodated with carefully crafted slirp
334           commands that can be passed along as part of the network device's
335           setup string.  The effect of this transport on the UML is similar
336           that of a host behind a firewall that masquerades all network
337           connections passing through it (but is less secure).
338
339           NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
340           migrate to UML_NET_VECTOR.
341
342           If unsure, say N.
343
344           Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp"
345
346 endmenu
347
348 config VIRTIO_UML
349         bool "UML driver for virtio devices"
350         select VIRTIO
351         help
352           This driver provides support for virtio based paravirtual device
353           drivers over vhost-user sockets.
354
355 config UML_RTC
356         bool "UML RTC driver"
357         depends on RTC_CLASS
358         # there's no use in this if PM_SLEEP isn't enabled ...
359         depends on PM_SLEEP
360         help
361           When PM_SLEEP is configured, it may be desirable to wake up using
362           rtcwake, especially in time-travel mode. This driver enables that
363           by providing a fake RTC clock that causes a wakeup at the right
364           time.
365
366 config UML_PCI_OVER_VIRTIO
367         bool "Enable PCI over VIRTIO device simulation"
368         # in theory, just VIRTIO is enough, but that causes recursion
369         depends on VIRTIO_UML
370         select FORCE_PCI
371         select UML_IOMEM_EMULATION
372         select UML_DMA_EMULATION
373         select PCI_MSI
374         select PCI_MSI_IRQ_DOMAIN
375         select PCI_LOCKLESS_CONFIG
376
377 config UML_PCI_OVER_VIRTIO_DEVICE_ID
378         int "set the virtio device ID for PCI emulation"
379         default -1
380         depends on UML_PCI_OVER_VIRTIO
381         help
382           There's no official device ID assigned (yet), set the one you
383           wish to use for experimentation here. The default of -1 is
384           not valid and will cause the driver to fail at probe.