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