179b05c1fSChristoph Hellwig# SPDX-License-Identifier: GPL-2.0 279b05c1fSChristoph Hellwig 3*f163977dSChristoph Hellwigmenu "UML-specific options" 4*f163977dSChristoph Hellwig 5*f163977dSChristoph Hellwigconfig UML 6*f163977dSChristoph Hellwig bool 7*f163977dSChristoph Hellwig default y 8*f163977dSChristoph Hellwig select ARCH_HAS_KCOV 9*f163977dSChristoph Hellwig select HAVE_ARCH_AUDITSYSCALL 10*f163977dSChristoph Hellwig select HAVE_ARCH_SECCOMP_FILTER 11*f163977dSChristoph Hellwig select HAVE_UID16 12*f163977dSChristoph Hellwig select HAVE_FUTEX_CMPXCHG if FUTEX 13*f163977dSChristoph Hellwig select HAVE_DEBUG_KMEMLEAK 14*f163977dSChristoph Hellwig select GENERIC_IRQ_SHOW 15*f163977dSChristoph Hellwig select GENERIC_CPU_DEVICES 16*f163977dSChristoph Hellwig select GENERIC_CLOCKEVENTS 17*f163977dSChristoph Hellwig select HAVE_GCC_PLUGINS 18*f163977dSChristoph Hellwig select TTY # Needed for line.c 19*f163977dSChristoph Hellwig 20*f163977dSChristoph Hellwigconfig MMU 21*f163977dSChristoph Hellwig bool 22*f163977dSChristoph Hellwig default y 23*f163977dSChristoph Hellwig 24*f163977dSChristoph Hellwigconfig NO_IOMEM 25*f163977dSChristoph Hellwig def_bool y 26*f163977dSChristoph Hellwig 27*f163977dSChristoph Hellwigconfig ISA 28*f163977dSChristoph Hellwig bool 29*f163977dSChristoph Hellwig 30*f163977dSChristoph Hellwigconfig SBUS 31*f163977dSChristoph Hellwig bool 32*f163977dSChristoph Hellwig 33*f163977dSChristoph Hellwigconfig PCI 34*f163977dSChristoph Hellwig bool 35*f163977dSChristoph Hellwig 36*f163977dSChristoph Hellwigconfig PCMCIA 37*f163977dSChristoph Hellwig bool 38*f163977dSChristoph Hellwig 39*f163977dSChristoph Hellwigconfig TRACE_IRQFLAGS_SUPPORT 40*f163977dSChristoph Hellwig bool 41*f163977dSChristoph Hellwig default y 42*f163977dSChristoph Hellwig 43*f163977dSChristoph Hellwigconfig LOCKDEP_SUPPORT 44*f163977dSChristoph Hellwig bool 45*f163977dSChristoph Hellwig default y 46*f163977dSChristoph Hellwig 47*f163977dSChristoph Hellwigconfig STACKTRACE_SUPPORT 48*f163977dSChristoph Hellwig bool 49*f163977dSChristoph Hellwig default y 50*f163977dSChristoph Hellwig select STACKTRACE 51*f163977dSChristoph Hellwig 52*f163977dSChristoph Hellwigconfig GENERIC_CALIBRATE_DELAY 53*f163977dSChristoph Hellwig bool 54*f163977dSChristoph Hellwig default y 55*f163977dSChristoph Hellwig 56*f163977dSChristoph Hellwigconfig HZ 57*f163977dSChristoph Hellwig int 58*f163977dSChristoph Hellwig default 100 59*f163977dSChristoph Hellwig 60*f163977dSChristoph Hellwigconfig NR_CPUS 61*f163977dSChristoph Hellwig int 62*f163977dSChristoph Hellwig range 1 1 63*f163977dSChristoph Hellwig default 1 64*f163977dSChristoph Hellwig 6579b05c1fSChristoph Hellwigsource "arch/$(HEADER_ARCH)/um/Kconfig" 66*f163977dSChristoph Hellwig 67*f163977dSChristoph Hellwigconfig STATIC_LINK 68*f163977dSChristoph Hellwig bool "Force a static link" 69*f163977dSChristoph Hellwig default n 70*f163977dSChristoph Hellwig help 71*f163977dSChristoph Hellwig This option gives you the ability to force a static link of UML. 72*f163977dSChristoph Hellwig Normally, UML is linked as a shared binary. This is inconvenient for 73*f163977dSChristoph Hellwig use in a chroot jail. So, if you intend to run UML inside a chroot, 74*f163977dSChristoph Hellwig you probably want to say Y here. 75*f163977dSChristoph Hellwig Additionally, this option enables using higher memory spaces (up to 76*f163977dSChristoph Hellwig 2.75G) for UML. 77*f163977dSChristoph Hellwig 78*f163977dSChristoph Hellwigsource "mm/Kconfig" 79*f163977dSChristoph Hellwig 80*f163977dSChristoph Hellwigconfig LD_SCRIPT_STATIC 81*f163977dSChristoph Hellwig bool 82*f163977dSChristoph Hellwig default y 83*f163977dSChristoph Hellwig depends on STATIC_LINK 84*f163977dSChristoph Hellwig 85*f163977dSChristoph Hellwigconfig LD_SCRIPT_DYN 86*f163977dSChristoph Hellwig bool 87*f163977dSChristoph Hellwig default y 88*f163977dSChristoph Hellwig depends on !LD_SCRIPT_STATIC 89*f163977dSChristoph Hellwig select MODULE_REL_CRCS if MODVERSIONS 90*f163977dSChristoph Hellwig 91*f163977dSChristoph Hellwigsource "fs/Kconfig.binfmt" 92*f163977dSChristoph Hellwig 93*f163977dSChristoph Hellwigconfig HOSTFS 94*f163977dSChristoph Hellwig tristate "Host filesystem" 95*f163977dSChristoph Hellwig help 96*f163977dSChristoph Hellwig While the User-Mode Linux port uses its own root file system for 97*f163977dSChristoph Hellwig booting and normal file access, this module lets the UML user 98*f163977dSChristoph Hellwig access files stored on the host. It does not require any 99*f163977dSChristoph Hellwig network connection between the Host and UML. An example use of 100*f163977dSChristoph Hellwig this might be: 101*f163977dSChristoph Hellwig 102*f163977dSChristoph Hellwig mount none /tmp/fromhost -t hostfs -o /tmp/umlshare 103*f163977dSChristoph Hellwig 104*f163977dSChristoph Hellwig where /tmp/fromhost is an empty directory inside UML and 105*f163977dSChristoph Hellwig /tmp/umlshare is a directory on the host with files the UML user 106*f163977dSChristoph Hellwig wishes to access. 107*f163977dSChristoph Hellwig 108*f163977dSChristoph Hellwig For more information, see 109*f163977dSChristoph Hellwig <http://user-mode-linux.sourceforge.net/hostfs.html>. 110*f163977dSChristoph Hellwig 111*f163977dSChristoph Hellwig If you'd like to be able to work with files stored on the host, 112*f163977dSChristoph Hellwig say Y or M here; otherwise say N. 113*f163977dSChristoph Hellwig 114*f163977dSChristoph Hellwigconfig MCONSOLE 115*f163977dSChristoph Hellwig bool "Management console" 116*f163977dSChristoph Hellwig depends on PROC_FS 117*f163977dSChristoph Hellwig default y 118*f163977dSChristoph Hellwig help 119*f163977dSChristoph Hellwig The user mode linux management console is a low-level interface to 120*f163977dSChristoph Hellwig the kernel, somewhat like the i386 SysRq interface. Since there is 121*f163977dSChristoph Hellwig a full-blown operating system running under every user mode linux 122*f163977dSChristoph Hellwig instance, there is much greater flexibility possible than with the 123*f163977dSChristoph Hellwig SysRq mechanism. 124*f163977dSChristoph Hellwig 125*f163977dSChristoph Hellwig If you answer 'Y' to this option, to use this feature, you need the 126*f163977dSChristoph Hellwig mconsole client (called uml_mconsole) which is present in CVS in 127*f163977dSChristoph Hellwig 2.4.5-9um and later (path /tools/mconsole), and is also in the 128*f163977dSChristoph Hellwig distribution RPM package in 2.4.6 and later. 129*f163977dSChristoph Hellwig 130*f163977dSChristoph Hellwig It is safe to say 'Y' here. 131*f163977dSChristoph Hellwig 132*f163977dSChristoph Hellwigconfig MAGIC_SYSRQ 133*f163977dSChristoph Hellwig bool "Magic SysRq key" 134*f163977dSChristoph Hellwig depends on MCONSOLE 135*f163977dSChristoph Hellwig help 136*f163977dSChristoph Hellwig If you say Y here, you will have some control over the system even 137*f163977dSChristoph Hellwig if the system crashes for example during kernel debugging (e.g., you 138*f163977dSChristoph Hellwig will be able to flush the buffer cache to disk, reboot the system 139*f163977dSChristoph Hellwig immediately or dump some status information). A key for each of the 140*f163977dSChristoph Hellwig possible requests is provided. 141*f163977dSChristoph Hellwig 142*f163977dSChristoph Hellwig This is the feature normally accomplished by pressing a key 143*f163977dSChristoph Hellwig while holding SysRq (Alt+PrintScreen). 144*f163977dSChristoph Hellwig 145*f163977dSChristoph Hellwig On UML, this is accomplished by sending a "sysrq" command with 146*f163977dSChristoph Hellwig mconsole, followed by the letter for the requested command. 147*f163977dSChristoph Hellwig 148*f163977dSChristoph Hellwig The keys are documented in <file:Documentation/admin-guide/sysrq.rst>. Don't say Y 149*f163977dSChristoph Hellwig unless you really know what this hack does. 150*f163977dSChristoph Hellwig 151*f163977dSChristoph Hellwigconfig KERNEL_STACK_ORDER 152*f163977dSChristoph Hellwig int "Kernel stack size order" 153*f163977dSChristoph Hellwig default 1 if 64BIT 154*f163977dSChristoph Hellwig range 1 10 if 64BIT 155*f163977dSChristoph Hellwig default 0 if !64BIT 156*f163977dSChristoph Hellwig help 157*f163977dSChristoph Hellwig This option determines the size of UML kernel stacks. They will 158*f163977dSChristoph Hellwig be 1 << order pages. The default is OK unless you're running Valgrind 159*f163977dSChristoph Hellwig on UML, in which case, set this to 3. 160*f163977dSChristoph Hellwig 161*f163977dSChristoph Hellwigconfig MMAPPER 162*f163977dSChristoph Hellwig tristate "iomem emulation driver" 163*f163977dSChristoph Hellwig help 164*f163977dSChristoph Hellwig This driver allows a host file to be used as emulated IO memory inside 165*f163977dSChristoph Hellwig UML. 166*f163977dSChristoph Hellwig 167*f163977dSChristoph Hellwigconfig NO_DMA 168*f163977dSChristoph Hellwig def_bool y 169*f163977dSChristoph Hellwig 170*f163977dSChristoph Hellwigconfig PGTABLE_LEVELS 171*f163977dSChristoph Hellwig int 172*f163977dSChristoph Hellwig default 3 if 3_LEVEL_PGTABLES 173*f163977dSChristoph Hellwig default 2 174*f163977dSChristoph Hellwig 175*f163977dSChristoph Hellwigconfig SECCOMP 176*f163977dSChristoph Hellwig def_bool y 177*f163977dSChristoph Hellwig prompt "Enable seccomp to safely compute untrusted bytecode" 178*f163977dSChristoph Hellwig ---help--- 179*f163977dSChristoph Hellwig This kernel feature is useful for number crunching applications 180*f163977dSChristoph Hellwig that may need to compute untrusted bytecode during their 181*f163977dSChristoph Hellwig execution. By using pipes or other transports made available to 182*f163977dSChristoph Hellwig the process as file descriptors supporting the read/write 183*f163977dSChristoph Hellwig syscalls, it's possible to isolate those applications in 184*f163977dSChristoph Hellwig their own address space using seccomp. Once seccomp is 185*f163977dSChristoph Hellwig enabled via prctl(PR_SET_SECCOMP), it cannot be disabled 186*f163977dSChristoph Hellwig and the task is only allowed to execute a few safe syscalls 187*f163977dSChristoph Hellwig defined by each seccomp mode. 188*f163977dSChristoph Hellwig 189*f163977dSChristoph Hellwig If unsure, say Y. 190*f163977dSChristoph Hellwig 191*f163977dSChristoph Hellwigendmenu 192*f163977dSChristoph Hellwig 193*f163977dSChristoph Hellwigsource "init/Kconfig" 194*f163977dSChristoph Hellwig 195*f163977dSChristoph Hellwigsource "kernel/Kconfig.freezer" 196*f163977dSChristoph Hellwig 197*f163977dSChristoph Hellwigsource "arch/um/Kconfig.char" 198*f163977dSChristoph Hellwig 199*f163977dSChristoph Hellwigsource "drivers/Kconfig" 200*f163977dSChristoph Hellwig 201*f163977dSChristoph Hellwigsource "net/Kconfig" 202*f163977dSChristoph Hellwig 203*f163977dSChristoph Hellwigsource "arch/um/Kconfig.net" 204*f163977dSChristoph Hellwig 205*f163977dSChristoph Hellwigsource "fs/Kconfig" 206*f163977dSChristoph Hellwig 207*f163977dSChristoph Hellwigsource "security/Kconfig" 208*f163977dSChristoph Hellwig 209*f163977dSChristoph Hellwigsource "crypto/Kconfig" 210*f163977dSChristoph Hellwig 211*f163977dSChristoph Hellwigsource "lib/Kconfig" 212*f163977dSChristoph Hellwig 213*f163977dSChristoph Hellwigsource "arch/um/Kconfig.debug" 214