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