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