19bea1801SChristoph Hellwig# SPDX-License-Identifier: GPL-2.0 29bea1801SChristoph Hellwig 39bea1801SChristoph Hellwigmenu "UML Character Devices" 49bea1801SChristoph Hellwig 59bea1801SChristoph Hellwigconfig STDERR_CONSOLE 69bea1801SChristoph Hellwig bool "stderr console" 79bea1801SChristoph Hellwig default y 89bea1801SChristoph Hellwig help 99bea1801SChristoph Hellwig console driver which dumps all printk messages to stderr. 109bea1801SChristoph Hellwig 119bea1801SChristoph Hellwigconfig SSL 129bea1801SChristoph Hellwig bool "Virtual serial line" 139bea1801SChristoph Hellwig help 149bea1801SChristoph Hellwig The User-Mode Linux environment allows you to create virtual serial 159bea1801SChristoph Hellwig lines on the UML that are usually made to show up on the host as 169bea1801SChristoph Hellwig ttys or ptys. 179bea1801SChristoph Hellwig 189bea1801SChristoph Hellwig See <http://user-mode-linux.sourceforge.net/old/input.html> for more 199bea1801SChristoph Hellwig information and command line examples of how to use this facility. 209bea1801SChristoph Hellwig 219bea1801SChristoph Hellwig Unless you have a specific reason for disabling this, say Y. 229bea1801SChristoph Hellwig 239bea1801SChristoph Hellwigconfig NULL_CHAN 249bea1801SChristoph Hellwig bool "null channel support" 259bea1801SChristoph Hellwig help 269bea1801SChristoph Hellwig This option enables support for attaching UML consoles and serial 279bea1801SChristoph Hellwig lines to a device similar to /dev/null. Data written to it disappears 289bea1801SChristoph Hellwig and there is never any data to be read. 299bea1801SChristoph Hellwig 309bea1801SChristoph Hellwigconfig PORT_CHAN 319bea1801SChristoph Hellwig bool "port channel support" 329bea1801SChristoph Hellwig help 339bea1801SChristoph Hellwig This option enables support for attaching UML consoles and serial 349bea1801SChristoph Hellwig lines to host portals. They may be accessed with 'telnet <host> 359bea1801SChristoph Hellwig <port number>'. Any number of consoles and serial lines may be 369bea1801SChristoph Hellwig attached to a single portal, although what UML device you get when 379bea1801SChristoph Hellwig you telnet to that portal will be unpredictable. 389bea1801SChristoph Hellwig It is safe to say 'Y' here. 399bea1801SChristoph Hellwig 409bea1801SChristoph Hellwigconfig PTY_CHAN 419bea1801SChristoph Hellwig bool "pty channel support" 429bea1801SChristoph Hellwig help 439bea1801SChristoph Hellwig This option enables support for attaching UML consoles and serial 449bea1801SChristoph Hellwig lines to host pseudo-terminals. Access to both traditional 459bea1801SChristoph Hellwig pseudo-terminals (/dev/pty*) and pts pseudo-terminals are controlled 469bea1801SChristoph Hellwig with this option. The assignment of UML devices to host devices 479bea1801SChristoph Hellwig will be announced in the kernel message log. 489bea1801SChristoph Hellwig It is safe to say 'Y' here. 499bea1801SChristoph Hellwig 509bea1801SChristoph Hellwigconfig TTY_CHAN 519bea1801SChristoph Hellwig bool "tty channel support" 529bea1801SChristoph Hellwig help 539bea1801SChristoph Hellwig This option enables support for attaching UML consoles and serial 549bea1801SChristoph Hellwig lines to host terminals. Access to both virtual consoles 559bea1801SChristoph Hellwig (/dev/tty*) and the slave side of pseudo-terminals (/dev/ttyp* and 569bea1801SChristoph Hellwig /dev/pts/*) are controlled by this option. 579bea1801SChristoph Hellwig It is safe to say 'Y' here. 589bea1801SChristoph Hellwig 599bea1801SChristoph Hellwigconfig XTERM_CHAN 609bea1801SChristoph Hellwig bool "xterm channel support" 619bea1801SChristoph Hellwig help 629bea1801SChristoph Hellwig This option enables support for attaching UML consoles and serial 639bea1801SChristoph Hellwig lines to xterms. Each UML device so assigned will be brought up in 649bea1801SChristoph Hellwig its own xterm. 659bea1801SChristoph Hellwig It is safe to say 'Y' here. 669bea1801SChristoph Hellwig 679bea1801SChristoph Hellwigconfig NOCONFIG_CHAN 689bea1801SChristoph Hellwig bool 699bea1801SChristoph Hellwig default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN) 709bea1801SChristoph Hellwig 719bea1801SChristoph Hellwigconfig CON_ZERO_CHAN 729bea1801SChristoph Hellwig string "Default main console channel initialization" 739bea1801SChristoph Hellwig default "fd:0,fd:1" 749bea1801SChristoph Hellwig help 759bea1801SChristoph Hellwig This is the string describing the channel to which the main console 769bea1801SChristoph Hellwig will be attached by default. This value can be overridden from the 779bea1801SChristoph Hellwig command line. The default value is "fd:0,fd:1", which attaches the 789bea1801SChristoph Hellwig main console to stdin and stdout. 799bea1801SChristoph Hellwig It is safe to leave this unchanged. 809bea1801SChristoph Hellwig 819bea1801SChristoph Hellwigconfig CON_CHAN 829bea1801SChristoph Hellwig string "Default console channel initialization" 839bea1801SChristoph Hellwig default "xterm" 849bea1801SChristoph Hellwig help 859bea1801SChristoph Hellwig This is the string describing the channel to which all consoles 869bea1801SChristoph Hellwig except the main console will be attached by default. This value can 879bea1801SChristoph Hellwig be overridden from the command line. The default value is "xterm", 889bea1801SChristoph Hellwig which brings them up in xterms. 899bea1801SChristoph Hellwig It is safe to leave this unchanged, although you may wish to change 909bea1801SChristoph Hellwig this if you expect the UML that you build to be run in environments 919bea1801SChristoph Hellwig which don't have X or xterm available. 929bea1801SChristoph Hellwig 939bea1801SChristoph Hellwigconfig SSL_CHAN 949bea1801SChristoph Hellwig string "Default serial line channel initialization" 959bea1801SChristoph Hellwig default "pty" 969bea1801SChristoph Hellwig help 979bea1801SChristoph Hellwig This is the string describing the channel to which the serial lines 989bea1801SChristoph Hellwig will be attached by default. This value can be overridden from the 999bea1801SChristoph Hellwig command line. The default value is "pty", which attaches them to 1009bea1801SChristoph Hellwig traditional pseudo-terminals. 1019bea1801SChristoph Hellwig It is safe to leave this unchanged, although you may wish to change 1029bea1801SChristoph Hellwig this if you expect the UML that you build to be run in environments 1039bea1801SChristoph Hellwig which don't have a set of /dev/pty* devices. 1049bea1801SChristoph Hellwig 1059bea1801SChristoph Hellwigconfig UML_SOUND 1069bea1801SChristoph Hellwig tristate "Sound support" 1079bea1801SChristoph Hellwig help 1089bea1801SChristoph Hellwig This option enables UML sound support. If enabled, it will pull in 1099bea1801SChristoph Hellwig soundcore and the UML hostaudio relay, which acts as a intermediary 1109bea1801SChristoph Hellwig between the host's dsp and mixer devices and the UML sound system. 1119bea1801SChristoph Hellwig It is safe to say 'Y' here. 1129bea1801SChristoph Hellwig 1139bea1801SChristoph Hellwigconfig SOUND 1149bea1801SChristoph Hellwig tristate 1159bea1801SChristoph Hellwig default UML_SOUND 1169bea1801SChristoph Hellwig 1179bea1801SChristoph Hellwigconfig SOUND_OSS_CORE 1189bea1801SChristoph Hellwig bool 1199bea1801SChristoph Hellwig default UML_SOUND 1209bea1801SChristoph Hellwig 1219bea1801SChristoph Hellwigconfig HOSTAUDIO 1229bea1801SChristoph Hellwig tristate 1239bea1801SChristoph Hellwig default UML_SOUND 1249bea1801SChristoph Hellwig 1259bea1801SChristoph Hellwigendmenu 1269bea1801SChristoph Hellwig 1279bea1801SChristoph Hellwigmenu "UML Network Devices" 1289bea1801SChristoph Hellwig depends on NET 1299bea1801SChristoph Hellwig 1309bea1801SChristoph Hellwig# UML virtual driver 1319bea1801SChristoph Hellwigconfig UML_NET 1329bea1801SChristoph Hellwig bool "Virtual network device" 1339bea1801SChristoph Hellwig help 1349bea1801SChristoph Hellwig While the User-Mode port cannot directly talk to any physical 1359bea1801SChristoph Hellwig hardware devices, this choice and the following transport options 1369bea1801SChristoph Hellwig provide one or more virtual network devices through which the UML 1379bea1801SChristoph Hellwig kernels can talk to each other, the host, and with the host's help, 1389bea1801SChristoph Hellwig machines on the outside world. 1399bea1801SChristoph Hellwig 1409bea1801SChristoph Hellwig For more information, including explanations of the networking and 1419bea1801SChristoph Hellwig sample configurations, see 1429bea1801SChristoph Hellwig <http://user-mode-linux.sourceforge.net/old/networking.html>. 1439bea1801SChristoph Hellwig 1449bea1801SChristoph Hellwig If you'd like to be able to enable networking in the User-Mode 1459bea1801SChristoph Hellwig linux environment, say Y; otherwise say N. Note that you must 1469bea1801SChristoph Hellwig enable at least one of the following transport options to actually 1479bea1801SChristoph Hellwig make use of UML networking. 1489bea1801SChristoph Hellwig 1499bea1801SChristoph Hellwigconfig UML_NET_ETHERTAP 1509bea1801SChristoph Hellwig bool "Ethertap transport" 1519bea1801SChristoph Hellwig depends on UML_NET 1529bea1801SChristoph Hellwig help 1539bea1801SChristoph Hellwig The Ethertap User-Mode Linux network transport allows a single 1549bea1801SChristoph Hellwig running UML to exchange packets with its host over one of the 1559bea1801SChristoph Hellwig host's Ethertap devices, such as /dev/tap0. Additional running 1569bea1801SChristoph Hellwig UMLs can use additional Ethertap devices, one per running UML. 1579bea1801SChristoph Hellwig While the UML believes it's on a (multi-device, broadcast) virtual 1589bea1801SChristoph Hellwig Ethernet network, it's in fact communicating over a point-to-point 1599bea1801SChristoph Hellwig link with the host. 1609bea1801SChristoph Hellwig 1619bea1801SChristoph Hellwig To use this, your host kernel must have support for Ethertap 1629bea1801SChristoph Hellwig devices. Also, if your host kernel is 2.4.x, it must have 1639bea1801SChristoph Hellwig CONFIG_NETLINK_DEV configured as Y or M. 1649bea1801SChristoph Hellwig 1659bea1801SChristoph Hellwig For more information, see 1669bea1801SChristoph Hellwig <http://user-mode-linux.sourceforge.net/old/networking.html> That site 1679bea1801SChristoph Hellwig has examples of the UML command line to use to enable Ethertap 1689bea1801SChristoph Hellwig networking. 1699bea1801SChristoph Hellwig 1709bea1801SChristoph Hellwig If you'd like to set up an IP network with the host and/or the 1719bea1801SChristoph Hellwig outside world, say Y to this, the Daemon Transport and/or the 1729bea1801SChristoph Hellwig Slip Transport. You'll need at least one of them, but may choose 1739bea1801SChristoph Hellwig more than one without conflict. If you don't need UML networking, 1749bea1801SChristoph Hellwig say N. 1759bea1801SChristoph Hellwig 1769bea1801SChristoph Hellwigconfig UML_NET_TUNTAP 1779bea1801SChristoph Hellwig bool "TUN/TAP transport" 1789bea1801SChristoph Hellwig depends on UML_NET 1799bea1801SChristoph Hellwig help 1809bea1801SChristoph Hellwig The UML TUN/TAP network transport allows a UML instance to exchange 1819bea1801SChristoph Hellwig packets with the host over a TUN/TAP device. This option will only 1829bea1801SChristoph Hellwig work with a 2.4 host, unless you've applied the TUN/TAP patch to 1839bea1801SChristoph Hellwig your 2.2 host kernel. 1849bea1801SChristoph Hellwig 1859bea1801SChristoph Hellwig To use this transport, your host kernel must have support for TUN/TAP 1869bea1801SChristoph Hellwig devices, either built-in or as a module. 1879bea1801SChristoph Hellwig 1889bea1801SChristoph Hellwigconfig UML_NET_SLIP 1899bea1801SChristoph Hellwig bool "SLIP transport" 1909bea1801SChristoph Hellwig depends on UML_NET 1919bea1801SChristoph Hellwig help 1929bea1801SChristoph Hellwig The slip User-Mode Linux network transport allows a running UML to 1939bea1801SChristoph Hellwig network with its host over a point-to-point link. Unlike Ethertap, 1949bea1801SChristoph Hellwig which can carry any Ethernet frame (and hence even non-IP packets), 1959bea1801SChristoph Hellwig the slip transport can only carry IP packets. 1969bea1801SChristoph Hellwig 1979bea1801SChristoph Hellwig To use this, your host must support slip devices. 1989bea1801SChristoph Hellwig 1999bea1801SChristoph Hellwig For more information, see 2009bea1801SChristoph Hellwig <http://user-mode-linux.sourceforge.net/old/networking.html>. 2019bea1801SChristoph Hellwig has examples of the UML command line to use to enable slip 2029bea1801SChristoph Hellwig networking, and details of a few quirks with it. 2039bea1801SChristoph Hellwig 2049bea1801SChristoph Hellwig The Ethertap Transport is preferred over slip because of its 2059bea1801SChristoph Hellwig limitations. If you prefer slip, however, say Y here. Otherwise 2069bea1801SChristoph Hellwig choose the Multicast transport (to network multiple UMLs on 2079bea1801SChristoph Hellwig multiple hosts), Ethertap (to network with the host and the 2089bea1801SChristoph Hellwig outside world), and/or the Daemon transport (to network multiple 2099bea1801SChristoph Hellwig UMLs on a single host). You may choose more than one without 2109bea1801SChristoph Hellwig conflict. If you don't need UML networking, say N. 2119bea1801SChristoph Hellwig 2129bea1801SChristoph Hellwigconfig UML_NET_DAEMON 2139bea1801SChristoph Hellwig bool "Daemon transport" 2149bea1801SChristoph Hellwig depends on UML_NET 2159bea1801SChristoph Hellwig help 2169bea1801SChristoph Hellwig This User-Mode Linux network transport allows one or more running 2179bea1801SChristoph Hellwig UMLs on a single host to communicate with each other, but not to 2189bea1801SChristoph Hellwig the host. 2199bea1801SChristoph Hellwig 2209bea1801SChristoph Hellwig To use this form of networking, you'll need to run the UML 2219bea1801SChristoph Hellwig networking daemon on the host. 2229bea1801SChristoph Hellwig 2239bea1801SChristoph Hellwig For more information, see 2249bea1801SChristoph Hellwig <http://user-mode-linux.sourceforge.net/old/networking.html> That site 2259bea1801SChristoph Hellwig has examples of the UML command line to use to enable Daemon 2269bea1801SChristoph Hellwig networking. 2279bea1801SChristoph Hellwig 2289bea1801SChristoph Hellwig If you'd like to set up a network with other UMLs on a single host, 2299bea1801SChristoph Hellwig say Y. If you need a network between UMLs on multiple physical 2309bea1801SChristoph Hellwig hosts, choose the Multicast Transport. To set up a network with 2319bea1801SChristoph Hellwig the host and/or other IP machines, say Y to the Ethertap or Slip 2329bea1801SChristoph Hellwig transports. You'll need at least one of them, but may choose 2339bea1801SChristoph Hellwig more than one without conflict. If you don't need UML networking, 2349bea1801SChristoph Hellwig say N. 2359bea1801SChristoph Hellwig 2369bea1801SChristoph Hellwigconfig UML_NET_VECTOR 2379bea1801SChristoph Hellwig bool "Vector I/O high performance network devices" 2389bea1801SChristoph Hellwig depends on UML_NET 2399bea1801SChristoph Hellwig help 2409bea1801SChristoph Hellwig This User-Mode Linux network driver uses multi-message send 2419bea1801SChristoph Hellwig and receive functions. The host running the UML guest must have 2429bea1801SChristoph Hellwig a linux kernel version above 3.0 and a libc version > 2.13. 2439bea1801SChristoph Hellwig This driver provides tap, raw, gre and l2tpv3 network transports 2449bea1801SChristoph Hellwig with up to 4 times higher network throughput than the UML network 2459bea1801SChristoph Hellwig drivers. 2469bea1801SChristoph Hellwig 2479bea1801SChristoph Hellwigconfig UML_NET_VDE 2489bea1801SChristoph Hellwig bool "VDE transport" 2499bea1801SChristoph Hellwig depends on UML_NET 2509bea1801SChristoph Hellwig help 2519bea1801SChristoph Hellwig This User-Mode Linux network transport allows one or more running 2529bea1801SChristoph Hellwig UMLs on a single host to communicate with each other and also 2539bea1801SChristoph Hellwig with the rest of the world using Virtual Distributed Ethernet, 2549bea1801SChristoph Hellwig an improved fork of uml_switch. 2559bea1801SChristoph Hellwig 2569bea1801SChristoph Hellwig You must have libvdeplug installed in order to build the vde 2579bea1801SChristoph Hellwig transport into UML. 2589bea1801SChristoph Hellwig 2599bea1801SChristoph Hellwig To use this form of networking, you will need to run vde_switch 2609bea1801SChristoph Hellwig on the host. 2619bea1801SChristoph Hellwig 2629bea1801SChristoph Hellwig For more information, see <http://wiki.virtualsquare.org/> 2639bea1801SChristoph Hellwig That site has a good overview of what VDE is and also examples 2649bea1801SChristoph Hellwig of the UML command line to use to enable VDE networking. 2659bea1801SChristoph Hellwig 2669bea1801SChristoph Hellwig If you need UML networking with VDE, 2679bea1801SChristoph Hellwig say Y. 2689bea1801SChristoph Hellwig 2699bea1801SChristoph Hellwigconfig UML_NET_MCAST 2709bea1801SChristoph Hellwig bool "Multicast transport" 2719bea1801SChristoph Hellwig depends on UML_NET 2729bea1801SChristoph Hellwig help 2739bea1801SChristoph Hellwig This Multicast User-Mode Linux network transport allows multiple 2749bea1801SChristoph Hellwig UMLs (even ones running on different host machines!) to talk to 2759bea1801SChristoph Hellwig each other over a virtual ethernet network. However, it requires 2769bea1801SChristoph Hellwig at least one UML with one of the other transports to act as a 2779bea1801SChristoph Hellwig bridge if any of them need to be able to talk to their hosts or any 2789bea1801SChristoph Hellwig other IP machines. 2799bea1801SChristoph Hellwig 2809bea1801SChristoph Hellwig To use this, your host kernel(s) must support IP Multicasting. 2819bea1801SChristoph Hellwig 2829bea1801SChristoph Hellwig For more information, see 2839bea1801SChristoph Hellwig <http://user-mode-linux.sourceforge.net/old/networking.html> That site 2849bea1801SChristoph Hellwig has examples of the UML command line to use to enable Multicast 2859bea1801SChristoph Hellwig networking, and notes about the security of this approach. 2869bea1801SChristoph Hellwig 2879bea1801SChristoph Hellwig If you need UMLs on multiple physical hosts to communicate as if 2889bea1801SChristoph Hellwig they shared an Ethernet network, say Y. If you need to communicate 2899bea1801SChristoph Hellwig with other IP machines, make sure you select one of the other 2909bea1801SChristoph Hellwig transports (possibly in addition to Multicast; they're not 2919bea1801SChristoph Hellwig exclusive). If you don't need to network UMLs say N to each of 2929bea1801SChristoph Hellwig the transports. 2939bea1801SChristoph Hellwig 2949bea1801SChristoph Hellwigconfig UML_NET_PCAP 2959bea1801SChristoph Hellwig bool "pcap transport" 2969bea1801SChristoph Hellwig depends on UML_NET 2979bea1801SChristoph Hellwig help 2989bea1801SChristoph Hellwig The pcap transport makes a pcap packet stream on the host look 2999bea1801SChristoph Hellwig like an ethernet device inside UML. This is useful for making 3009bea1801SChristoph Hellwig UML act as a network monitor for the host. You must have libcap 3019bea1801SChristoph Hellwig installed in order to build the pcap transport into UML. 3029bea1801SChristoph Hellwig 3039bea1801SChristoph Hellwig For more information, see 3049bea1801SChristoph Hellwig <http://user-mode-linux.sourceforge.net/old/networking.html> That site 3059bea1801SChristoph Hellwig has examples of the UML command line to use to enable this option. 3069bea1801SChristoph Hellwig 3079bea1801SChristoph Hellwig If you intend to use UML as a network monitor for the host, say 3089bea1801SChristoph Hellwig Y here. Otherwise, say N. 3099bea1801SChristoph Hellwig 3109bea1801SChristoph Hellwigconfig UML_NET_SLIRP 3119bea1801SChristoph Hellwig bool "SLiRP transport" 3129bea1801SChristoph Hellwig depends on UML_NET 3139bea1801SChristoph Hellwig help 3149bea1801SChristoph Hellwig The SLiRP User-Mode Linux network transport allows a running UML 3159bea1801SChristoph Hellwig to network by invoking a program that can handle SLIP encapsulated 3169bea1801SChristoph Hellwig packets. This is commonly (but not limited to) the application 3179bea1801SChristoph Hellwig known as SLiRP, a program that can re-socket IP packets back onto 31875f24f78SEnrico Weigelt, metux IT consult he host on which it is run. Only IP packets are supported, 3199bea1801SChristoph Hellwig unlike other network transports that can handle all Ethernet 3209bea1801SChristoph Hellwig frames. In general, slirp allows the UML the same IP connectivity 3219bea1801SChristoph Hellwig to the outside world that the host user is permitted, and unlike 3229bea1801SChristoph Hellwig other transports, SLiRP works without the need of root level 3239bea1801SChristoph Hellwig privleges, setuid binaries, or SLIP devices on the host. This 3249bea1801SChristoph Hellwig also means not every type of connection is possible, but most 3259bea1801SChristoph Hellwig situations can be accommodated with carefully crafted slirp 3269bea1801SChristoph Hellwig commands that can be passed along as part of the network device's 3279bea1801SChristoph Hellwig setup string. The effect of this transport on the UML is similar 3289bea1801SChristoph Hellwig that of a host behind a firewall that masquerades all network 3299bea1801SChristoph Hellwig connections passing through it (but is less secure). 3309bea1801SChristoph Hellwig 3319bea1801SChristoph Hellwig To use this you should first have slirp compiled somewhere 3329bea1801SChristoph Hellwig accessible on the host, and have read its documentation. If you 3339bea1801SChristoph Hellwig don't need UML networking, say N. 3349bea1801SChristoph Hellwig 3359bea1801SChristoph Hellwig Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp" 3369bea1801SChristoph Hellwig 3379bea1801SChristoph Hellwigendmenu 338*5d38f324SErel Geron 339*5d38f324SErel Geronconfig VIRTIO_UML 340*5d38f324SErel Geron tristate "UML driver for virtio devices" 341*5d38f324SErel Geron select VIRTIO 342*5d38f324SErel Geron help 343*5d38f324SErel Geron This driver provides support for virtio based paravirtual device 344*5d38f324SErel Geron drivers over vhost-user sockets. 345