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