xref: /linux/arch/um/Kconfig (revision ccea15f45eb0ab12d658f88b5d4be005cb2bb1a7)
1# UML uses the generic IRQ sugsystem
2config GENERIC_HARDIRQS
3	bool
4	default y
5
6config UML
7	bool
8	default y
9
10config MMU
11	bool
12	default y
13
14mainmenu "Linux/Usermode Kernel Configuration"
15
16config ISA
17	bool
18
19config SBUS
20	bool
21
22config PCI
23	bool
24
25config PCMCIA
26	bool
27
28config GENERIC_CALIBRATE_DELAY
29	bool
30	default y
31
32# Used in kernel/irq/manage.c and include/linux/irq.h
33config IRQ_RELEASE_METHOD
34	bool
35	default y
36
37menu "UML-specific options"
38
39config MODE_TT
40	bool "Tracing thread support"
41	default n
42	help
43	This option controls whether tracing thread support is compiled
44	into UML.  This option is largely obsolete, given that skas0 provides
45	skas security and performance without needing to patch the host.
46	It is safe to say 'N' here.
47
48config STATIC_LINK
49	bool "Force a static link"
50	default n
51	depends on !MODE_TT
52	help
53	If CONFIG_MODE_TT is disabled, then this option gives you the ability
54	to force a static link of UML.  Normally, if only skas mode is built
55	in to UML, it will be linked as a shared binary.  This is inconvenient
56	for use in a chroot jail.  So, if you intend to run UML inside a
57	chroot, and you disable CONFIG_MODE_TT, you probably want to say Y
58	here.
59
60config HOST_2G_2G
61	bool "2G/2G host address space split"
62	default n
63	depends on MODE_TT
64	help
65	This is needed when the host on which you run has a 2G/2G memory
66	split, instead of the customary 3G/1G.
67
68	Note that to enable such a host
69	configuration, which makes sense only in some cases, you need special
70	host patches.
71
72	So, if you do not know what to do here, say 'N'.
73
74config KERNEL_HALF_GIGS
75	int "Kernel address space size (in .5G units)"
76	default "1"
77	depends on MODE_TT
78	help
79        This determines the amount of address space that UML will allocate for
80        its own, measured in half Gigabyte units.  The default is 1.
81        Change this only if you need to boot UML with an unusually large amount
82        of physical memory.
83
84config MODE_SKAS
85	bool "Separate Kernel Address Space support" if MODE_TT
86	default y
87	help
88	This option controls whether skas (separate kernel address space)
89	support is compiled in.  If you have applied the skas patch to the
90	host, then you certainly want to say Y here (and consider saying N
91	to CONFIG_MODE_TT).  Otherwise, it is safe to say Y.  Disabling this
92	option will shrink the UML binary slightly.
93
94source "arch/um/Kconfig.arch"
95source "mm/Kconfig"
96
97config LD_SCRIPT_STATIC
98	bool
99	default y
100	depends on MODE_TT || STATIC_LINK
101
102config LD_SCRIPT_DYN
103	bool
104	default y
105	depends on !LD_SCRIPT_STATIC
106
107config NET
108	bool "Networking support"
109	help
110	Unless you really know what you are doing, you should say Y here.
111	The reason is that some programs need kernel networking support even
112	when running on a stand-alone machine that isn't connected to any
113	other computer. If you are upgrading from an older kernel, you
114	should consider updating your networking tools too because changes
115	in the kernel and the tools often go hand in hand. The tools are
116	contained in the package net-tools, the location and version number
117	of which are given in <file:Documentation/Changes>.
118
119	For a general introduction to Linux networking, it is highly
120	recommended to read the NET-HOWTO, available from
121	<http://www.tldp.org/docs.html#howto>.
122
123
124source "fs/Kconfig.binfmt"
125
126config HOSTFS
127	tristate "Host filesystem"
128	help
129        While the User-Mode Linux port uses its own root file system for
130        booting and normal file access, this module lets the UML user
131        access files stored on the host.  It does not require any
132        network connection between the Host and UML.  An example use of
133        this might be:
134
135        mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
136
137        where /tmp/fromhost is an empty directory inside UML and
138        /tmp/umlshare is a directory on the host with files the UML user
139        wishes to access.
140
141        For more information, see
142        <http://user-mode-linux.sourceforge.net/hostfs.html>.
143
144        If you'd like to be able to work with files stored on the host,
145        say Y or M here; otherwise say N.
146
147config HPPFS
148	tristate "HoneyPot ProcFS (EXPERIMENTAL)"
149	depends on EXPERIMENTAL
150	help
151	hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc
152	entries to be overridden, removed, or fabricated from the host.
153	Its purpose is to allow a UML to appear to be a physical machine
154	by removing or changing anything in /proc which gives away the
155	identity of a UML.
156
157	See <http://user-mode-linux.sf.net/hppfs.html> for more information.
158
159	You only need this if you are setting up a UML honeypot.  Otherwise,
160	it is safe to say 'N' here.
161
162config MCONSOLE
163	bool "Management console"
164	default y
165	help
166        The user mode linux management console is a low-level interface to
167        the kernel, somewhat like the i386 SysRq interface.  Since there is
168        a full-blown operating system running under every user mode linux
169        instance, there is much greater flexibility possible than with the
170        SysRq mechanism.
171
172        If you answer 'Y' to this option, to use this feature, you need the
173        mconsole client (called uml_mconsole) which is present in CVS in
174        2.4.5-9um and later (path /tools/mconsole), and is also in the
175        distribution RPM package in 2.4.6 and later.
176
177        It is safe to say 'Y' here.
178
179config MAGIC_SYSRQ
180	bool "Magic SysRq key"
181	depends on MCONSOLE
182	---help---
183	If you say Y here, you will have some control over the system even
184	if the system crashes for example during kernel debugging (e.g., you
185	will be able to flush the buffer cache to disk, reboot the system
186	immediately or dump some status information). A key for each of the
187	possible requests is provided.
188
189	This is the feature normally accomplished by pressing a key
190	while holding SysRq (Alt+PrintScreen).
191
192	On UML, this is accomplished by sending a "sysrq" command with
193	mconsole, followed by the letter for the requested command.
194
195	The keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
196	unless you really know what this hack does.
197
198config SMP
199	bool "Symmetric multi-processing support (EXPERIMENTAL)"
200	default n
201	#SMP_BROKEN is for x86_64.
202	depends on MODE_TT && EXPERIMENTAL && (!SMP_BROKEN || (BROKEN && SMP_BROKEN))
203	help
204	This option enables UML SMP support.
205	It is NOT related to having a real SMP box. Not directly, at least.
206
207	UML implements virtual SMP by allowing as many processes to run
208	simultaneously on the host as there are virtual processors configured.
209
210	Obviously, if the host is a uniprocessor, those processes will
211	timeshare, but, inside UML, will appear to be running simultaneously.
212	If the host is a multiprocessor, then UML processes may run
213	simultaneously, depending on the host scheduler.
214
215	This, however, is supported only in TT mode. So, if you use the SKAS
216	patch on your host, switching to TT mode and enabling SMP usually gives
217	you worse performances.
218	Also, since the support for SMP has been under-developed, there could
219	be some bugs being exposed by enabling SMP.
220
221	If you don't know what to do, say N.
222
223config NR_CPUS
224	int "Maximum number of CPUs (2-32)"
225	range 2 32
226	depends on SMP
227	default "32"
228
229config NEST_LEVEL
230	int "Nesting level"
231	default "0"
232	help
233        This is set to the number of layers of UMLs that this UML will be run
234        in.  Normally, this is zero, meaning that it will run directly on the
235        host.  Setting it to one will build a UML that can run inside a UML
236        that is running on the host.  Generally, if you intend this UML to run
237        inside another UML, set CONFIG_NEST_LEVEL to one more than the host
238        UML.
239
240        Note that if the hosting UML has its CONFIG_KERNEL_HALF_GIGS set to
241        greater than one, then the guest UML should have its CONFIG_NEST_LEVEL
242        set to the host's CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS.
243        Only change this if you are running nested UMLs.
244
245config HIGHMEM
246	bool "Highmem support (EXPERIMENTAL)"
247	depends on !64BIT && EXPERIMENTAL
248	default n
249	help
250	This was used to allow UML to run with big amounts of memory.
251	Currently it is unstable, so if unsure say N.
252
253	To use big amounts of memory, it is recommended to disable TT mode (i.e.
254	CONFIG_MODE_TT) and enable static linking (i.e. CONFIG_STATIC_LINK) -
255	this should allow the guest to use up to 2.75G of memory.
256
257config KERNEL_STACK_ORDER
258	int "Kernel stack size order"
259	default 2
260	help
261	This option determines the size of UML kernel stacks.  They will
262	be 1 << order pages.  The default is OK unless you're running Valgrind
263	on UML, in which case, set this to 3.
264
265config UML_REAL_TIME_CLOCK
266	bool "Real-time Clock"
267	default y
268	help
269	This option makes UML time deltas match wall clock deltas.  This should
270	normally be enabled.  The exception would be if you are debugging with
271	UML and spend long times with UML stopped at a breakpoint.  In this
272	case, when UML is restarted, it will call the timer enough times to make
273	up for the time spent at the breakpoint.  This could result in a
274	noticable lag.  If this is a problem, then disable this option.
275
276endmenu
277
278source "init/Kconfig"
279
280source "drivers/block/Kconfig"
281
282source "arch/um/Kconfig.char"
283
284source "drivers/base/Kconfig"
285
286source "net/Kconfig"
287
288source "arch/um/Kconfig.net"
289
290source "drivers/net/Kconfig"
291
292source "drivers/connector/Kconfig"
293
294source "fs/Kconfig"
295
296source "security/Kconfig"
297
298source "crypto/Kconfig"
299
300source "lib/Kconfig"
301
302menu "SCSI support"
303depends on BROKEN
304
305config SCSI
306	tristate "SCSI support"
307
308# This gives us free_dma, which scsi.c wants.
309config GENERIC_ISA_DMA
310	bool
311	depends on SCSI
312	default y
313
314source "arch/um/Kconfig.scsi"
315
316endmenu
317
318source "drivers/md/Kconfig"
319
320if BROKEN
321	source "drivers/mtd/Kconfig"
322endif
323
324#This is just to shut up some Kconfig warnings, so no prompt.
325config INPUT
326	bool
327	default n
328
329source "arch/um/Kconfig.debug"
330