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