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