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