-config USERMODE
+config DEFCONFIG_LIST
+ string
+ option defconfig_list
+ default "arch/$ARCH/defconfig"
+
+# UML uses the generic IRQ sugsystem
+config GENERIC_HARDIRQS
+ bool
+ default y
+
+config UML
bool
default y
-# XXX: does UM have a mmu/swap?
config MMU
bool
default y
config PCI
bool
-config UID16
+config PCMCIA
+ bool
+
+# Yet to do!
+config TRACE_IRQFLAGS_SUPPORT
+ bool
+ default n
+
+config LOCKDEP_SUPPORT
+ bool
+ default y
+
+config STACKTRACE_SUPPORT
bool
default y
-config RWSEM_GENERIC_SPINLOCK
+config GENERIC_CALIBRATE_DELAY
+ bool
+ default y
+
+config GENERIC_BUG
+ bool
+ default y
+ depends on BUG
+
+# Used in kernel/irq/manage.c and include/linux/irq.h
+config IRQ_RELEASE_METHOD
bool
default y
menu "UML-specific options"
config MODE_TT
- bool "Tracing thread support"
- default y
+ bool "Tracing thread support (DEPRECATED)"
+ default n
+ depends on BROKEN
help
This option controls whether tracing thread support is compiled
- into UML. Normally, this should be set to Y. If you intend to
- use only skas mode (and the host has the skas patch applied to it),
- then it is OK to say N here.
+ into UML. This option is largely obsolete, given that skas0 provides
+ skas security and performance without needing to patch the host.
+ It is safe to say 'N' here; saying 'Y' may cause additional problems
+ with the resulting binary even if you run UML in SKAS mode, and running
+ in TT mode is strongly *NOT RECOMMENDED*.
config STATIC_LINK
bool "Force a static link"
If CONFIG_MODE_TT is disabled, then this option gives you the ability
to force a static link of UML. Normally, if only skas mode is built
in to UML, it will be linked as a shared binary. This is inconvenient
- for use in a chroot jail. So, if you intend to run UML inside a
+ for use in a chroot jail. So, if you intend to run UML inside a
chroot, and you disable CONFIG_MODE_TT, you probably want to say Y
here.
+ Additionally, this option enables using higher memory spaces (up to
+ 2.75G) for UML - disabling CONFIG_MODE_TT and enabling this option leads
+ to best results for this.
+
+config KERNEL_HALF_GIGS
+ int "Kernel address space size (in .5G units)"
+ default "1"
+ depends on MODE_TT
+ help
+ This determines the amount of address space that UML will allocate for
+ its own, measured in half Gigabyte units. The default is 1.
+ Change this only if you need to boot UML with an unusually large amount
+ of physical memory.
config MODE_SKAS
- bool "Separate Kernel Address Space support"
+ bool "Separate Kernel Address Space support" if MODE_TT
default y
help
This option controls whether skas (separate kernel address space)
- support is compiled in. If you have applied the skas patch to the
- host, then you certainly want to say Y here (and consider saying N
- to CONFIG_MODE_TT). Otherwise, it is safe to say Y. Disabling this
- option will shrink the UML binary slightly.
+ support is compiled in.
+ Unless you have specific needs to use TT mode (which applies almost only
+ to developers), you should say Y here.
+ SKAS mode will make use of the SKAS3 patch if it is applied on the host
+ (and your UML will run in SKAS3 mode), but if no SKAS patch is applied
+ on the host it will run in SKAS0 mode, which is anyway faster than TT
+ mode.
+
+source "arch/um/Kconfig.arch"
+source "mm/Kconfig"
+
+config LD_SCRIPT_STATIC
+ bool
+ default y
+ depends on MODE_TT || STATIC_LINK
+
+config LD_SCRIPT_DYN
+ bool
+ default y
+ depends on !LD_SCRIPT_STATIC
config NET
bool "Networking support"
+ help
+ Unless you really know what you are doing, you should say Y here.
+ The reason is that some programs need kernel networking support even
+ when running on a stand-alone machine that isn't connected to any
+ other computer. If you are upgrading from an older kernel, you
+ should consider updating your networking tools too because changes
+ in the kernel and the tools often go hand in hand. The tools are
+ contained in the package net-tools, the location and version number
+ of which are given in <file:Documentation/Changes>.
+
+ For a general introduction to Linux networking, it is highly
+ recommended to read the NET-HOWTO, available from
+ <http://www.tldp.org/docs.html#howto>.
+
source "fs/Kconfig.binfmt"
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,
+ If you'd like to be able to work with files stored on the host,
say Y or M here; otherwise say N.
+config HPPFS
+ tristate "HoneyPot ProcFS (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
+ help
+ hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc
+ entries to be overridden, removed, or fabricated from the host.
+ Its purpose is to allow a UML to appear to be a physical machine
+ by removing or changing anything in /proc which gives away the
+ identity of a UML.
+
+ See <http://user-mode-linux.sf.net/hppfs.html> for more information.
+
+ You only need this if you are setting up a UML honeypot. Otherwise,
+ it is safe to say 'N' here.
config MCONSOLE
bool "Management console"
+ 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
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.
-config HOST_2G_2G
- bool "2G/2G host address space split"
+ This is the feature normally accomplished by pressing a key
+ while holding SysRq (Alt+PrintScreen).
-config UML_SMP
- bool "Symmetric multi-processing support"
- help
- This option enables UML SMP support. UML implements virtual SMP by
- allowing as many processes to run simultaneously on the host as
- there are virtual processors configured. Obviously, if the host is
- a uniprocessor, those processes will timeshare, but, inside UML,
- will appear to be running simultaneously. If the host is a
- multiprocessor, then UML processes may run simultaneously, depending
- on the host scheduler.
- CONFIG_SMP will be set to whatever this option is set to.
- It is safe to leave this unchanged.
+ 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/sysrq.txt>. Don't say Y
+ unless you really know what this hack does.
config SMP
- bool
- default UML_SMP
+ bool "Symmetric multi-processing support (EXPERIMENTAL)"
+ default n
+ #SMP_BROKEN is for x86_64.
+ depends on MODE_TT && EXPERIMENTAL && (!SMP_BROKEN || (BROKEN && SMP_BROKEN))
+ help
+ This option enables UML SMP support.
+ It is NOT related to having a real SMP box. Not directly, at least.
+
+ UML implements virtual SMP by allowing as many processes to run
+ simultaneously on the host as there are virtual processors configured.
+
+ Obviously, if the host is a uniprocessor, those processes will
+ timeshare, but, inside UML, will appear to be running simultaneously.
+ If the host is a multiprocessor, then UML processes may run
+ simultaneously, depending on the host scheduler.
+
+ This, however, is supported only in TT mode. So, if you use the SKAS
+ patch on your host, switching to TT mode and enabling SMP usually gives
+ you worse performances.
+ Also, since the support for SMP has been under-developed, there could
+ be some bugs being exposed by enabling SMP.
+
+ If you don't know what to do, say N.
config NR_CPUS
int "Maximum number of CPUs (2-32)"
in. Normally, this is zero, meaning that it will run directly on the
host. Setting it to one will build a UML that can run inside a UML
that is running on the host. Generally, if you intend this UML to run
- inside another UML, set CONFIG_NEST_LEVEL to one more than the host
+ inside another UML, set CONFIG_NEST_LEVEL to one more than the host
UML.
- Note that if the hosting UML has its CONFIG_KERNEL_HALF_GIGS set to
- greater than one, then the guest UML should have its CONFIG_NEST_LEVEL
+ Note that if the hosting UML has its CONFIG_KERNEL_HALF_GIGS set to
+ greater than one, then the guest UML should have its CONFIG_NEST_LEVEL
set to the host's CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS.
Only change this if you are running nested UMLs.
-config KERNEL_HALF_GIGS
- int "Kernel address space size (in .5G units)"
- default "1"
+config HIGHMEM
+ bool "Highmem support (EXPERIMENTAL)"
+ depends on !64BIT && EXPERIMENTAL
+ default n
help
- This determines the amount of address space that UML will allocate for
- its own, measured in half Gigabyte units. The default is 1.
- Change this only if you need to boot UML with an unusually large amount
- of physical memory.
+ This was used to allow UML to run with big amounts of memory.
+ Currently it is unstable, so if unsure say N.
-config HIGHMEM
- bool "Highmem support"
+ To use big amounts of memory, it is recommended to disable TT mode (i.e.
+ CONFIG_MODE_TT) and enable static linking (i.e. CONFIG_STATIC_LINK) -
+ this should allow the guest to use up to 2.75G of memory.
config KERNEL_STACK_ORDER
int "Kernel stack size order"
be 1 << order pages. The default is OK unless you're running Valgrind
on UML, in which case, set this to 3.
+config UML_REAL_TIME_CLOCK
+ bool "Real-time Clock"
+ default y
+ help
+ This option makes UML time deltas match wall clock deltas. This should
+ normally be enabled. The exception would be if you are debugging with
+ UML and spend long times with UML stopped at a breakpoint. In this
+ case, when UML is restarted, it will call the timer enough times to make
+ up for the time spent at the breakpoint. This could result in a
+ noticeable lag. If this is a problem, then disable this option.
+
endmenu
+source "kernel/Kconfig.hz"
+
source "init/Kconfig"
-source "drivers/base/Kconfig"
+source "drivers/block/Kconfig"
-source "arch/um/Kconfig_char"
+source "arch/um/Kconfig.char"
-source "arch/um/Kconfig_block"
+source "drivers/base/Kconfig"
-config NETDEVICES
- bool
- default NET
+source "net/Kconfig"
-source "arch/um/Kconfig_net"
+source "arch/um/Kconfig.net"
-source "net/Kconfig"
+source "drivers/net/Kconfig"
+
+source "drivers/connector/Kconfig"
source "fs/Kconfig"
source "lib/Kconfig"
menu "SCSI support"
+depends on BROKEN
config SCSI
tristate "SCSI support"
depends on SCSI
default y
-source "arch/um/Kconfig_scsi"
+source "arch/um/Kconfig.scsi"
endmenu
source "drivers/md/Kconfig"
-source "drivers/mtd/Kconfig"
-
-
-menu "Kernel hacking"
-
-config DEBUG_SLAB
- bool "Debug memory allocations"
+if BROKEN
+ source "drivers/mtd/Kconfig"
+endif
-config DEBUG_SPINLOCK
- bool "Debug spinlocks usage"
-
-config DEBUG_INFO
- bool "Enable kernel debugging symbols"
- help
- When this is enabled, the User-Mode Linux binary will include
- debugging symbols. This enlarges the binary by a few megabytes,
- but aids in tracking down kernel problems in UML. It is required
- if you intend to do any kernel development.
-
- If you're truly short on disk space or don't expect to report any
- bugs back to the UML developers, say N, otherwise say Y.
-
-config FRAME_POINTER
+#This is just to shut up some Kconfig warnings, so no prompt.
+config INPUT
bool
- default y if DEBUG_INFO
-
-config PT_PROXY
- bool "Enable ptrace proxy"
- depends on XTERM_CHAN && DEBUG_INFO
-
-config GPROF
- bool "Enable gprof support"
- depends on DEBUG_INFO
- help
- This allows profiling of a User-Mode Linux kernel with the gprof
- utility.
-
- See <http://user-mode-linux.sourceforge.net/gprof.html> for more
- details.
-
- If you're involved in UML kernel development and want to use gprof,
- say Y. If you're unsure, say N.
-
-config GCOV
- bool "Enable gcov support"
- depends on DEBUG_INFO
- help
- This option allows developers to retrieve coverage data from a UML
- session.
-
- See <http://user-mode-linux.sourceforge.net/gprof.html> for more
- details.
-
- If you're involved in UML kernel development and want to use gcov,
- say Y. If you're unsure, say N.
-
-endmenu
+ default n
+source "arch/um/Kconfig.debug"