| # SPDX-License-Identifier: GPL-2.0 |
| |
| menu "UML-specific options" |
| |
| config UML |
| bool |
| default y |
| select ARCH_HAS_CPU_FINALIZE_INIT |
| select ARCH_HAS_FORTIFY_SOURCE |
| select ARCH_HAS_GCOV_PROFILE_ALL |
| select ARCH_HAS_KCOV |
| select ARCH_HAS_STRNCPY_FROM_USER |
| select ARCH_HAS_STRNLEN_USER |
| select ARCH_NO_PREEMPT |
| select HAVE_ARCH_AUDITSYSCALL |
| select HAVE_ARCH_KASAN if X86_64 |
| select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN |
| select HAVE_ARCH_SECCOMP_FILTER |
| select HAVE_ASM_MODVERSIONS |
| select HAVE_UID16 |
| select HAVE_DEBUG_KMEMLEAK |
| select HAVE_DEBUG_BUGVERBOSE |
| select HAVE_PAGE_SIZE_4KB |
| select NO_DMA if !UML_DMA_EMULATION |
| select OF_EARLY_FLATTREE if OF |
| select GENERIC_IRQ_SHOW |
| select GENERIC_CPU_DEVICES |
| select HAVE_GCC_PLUGINS |
| select ARCH_SUPPORTS_LTO_CLANG |
| select ARCH_SUPPORTS_LTO_CLANG_THIN |
| select TRACE_IRQFLAGS_SUPPORT |
| select TTY # Needed for line.c |
| select HAVE_ARCH_VMAP_STACK |
| select HAVE_RUST if X86_64 |
| |
| config MMU |
| bool |
| default y |
| |
| config UML_DMA_EMULATION |
| bool |
| |
| config NO_IOMEM |
| bool "disable IOMEM" if EXPERT |
| depends on !INDIRECT_IOMEM |
| default y |
| |
| config UML_IOMEM_EMULATION |
| bool |
| select INDIRECT_IOMEM |
| select GENERIC_PCI_IOMAP |
| select GENERIC_IOMAP |
| select NO_GENERIC_PCI_IOPORT_MAP |
| |
| config NO_IOPORT_MAP |
| def_bool y |
| |
| config ISA |
| bool |
| |
| config SBUS |
| bool |
| |
| config LOCKDEP_SUPPORT |
| bool |
| default y |
| |
| config STACKTRACE_SUPPORT |
| bool |
| default y |
| select STACKTRACE |
| |
| config GENERIC_CALIBRATE_DELAY |
| bool |
| default y |
| |
| config HZ |
| int |
| default 100 |
| |
| config NR_CPUS |
| int |
| range 1 1 |
| default 1 |
| |
| config ARCH_HAS_CACHE_LINE_SIZE |
| def_bool y |
| |
| source "arch/$(HEADER_ARCH)/um/Kconfig" |
| |
| config MAY_HAVE_RUNTIME_DEPS |
| bool |
| |
| config STATIC_LINK |
| bool "Force a static link" |
| depends on CC_CAN_LINK_STATIC_NO_RUNTIME_DEPS || !MAY_HAVE_RUNTIME_DEPS |
| help |
| This option gives you the ability to force a static link of UML. |
| Normally, UML is linked as a shared binary. This is inconvenient for |
| use in a chroot jail. So, if you intend to run UML inside a chroot, |
| you probably want to say Y here. |
| Additionally, this option enables using higher memory spaces (up to |
| 2.75G) for UML. |
| |
| NOTE: This option is incompatible with some networking features which |
| depend on features that require being dynamically loaded (like NSS). |
| |
| config LD_SCRIPT_STATIC |
| bool |
| default y |
| depends on STATIC_LINK |
| |
| config LD_SCRIPT_DYN |
| bool |
| default y |
| depends on !LD_SCRIPT_STATIC |
| |
| config LD_SCRIPT_DYN_RPATH |
| bool "set rpath in the binary" if EXPERT |
| default y |
| depends on LD_SCRIPT_DYN |
| help |
| Add /lib (and /lib64 for 64-bit) to the linux binary's rpath |
| explicitly. |
| |
| You may need to turn this off if compiling for nix systems |
| that have their libraries in random /nix directories and |
| might otherwise unexpected use libraries from /lib or /lib64 |
| instead of the desired ones. |
| |
| config HOSTFS |
| tristate "Host filesystem" |
| help |
| While the User-Mode Linux port uses its own root file system for |
| booting and normal file access, this module lets the UML user |
| access files stored on the host. It does not require any |
| network connection between the Host and UML. An example use of |
| this might be: |
| |
| mount none /tmp/fromhost -t hostfs -o /tmp/umlshare |
| |
| where /tmp/fromhost is an empty directory inside UML and |
| /tmp/umlshare is a directory on the host with files the UML user |
| wishes to access. |
| |
| For more information, see |
| <http://user-mode-linux.sourceforge.net/hostfs.html>. |
| |
| If you'd like to be able to work with files stored on the host, |
| say Y or M here; otherwise say N. |
| |
| config MCONSOLE |
| bool "Management console" |
| depends on PROC_FS |
| default y |
| help |
| The user mode linux management console is a low-level interface to |
| the kernel, somewhat like the i386 SysRq interface. Since there is |
| a full-blown operating system running under every user mode linux |
| instance, there is much greater flexibility possible than with the |
| SysRq mechanism. |
| |
| If you answer 'Y' to this option, to use this feature, you need the |
| mconsole client (called uml_mconsole) which is present in CVS in |
| 2.4.5-9um and later (path /tools/mconsole), and is also in the |
| distribution RPM package in 2.4.6 and later. |
| |
| It is safe to say 'Y' here. |
| |
| config MAGIC_SYSRQ |
| bool "Magic SysRq key" |
| depends on MCONSOLE |
| help |
| If you say Y here, you will have some control over the system even |
| if the system crashes for example during kernel debugging (e.g., you |
| will be able to flush the buffer cache to disk, reboot the system |
| immediately or dump some status information). A key for each of the |
| possible requests is provided. |
| |
| This is the feature normally accomplished by pressing a key |
| while holding SysRq (Alt+PrintScreen). |
| |
| On UML, this is accomplished by sending a "sysrq" command with |
| mconsole, followed by the letter for the requested command. |
| |
| The keys are documented in <file:Documentation/admin-guide/sysrq.rst>. Don't say Y |
| unless you really know what this hack does. |
| |
| config KERNEL_STACK_ORDER |
| int "Kernel stack size order" |
| default 2 if 64BIT |
| range 2 10 if 64BIT |
| default 1 if !64BIT |
| help |
| This option determines the size of UML kernel stacks. They will |
| be 1 << order pages. The default is OK unless you're running Valgrind |
| on UML, in which case, set this to 3. |
| It is possible to reduce the stack to 1 for 64BIT and 0 for 32BIT on |
| older (pre-2017) CPUs. It is not recommended on newer CPUs due to the |
| increase in the size of the state which needs to be saved when handling |
| signals. |
| |
| config MMAPPER |
| tristate "iomem emulation driver" |
| help |
| This driver allows a host file to be used as emulated IO memory inside |
| UML. |
| |
| config PGTABLE_LEVELS |
| int |
| default 3 if 3_LEVEL_PGTABLES |
| default 2 |
| |
| config UML_TIME_TRAVEL_SUPPORT |
| bool |
| prompt "Support time-travel mode (e.g. for test execution)" |
| # inf-cpu mode is incompatible with the benchmarking |
| depends on !RAID6_PQ_BENCHMARK |
| depends on !SMP |
| help |
| Enable this option to support time travel inside the UML instance. |
| |
| After enabling this option, two modes are accessible at runtime |
| (selected by the kernel command line), see the kernel's command- |
| line help for more details. |
| |
| It is safe to say Y, but you probably don't need this. |
| |
| config KASAN_SHADOW_OFFSET |
| hex |
| depends on KASAN |
| default 0x100000000000 |
| help |
| This is the offset at which the ~16TB of shadow memory is |
| mapped and used by KASAN for memory debugging. This can be any |
| address that has at least KASAN_SHADOW_SIZE (total address space divided |
| by 8) amount of space so that the KASAN shadow memory does not conflict |
| with anything. The default is 0x100000000000, which works even if mem is |
| set to a large value. On low-memory systems, try 0x7fff8000, as it fits |
| into the immediate of most instructions, improving performance. |
| |
| endmenu |
| |
| source "arch/um/drivers/Kconfig" |
| |
| config ARCH_SUSPEND_POSSIBLE |
| def_bool y |
| |
| menu "Power management options" |
| |
| source "kernel/power/Kconfig" |
| |
| endmenu |