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