1 # SPDX-License-Identifier: GPL-2.0
3 menu "UML Character Devices"
9 console driver which dumps all printk messages to stderr.
12 bool "Virtual serial line"
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
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.
21 Unless you have a specific reason for disabling this, say Y.
24 bool "null channel support"
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.
31 bool "port channel support"
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.
41 bool "pty channel support"
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.
51 bool "tty channel support"
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.
60 bool "xterm channel support"
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
65 It is safe to say 'Y' here.
67 config XTERM_CHAN_DEFAULT_EMULATOR
68 string "xterm channel default terminal emulator"
72 This option allows changing the default terminal emulator.
76 default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN)
79 string "Default main console channel initialization"
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.
89 string "Default console channel initialization"
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.
101 string "Default serial line channel initialization"
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.
113 tristate "Sound support"
115 This option enables UML sound support. If enabled, it will pull in
116 soundcore and the UML hostaudio relay, which acts as a intermediary
117 between the host's dsp and mixer devices and the UML sound system.
118 It is safe to say 'Y' here.
124 config SOUND_OSS_CORE
134 menu "UML Network Devices"
139 bool "Virtual network device"
141 While the User-Mode port cannot directly talk to any physical
142 hardware devices, this choice and the following transport options
143 provide one or more virtual network devices through which the UML
144 kernels can talk to each other, the host, and with the host's help,
145 machines on the outside world.
147 For more information, including explanations of the networking and
148 sample configurations, see
149 <http://user-mode-linux.sourceforge.net/old/networking.html>.
151 If you'd like to be able to enable networking in the User-Mode
152 linux environment, say Y; otherwise say N. Note that you must
153 enable at least one of the following transport options to actually
154 make use of UML networking.
156 config UML_NET_ETHERTAP
157 bool "Ethertap transport (obsolete)"
160 The Ethertap User-Mode Linux network transport allows a single
161 running UML to exchange packets with its host over one of the
162 host's Ethertap devices, such as /dev/tap0. Additional running
163 UMLs can use additional Ethertap devices, one per running UML.
164 While the UML believes it's on a (multi-device, broadcast) virtual
165 Ethernet network, it's in fact communicating over a point-to-point
168 To use this, your host kernel must have support for Ethertap
169 devices. Also, if your host kernel is 2.4.x, it must have
170 CONFIG_NETLINK_DEV configured as Y or M.
172 For more information, see
173 <http://user-mode-linux.sourceforge.net/old/networking.html> That site
174 has examples of the UML command line to use to enable Ethertap
177 NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
178 migrate to UML_NET_VECTOR.
182 config UML_NET_TUNTAP
183 bool "TUN/TAP transport (obsolete)"
186 The UML TUN/TAP network transport allows a UML instance to exchange
187 packets with the host over a TUN/TAP device. This option will only
188 work with a 2.4 host, unless you've applied the TUN/TAP patch to
189 your 2.2 host kernel.
191 To use this transport, your host kernel must have support for TUN/TAP
192 devices, either built-in or as a module.
194 NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
195 migrate to UML_NET_VECTOR.
200 bool "SLIP transport (obsolete)"
203 The slip User-Mode Linux network transport allows a running UML to
204 network with its host over a point-to-point link. Unlike Ethertap,
205 which can carry any Ethernet frame (and hence even non-IP packets),
206 the slip transport can only carry IP packets.
208 To use this, your host must support slip devices.
210 For more information, see
211 <http://user-mode-linux.sourceforge.net/old/networking.html>.
212 has examples of the UML command line to use to enable slip
213 networking, and details of a few quirks with it.
215 NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
216 migrate to UML_NET_VECTOR.
220 config UML_NET_DAEMON
221 bool "Daemon transport (obsolete)"
224 This User-Mode Linux network transport allows one or more running
225 UMLs on a single host to communicate with each other, but not to
228 To use this form of networking, you'll need to run the UML
229 networking daemon on the host.
231 For more information, see
232 <http://user-mode-linux.sourceforge.net/old/networking.html> That site
233 has examples of the UML command line to use to enable Daemon
236 NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
237 migrate to UML_NET_VECTOR.
241 config UML_NET_DAEMON_DEFAULT_SOCK
242 string "Default socket for daemon transport"
243 default "/tmp/uml.ctl"
244 depends on UML_NET_DAEMON
246 This option allows setting the default socket for the daemon
247 transport, normally it defaults to /tmp/uml.ctl.
249 config UML_NET_VECTOR
250 bool "Vector I/O high performance network devices"
252 select MAY_HAVE_RUNTIME_DEPS
254 This User-Mode Linux network driver uses multi-message send
255 and receive functions. The host running the UML guest must have
256 a linux kernel version above 3.0 and a libc version > 2.13.
257 This driver provides tap, raw, gre and l2tpv3 network transports
258 with up to 4 times higher network throughput than the UML network
262 bool "VDE transport (obsolete)"
264 select MAY_HAVE_RUNTIME_DEPS
266 This User-Mode Linux network transport allows one or more running
267 UMLs on a single host to communicate with each other and also
268 with the rest of the world using Virtual Distributed Ethernet,
269 an improved fork of uml_switch.
271 You must have libvdeplug installed in order to build the vde
274 To use this form of networking, you will need to run vde_switch
277 For more information, see <http://wiki.virtualsquare.org/>
278 That site has a good overview of what VDE is and also examples
279 of the UML command line to use to enable VDE networking.
281 NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
282 migrate to UML_NET_VECTOR.
287 bool "Multicast transport (obsolete)"
290 This Multicast User-Mode Linux network transport allows multiple
291 UMLs (even ones running on different host machines!) to talk to
292 each other over a virtual ethernet network. However, it requires
293 at least one UML with one of the other transports to act as a
294 bridge if any of them need to be able to talk to their hosts or any
297 To use this, your host kernel(s) must support IP Multicasting.
299 For more information, see
300 <http://user-mode-linux.sourceforge.net/old/networking.html> That site
301 has examples of the UML command line to use to enable Multicast
302 networking, and notes about the security of this approach.
304 NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
305 migrate to UML_NET_VECTOR.
310 bool "pcap transport (obsolete)"
312 select MAY_HAVE_RUNTIME_DEPS
314 The pcap transport makes a pcap packet stream on the host look
315 like an ethernet device inside UML. This is useful for making
316 UML act as a network monitor for the host. You must have libcap
317 installed in order to build the pcap transport into UML.
319 For more information, see
320 <http://user-mode-linux.sourceforge.net/old/networking.html> That site
321 has examples of the UML command line to use to enable this option.
323 NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
324 migrate to UML_NET_VECTOR.
329 bool "SLiRP transport (obsolete)"
332 The SLiRP User-Mode Linux network transport allows a running UML
333 to network by invoking a program that can handle SLIP encapsulated
334 packets. This is commonly (but not limited to) the application
335 known as SLiRP, a program that can re-socket IP packets back onto
336 he host on which it is run. Only IP packets are supported,
337 unlike other network transports that can handle all Ethernet
338 frames. In general, slirp allows the UML the same IP connectivity
339 to the outside world that the host user is permitted, and unlike
340 other transports, SLiRP works without the need of root level
341 privileges, setuid binaries, or SLIP devices on the host. This
342 also means not every type of connection is possible, but most
343 situations can be accommodated with carefully crafted slirp
344 commands that can be passed along as part of the network device's
345 setup string. The effect of this transport on the UML is similar
346 that of a host behind a firewall that masquerades all network
347 connections passing through it (but is less secure).
349 NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please
350 migrate to UML_NET_VECTOR.
354 Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp"
359 bool "UML driver for virtio devices"
362 This driver provides support for virtio based paravirtual device
363 drivers over vhost-user sockets.
366 bool "UML RTC driver"
368 # there's no use in this if PM_SLEEP isn't enabled ...
371 When PM_SLEEP is configured, it may be desirable to wake up using
372 rtcwake, especially in time-travel mode. This driver enables that
373 by providing a fake RTC clock that causes a wakeup at the right
376 config UML_PCI_OVER_VIRTIO
377 bool "Enable PCI over VIRTIO device simulation"
378 # in theory, just VIRTIO is enough, but that causes recursion
379 depends on VIRTIO_UML
381 select UML_IOMEM_EMULATION
382 select UML_DMA_EMULATION
384 select PCI_MSI_IRQ_DOMAIN
385 select PCI_LOCKLESS_CONFIG
387 config UML_PCI_OVER_VIRTIO_DEVICE_ID
388 int "set the virtio device ID for PCI emulation"
390 depends on UML_PCI_OVER_VIRTIO
392 There's no official device ID assigned (yet), set the one you
393 wish to use for experimentation here. The default of -1 is
394 not valid and will cause the driver to fail at probe.