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