1BOOTPARAM(7) Linux Programmer's Manual BOOTPARAM(7)
2
3
4
6 bootparam - introduction to boot time parameters of the Linux kernel
7
9 The Linux kernel accepts certain 'command-line options' or 'boot time
10 parameters' at the moment it is started. In general this is used to
11 supply the kernel with information about hardware parameters that the
12 kernel would not be able to determine on its own, or to avoid/override
13 the values that the kernel would otherwise detect.
14
15 When the kernel is booted directly by the BIOS (say from a floppy to
16 which you copied a kernel using 'cp zImage /dev/fd0'), you have no
17 opportunity to specify any parameters. So, in order to take advantage
18 of this possibility you have to use a boot loader that is able to pass
19 parameters, such as GRUB.
20
21
22 The argument list
23 The kernel command line is parsed into a list of strings (boot argu‐
24 ments) separated by spaces. Most of the boot arguments take have the
25 form:
26
27 name[=value_1][,value_2]...[,value_10]
28
29 where 'name' is a unique keyword that is used to identify what part of
30 the kernel the associated values (if any) are to be given to. Note the
31 limit of 10 is real, as the present code handles only 10 comma sepa‐
32 rated parameters per keyword. (However, you can reuse the same keyword
33 with up to an additional 10 parameters in unusually complicated situa‐
34 tions, assuming the setup function supports it.)
35
36 Most of the sorting is coded in the kernel source file init/main.c.
37 First, the kernel checks to see if the argument is any of the special
38 arguments 'root=', 'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug' or
39 'init'. The meaning of these special arguments is described below.
40
41 Then it walks a list of setup functions (contained in the bootsetups
42 array) to see if the specified argument string (such as 'foo') has been
43 associated with a setup function ('foo_setup()') for a particular
44 device or part of the kernel. If you passed the kernel the line
45 foo=3,4,5,6 then the kernel would search the bootsetups array to see if
46 'foo' was registered. If it was, then it would call the setup function
47 associated with 'foo' (foo_setup()) and hand it the arguments 3, 4, 5
48 and 6 as given on the kernel command line.
49
50 Anything of the form 'foo=bar' that is not accepted as a setup function
51 as described above is then interpreted as an environment variable to be
52 set. A (useless?) example would be to use 'TERM=vt100' as a boot argu‐
53 ment.
54
55 Any remaining arguments that were not picked up by the kernel and were
56 not interpreted as environment variables are then passed onto process
57 one, which is usually the init(1) program. The most common argument
58 that is passed to the init process is the word 'single' which instructs
59 it to boot the computer in single user mode, and not launch all the
60 usual daemons. Check the manual page for the version of init(1)
61 installed on your system to see what arguments it accepts.
62
63 General non-device specific boot arguments
64 'init=...'
65 This sets the initial command to be executed by the kernel. If
66 this is not set, or cannot be found, the kernel will try
67 /sbin/init, then /etc/init, then /bin/init, then /bin/sh and
68 panic if all of this fails.
69
70 'nfsaddrs=...'
71 This sets the nfs boot address to the given string. This boot
72 address is used in case of a net boot.
73
74 'nfsroot=...'
75 This sets the nfs root name to the given string. If this string
76 does not begin with '/' or ',' or a digit, then it is prefixed
77 by '/tftpboot/'. This root name is used in case of a net boot.
78
79 'no387'
80 (Only when CONFIG_BUGi386 is defined.) Some i387 coprocessor
81 chips have bugs that show up when used in 32 bit protected mode.
82 For example, some of the early ULSI-387 chips would cause solid
83 lockups while performing floating-point calculations. Using the
84 'no387' boot argument causes Linux to ignore the maths coproces‐
85 sor even if you have one. Of course you must then have your
86 kernel compiled with math emulation support!
87
88 'no-hlt'
89 (Only when CONFIG_BUGi386 is defined.) Some of the early
90 i486DX-100 chips have a problem with the 'hlt' instruction, in
91 that they can't reliably return to operating mode after this
92 instruction is used. Using the 'no-hlt' instruction tells Linux
93 to just run an infinite loop when there is nothing else to do,
94 and to not halt the CPU. This allows people with these broken
95 chips to use Linux.
96
97 'root=...'
98 This argument tells the kernel what device is to be used as the
99 root file system while booting. The default of this setting is
100 determined at compile time, and usually is the value of the root
101 device of the system that the kernel was built on. To override
102 this value, and select the second floppy drive as the root
103 device, one would use 'root=/dev/fd1'.
104
105 The root device can be specified symbolically or numerically. A
106 symbolic specification has the form /dev/XXYN, where XX desig‐
107 nates the device type ('hd' for ST-506 compatible hard disk,
108 with Y in 'a'-'d'; 'sd' for SCSI compatible disk, with Y in
109 'a'-'e'; 'ad' for Atari ACSI disk, with Y in 'a'-'e', 'ez' for a
110 Syquest EZ135 parallel port removable drive, with Y='a', 'xd'
111 for XT compatible disk, with Y either 'a' or 'b'; 'fd' for
112 floppy disk, with Y the floppy drive number—fd0 would be the DOS
113 'A:' drive, and fd1 would be 'B:'), Y the driver letter or num‐
114 ber, and N the number (in decimal) of the partition on this
115 device (absent in the case of floppies). Recent kernels allow
116 many other types, mostly for CD-ROMs: nfs, ram, scd, mcd,
117 cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd. (The type
118 nfs specifies a net boot; ram refers to a ram disk.)
119
120 Note that this has nothing to do with the designation of these
121 devices on your file system. The '/dev/' part is purely conven‐
122 tional.
123
124 The more awkward and less portable numeric specification of the
125 above possible root devices in major/minor format is also
126 accepted. (E.g., /dev/sda3 is major 8, minor 3, so you could
127 use 'root=0x803' as an alternative.)
128
129 'rootfstype=...'
130 The 'rootfstype' option tells the kernel to mount the root
131 filesystem as if it where of the type specified. This can be
132 useful (for example) to mount an ext3 filesystem as ext2 and
133 then remove the journal in the root filesystem, in fact revert‐
134 ing its format from ext3 to ext2 without the need to boot the
135 box from alternate media.
136
137 'ro' and 'rw'
138 The 'ro' option tells the kernel to mount the root file system
139 as 'read-only' so that file system consistency check programs
140 (fsck) can do their work on a quiescent file system. No pro‐
141 cesses can write to files on the file system in question until
142 it is 'remounted' as read/write capable, for example, by 'mount
143 -w -n -o remount /'. (See also mount(8).)
144
145 The 'rw' option tells the kernel to mount the root file system
146 read/write. This is the default.
147
148
149 'resume=...'
150 This tells the kernel the location of the suspend-to-disk data
151 that you want the machine to resume from after hibernation.
152 Usually, it is the same as your swap partition or file. Example:
153
154 resume=/dev/hda2
155
156 'reserve=...'
157 This is used to protect I/O port regions from probes. The form
158 of the command is:
159
160 reserve=iobase,extent[,iobase,extent]...
161
162 In some machines it may be necessary to prevent device drivers
163 from checking for devices (auto-probing) in a specific region.
164 This may be because of hardware that reacts badly to the prob‐
165 ing, or hardware that would be mistakenly identified, or merely
166 hardware you don't want the kernel to initialize.
167
168 The reserve boot-time argument specifies an I/O port region that
169 shouldn't be probed. A device driver will not probe a reserved
170 region, unless another boot argument explicitly specifies that
171 it do so.
172
173 For example, the boot line
174
175 reserve=0x300,32 blah=0x300
176
177 keeps all device drivers except the driver for 'blah' from prob‐
178 ing 0x300-0x31f.
179
180 'mem=...'
181 The BIOS call defined in the PC specification that returns the
182 amount of installed memory was designed only to be able to
183 report up to 64MB. Linux uses this BIOS call at boot to deter‐
184 mine how much memory is installed. If you have more than 64MB
185 of RAM installed, you can use this boot argument to tell Linux
186 how much memory you have. The value is in decimal or hexadeci‐
187 mal (prefix 0x), and the suffixes 'k' (times 1024) or 'M' (times
188 1048576) can be used. Here is a quote from Linus on usage of
189 the 'mem=' parameter.
190
191 The kernel will accept any 'mem=xx' parameter you give it,
192 and if it turns out that you lied to it, it will crash hor‐
193 ribly sooner or later. The parameter indicates the highest
194 addressable RAM address, so 'mem=0x1000000' means you have
195 16MB of memory, for example. For a 96MB machine this would
196 be 'mem=0x6000000'.
197
198 NOTE: some machines might use the top of memory for BIOS
199 caching or whatever, so you might not actually have up to
200 the full 96MB addressable. The reverse is also true: some
201 chipsets will map the physical memory that is covered by
202 the BIOS area into the area just past the top of memory, so
203 the top-of-mem might actually be 96MB + 384kB for example.
204 If you tell linux that it has more memory than it actually
205 does have, bad things will happen: maybe not at once, but
206 surely eventually.
207
208 You can also use the boot argument 'mem=nopentium' to turn off 4
209 MB page tables on kernels configured for IA32 systems with a
210 pentium or newer CPU.
211
212 'panic=N'
213 By default the kernel will not reboot after a panic, but this
214 option will cause a kernel reboot after N seconds (if N is
215 greater than zero). This panic timeout can also be set by
216
217 echo N > /proc/sys/kernel/panic
218
219 'reboot=[warm|cold][,[bios|hard]]'
220 (Only when CONFIG_BUGi386 is defined.) Since 2.0.22 a reboot is
221 by default a cold reboot. One asks for the old default with
222 'reboot=warm'. (A cold reboot may be required to reset certain
223 hardware, but might destroy not yet written data in a disk
224 cache. A warm reboot may be faster.) By default a reboot is
225 hard, by asking the keyboard controller to pulse the reset line
226 low, but there is at least one type of motherboard where that
227 doesn't work. The option 'reboot=bios' will instead jump
228 through the BIOS.
229
230 'nosmp' and 'maxcpus=N'
231 (Only when __SMP__ is defined.) A command-line option of
232 'nosmp' or 'maxcpus=0' will disable SMP activation entirely; an
233 option 'maxcpus=N' limits the maximum number of CPUs activated
234 in SMP mode to N.
235
236 Boot arguments for use by kernel developers
237 'debug'
238 Kernel messages are handed off to the kernel log daemon klogd so
239 that they may be logged to disk. Messages with a priority above
240 console_loglevel are also printed on the console. (For these
241 levels, see <linux/kernel.h>.) By default this variable is set
242 to log anything more important than debug messages. This boot
243 argument will cause the kernel to also print the messages of
244 DEBUG priority. The console loglevel can also be set at run
245 time via an option to klogd. See klogd(8).
246
247 'profile=N'
248 It is possible to enable a kernel profiling function, if one
249 wishes to find out where the kernel is spending its CPU cycles.
250 Profiling is enabled by setting the variable prof_shift to a
251 nonzero value. This is done either by specifying CONFIG_PROFILE
252 at compile time, or by giving the 'profile=' option. Now the
253 value that prof_shift gets will be N, when given, or CONFIG_PRO‐
254 FILE_SHIFT, when that is given, or 2, the default. The signifi‐
255 cance of this variable is that it gives the granularity of the
256 profiling: each clock tick, if the system was executing kernel
257 code, a counter is incremented:
258
259 profile[address >> prof_shift]++;
260
261 The raw profiling information can be read from /proc/profile.
262 Probably you'll want to use a tool such as readprofile.c to
263 digest it. Writing to /proc/profile will clear the counters.
264
265 'swap=N1,N2,N3,N4,N5,N6,N7,N8'
266 Set the eight parameters max_page_age, page_advance,
267 page_decline, page_initial_age, age_cluster_fract, age_clus‐
268 ter_min, pageout_weight, bufferout_weight that control the ker‐
269 nel swap algorithm. For kernel tuners only.
270
271 'buff=N1,N2,N3,N4,N5,N6'
272 Set the six parameters max_buff_age, buff_advance, buff_decline,
273 buff_initial_age, bufferout_weight, buffermem_grace that control
274 kernel buffer memory management. For kernel tuners only.
275
276 Boot arguments for ramdisk use
277 (Only if the kernel was compiled with CONFIG_BLK_DEV_RAM.) In general
278 it is a bad idea to use a ramdisk under Linux—the system will use
279 available memory more efficiently itself. But while booting (or while
280 constructing boot floppies) it is often useful to load the floppy con‐
281 tents into a ramdisk. One might also have a system in which first some
282 modules (for file system or hardware) must be loaded before the main
283 disk can be accessed.
284
285 In Linux 1.3.48, ramdisk handling was changed drastically. Earlier,
286 the memory was allocated statically, and there was a 'ramdisk=N' param‐
287 eter to tell its size. (This could also be set in the kernel image at
288 compile time.) These days ram disks use the buffer cache, and grow
289 dynamically. For a lot of information in conjunction with the new
290 ramdisk setup, see the kernel source file Documentation/block‐
291 dev/ramdisk.txt (Documentation/ramdisk.txt in older kernels).
292
293 There are four parameters, two boolean and two integral.
294
295 'load_ramdisk=N'
296 If N=1, do load a ramdisk. If N=0, do not load a ramdisk.
297 (This is the default.)
298
299 'prompt_ramdisk=N'
300 If N=1, do prompt for insertion of the floppy. (This is the
301 default.) If N=0, do not prompt. (Thus, this parameter is
302 never needed.)
303
304 'ramdisk_size=N' or (obsolete) 'ramdisk=N'
305 Set the maximal size of the ramdisk(s) to N kB. The default is
306 4096 (4 MB).
307
308 'ramdisk_start=N'
309 Sets the starting block number (the offset on the floppy where
310 the ramdisk starts) to N. This is needed in case the ramdisk
311 follows a kernel image.
312
313 'noinitrd'
314 (Only if the kernel was compiled with CONFIG_BLK_DEV_RAM and
315 CONFIG_BLK_DEV_INITRD.) These days it is possible to compile
316 the kernel to use initrd. When this feature is enabled, the
317 boot process will load the kernel and an initial ramdisk; then
318 the kernel converts initrd into a "normal" ramdisk, which is
319 mounted read-write as root device; then /linuxrc is executed;
320 afterward the "real" root file system is mounted, and the initrd
321 file system is moved over to /initrd; finally the usual boot
322 sequence (e.g., invocation of /sbin/init) is performed.
323
324 For a detailed description of the initrd feature, see the kernel
325 source file Documentation/initrd.txt.
326
327 The 'noinitrd' option tells the kernel that although it was com‐
328 piled for operation with initrd, it should not go through the
329 above steps, but leave the initrd data under /dev/initrd. (This
330 device can be used only once: the data is freed as soon as the
331 last process that used it has closed /dev/initrd.)
332
333 Boot arguments for SCSI devices
334 General notation for this section:
335
336 iobase -- the first I/O port that the SCSI host occupies. These are
337 specified in hexadecimal notation, and usually lie in the range from
338 0x200 to 0x3ff.
339
340 irq -- the hardware interrupt that the card is configured to use.
341 Valid values will be dependent on the card in question, but will usu‐
342 ally be 5, 7, 9, 10, 11, 12, and 15. The other values are usually used
343 for common peripherals like IDE hard disks, floppies, serial ports, and
344 so on.
345
346 scsi-id -- the ID that the host adapter uses to identify itself on the
347 SCSI bus. Only some host adapters allow you to change this value, as
348 most have it permanently specified internally. The usual default value
349 is 7, but the Seagate and Future Domain TMC-950 boards use 6.
350
351 parity -- whether the SCSI host adapter expects the attached devices to
352 supply a parity value with all information exchanges. Specifying a one
353 indicates parity checking is enabled, and a zero disables parity check‐
354 ing. Again, not all adapters will support selection of parity behavior
355 as a boot argument.
356
357 'max_scsi_luns=...'
358 A SCSI device can have a number of 'subdevices' contained within
359 itself. The most common example is one of the new SCSI CD-ROMs
360 that handle more than one disk at a time. Each CD is addressed
361 as a 'Logical Unit Number' (LUN) of that particular device. But
362 most devices, such as hard disks, tape drives and such are only
363 one device, and will be assigned to LUN zero.
364
365 Some poorly designed SCSI devices cannot handle being probed for
366 LUNs not equal to zero. Therefore, if the compile-time flag
367 CONFIG_SCSI_MULTI_LUN is not set, newer kernels will by default
368 only probe LUN zero.
369
370 To specify the number of probed LUNs at boot, one enters
371 'max_scsi_luns=n' as a boot arg, where n is a number between one
372 and eight. To avoid problems as described above, one would use
373 n=1 to avoid upsetting such broken devices.
374
375 SCSI tape configuration
376 Some boot time configuration of the SCSI tape driver can be
377 achieved by using the following:
378
379 st=buf_size[,write_threshold[,max_bufs]]
380
381 The first two numbers are specified in units of kB. The default
382 buf_size is 32kB, and the maximum size that can be specified is
383 a ridiculous 16384kB. The write_threshold is the value at which
384 the buffer is committed to tape, with a default value of 30kB.
385 The maximum number of buffers varies with the number of drives
386 detected, and has a default of two. An example usage would be:
387
388 st=32,30,2
389
390 Full details can be found in the file Documentation/scsi/st.txt
391 (or drivers/scsi/README.st for older kernels) in the Linux ker‐
392 nel source.
393
394 Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI configuration
395 The aha numbers refer to cards and the aic numbers refer to the
396 actual SCSI chip on these type of cards, including the Sound‐
397 blaster-16 SCSI.
398
399 The probe code for these SCSI hosts looks for an installed BIOS,
400 and if none is present, the probe will not find your card. Then
401 you will have to use a boot argument of the form:
402
403 aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]]
404
405 If the driver was compiled with debugging enabled, a sixth value
406 can be specified to set the debug level.
407
408 All the parameters are as described at the top of this section,
409 and the reconnect value will allow device disconnect/reconnect
410 if a nonzero value is used. An example usage is as follows:
411
412 aha152x=0x340,11,7,1
413
414 Note that the parameters must be specified in order, meaning
415 that if you want to specify a parity setting, then you will have
416 to specify an iobase, irq, scsi-id and reconnect value as well.
417
418 Adaptec aha154x configuration
419 The aha1542 series cards have an i82077 floppy controller
420 onboard, while the aha1540 series cards do not. These are bus‐
421 mastering cards, and have parameters to set the "fairness" that
422 is used to share the bus with other devices. The boot argument
423 looks like the following.
424
425 aha1542=iobase[,buson,busoff[,dmaspeed]]
426
427 Valid iobase values are usually one of: 0x130, 0x134, 0x230,
428 0x234, 0x330, 0x334. Clone cards may permit other values.
429
430 The buson, busoff values refer to the number of microseconds
431 that the card dominates the ISA bus. The defaults are 11us on,
432 and 4us off, so that other cards (such as an ISA LANCE Ethernet
433 card) have a chance to get access to the ISA bus.
434
435 The dmaspeed value refers to the rate (in MB/s) at which the DMA
436 (Direct Memory Access) transfers proceed. The default is 5MB/s.
437 Newer revision cards allow you to select this value as part of
438 the soft-configuration, older cards use jumpers. You can use
439 values up to 10MB/s assuming that your motherboard is capable of
440 handling it. Experiment with caution if using values over
441 5MB/s.
442
443 Adaptec aha274x, aha284x, aic7xxx configuration
444 These boards can accept an argument of the form:
445
446 aic7xxx=extended,no_reset
447
448 The extended value, if nonzero, indicates that extended transla‐
449 tion for large disks is enabled. The no_reset value, if
450 nonzero, tells the driver not to reset the SCSI bus when setting
451 up the host adapter at boot.
452
453 AdvanSys SCSI Hosts configuration ('advansys=')
454 The AdvanSys driver can accept up to four I/O addresses that
455 will be probed for an AdvanSys SCSI card. Note that these val‐
456 ues (if used) do not effect EISA or PCI probing in any way.
457 They are used only for probing ISA and VLB cards. In addition,
458 if the driver has been compiled with debugging enabled, the
459 level of debugging output can be set by adding an 0xdeb[0-f]
460 parameter. The 0-f allows setting the level of the debugging
461 messages to any of 16 levels of verbosity.
462
463 AM53C974
464 Syntax:
465
466 AM53C974=host-scsi-id,target-scsi-id,max-rate,max-offset
467
468 BusLogic SCSI Hosts configuration ('BusLogic=')
469
470 Syntax:
471 BusLogic=N1,N2,N3,N4,N5,S1,S2,...
472
473 For an extensive discussion of the BusLogic command line parame‐
474 ters, see the kernel source file drivers/scsi/BusLogic.c. The
475 text below is a very much abbreviated extract.
476
477 The parameters N1-N5 are integers. The parameters S1,... are
478 strings. N1 is the I/O Address at which the Host Adapter is
479 located. N2 is the Tagged Queue Depth to use for Target Devices
480 that support Tagged Queuing. N3 is the Bus Settle Time in sec‐
481 onds. This is the amount of time to wait between a Host Adapter
482 Hard Reset which initiates a SCSI Bus Reset and issuing any SCSI
483 Commands. N4 is the Local Options (for one Host Adapter). N5
484 is the Global Options (for all Host Adapters).
485
486 The string options are used to provide control over Tagged Queu‐
487 ing (TQ:Default, TQ:Enable, TQ:Disable, TQ:<Per-Target-Spec>),
488 over Error Recovery (ER:Default, ER:HardReset, ER:BusDeviceRe‐
489 set, ER:None, ER:<Per-Target-Spec>), and over Host Adapter Prob‐
490 ing (NoProbe, NoProbeISA, NoSortPCI).
491
492 EATA/DMA configuration
493 The default list of I/O ports to be probed can be changed by
494
495 eata=iobase,iobase,....
496
497 Future Domain TMC-16x0 configuration
498 Syntax:
499
500 fdomain=iobase,irq[,adapter_id]
501
502 Great Valley Products (GVP) SCSI controller configuration
503 Syntax:
504
505 gvp11=dma_transfer_bitmask
506
507 Future Domain TMC-8xx, TMC-950 configuration
508 Syntax:
509
510 tmc8xx=mem_base,irq
511
512 The mem_base value is the value of the memory mapped I/O region
513 that the card uses. This will usually be one of the following
514 values: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
515
516 IN2000 configuration
517 Syntax:
518
519 in2000=S
520
521 where S is a comma-separated string of items keyword[:value].
522 Recognized keywords (possibly with value) are: ioport:addr,
523 noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x.
524 For the function of these parameters, see the kernel source file
525 drivers/scsi/in2000.c.
526
527 NCR5380 and NCR53C400 configuration
528 The boot argument is of the form
529
530 ncr5380=iobase,irq,dma
531
532 or
533
534 ncr53c400=iobase,irq
535
536 If the card doesn't use interrupts, then an IRQ value of 255
537 (0xff) will disable interrupts. An IRQ value of 254 means to
538 autoprobe. More details can be found in the file Documenta‐
539 tion/scsi/g_NCR5380.txt (or drivers/scsi/README.g_NCR5380 for
540 older kernels) in the Linux kernel source.
541
542 NCR53C8xx configuration
543 Syntax:
544
545 ncr53c8xx=S
546
547 where S is a comma-separated string of items keyword:value.
548 Recognized keywords are: mpar (master_parity), spar (scsi_par‐
549 ity), disc (disconnection), specf (special_features), ultra
550 (ultra_scsi), fsn (force_sync_nego), tags (default_tags), sync
551 (default_sync), verb (verbose), debug (debug), burst
552 (burst_max). For the function of the assigned values, see the
553 kernel source file drivers/scsi/ncr53c8xx.c.
554
555 NCR53c406a configuration
556 Syntax:
557
558 ncr53c406a=iobase[,irq[,fastpio]]
559
560 Specify irq = 0 for noninterrupt driven mode. Set fastpio = 1
561 for fast pio mode, 0 for slow mode.
562
563 Pro Audio Spectrum configuration
564 The PAS16 uses a NC5380 SCSI chip, and newer models support
565 jumperless configuration. The boot argument is of the form:
566
567 pas16=iobase,irq
568
569 The only difference is that you can specify an IRQ value of 255,
570 which will tell the driver to work without using interrupts,
571 albeit at a performance loss. The iobase is usually 0x388.
572
573 Seagate ST-0x configuration
574 If your card is not detected at boot time, you will then have to
575 use a boot argument of the form:
576
577 st0x=mem_base,irq
578
579 The mem_base value is the value of the memory mapped I/O region
580 that the card uses. This will usually be one of the following
581 values: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
582
583 Trantor T128 configuration
584 These cards are also based on the NCR5380 chip, and accept the
585 following options:
586
587 t128=mem_base,irq
588
589 The valid values for mem_base are as follows: 0xcc000, 0xc8000,
590 0xdc000, 0xd8000.
591
592 UltraStor 14F/34F configuration
593 The default list of I/O ports to be probed can be changed by
594
595 eata=iobase,iobase,....
596
597 WD7000 configuration
598 Syntax:
599
600 wd7000=irq,dma,iobase
601
602 Commodore Amiga A2091/590 SCSI controller configuration
603 Syntax:
604
605 wd33c93=S
606
607 where S is a comma-separated string of options. Recognized
608 options are nosync:bitmask, nodma:x, period:ns, disconnect:x,
609 debug:x, clock:x, next. For details, see the kernel source file
610 drivers/scsi/wd33c93.c.
611
612 Hard disks
613 IDE Disk/CD-ROM Driver Parameters
614 The IDE driver accepts a number of parameters, which range from
615 disk geometry specifications, to support for broken controller
616 chips. Drive-specific options are specified by using 'hdX='
617 with X in 'a'-'h'.
618
619 Non-drive-specific options are specified with the prefix 'hd='.
620 Note that using a drive-specific prefix for a non-drive-specific
621 option will still work, and the option will just be applied as
622 expected.
623
624 Also note that 'hd=' can be used to refer to the next unspeci‐
625 fied drive in the (a, ..., h) sequence. For the following dis‐
626 cussions, the 'hd=' option will be cited for brevity. See the
627 file Documentation/ide.txt (or drivers/block/README.ide for
628 older kernels) in the Linux kernel source for more details.
629
630 The 'hd=cyls,heads,sects[,wpcom[,irq]]' options
631 These options are used to specify the physical geometry of the
632 disk. Only the first three values are required. The cylin‐
633 der/head/sectors values will be those used by fdisk. The write
634 precompensation value is ignored for IDE disks. The IRQ value
635 specified will be the IRQ used for the interface that the drive
636 resides on, and is not really a drive-specific parameter.
637
638 The 'hd=serialize' option
639 The dual IDE interface CMD-640 chip is broken as designed such
640 that when drives on the secondary interface are used at the same
641 time as drives on the primary interface, it will corrupt your
642 data. Using this option tells the driver to make sure that both
643 interfaces are never used at the same time.
644
645 The 'hd=dtc2278' option
646 This option tells the driver that you have a DTC-2278D IDE
647 interface. The driver then tries to do DTC-specific operations
648 to enable the second interface and to enable faster transfer
649 modes.
650
651 The 'hd=noprobe' option
652 Do not probe for this drive. For example,
653
654 hdb=noprobe hdb=1166,7,17
655
656 would disable the probe, but still specify the drive geometry so
657 that it would be registered as a valid block device, and hence
658 usable.
659
660 The 'hd=nowerr' option
661 Some drives apparently have the WRERR_STAT bit stuck on perma‐
662 nently. This enables a work-around for these broken devices.
663
664 The 'hd=cdrom' option
665 This tells the IDE driver that there is an ATAPI compatible CD-
666 ROM attached in place of a normal IDE hard disk. In most cases
667 the CD-ROM is identified automatically, but if it isn't then
668 this may help.
669
670 Standard ST-506 Disk Driver Options ('hd=')
671 The standard disk driver can accept geometry arguments for the
672 disks similar to the IDE driver. Note however that it expects
673 only three values (C/H/S); any more or any less and it will
674 silently ignore you. Also, it accepts only 'hd=' as an argu‐
675 ment, that is, 'hda=' and so on are not valid here. The format
676 is as follows:
677
678 hd=cyls,heads,sects
679
680 If there are two disks installed, the above is repeated with the
681 geometry parameters of the second disk.
682
683 XT Disk Driver Options ('xd=')
684 If you are unfortunate enough to be using one of these old 8 bit
685 cards that move data at a whopping 125kB/s then here is the
686 scoop. If the card is not recognized, you will have to use a
687 boot argument of the form:
688
689 xd=type,irq,iobase,dma_chan
690
691 The type value specifies the particular manufacturer of the
692 card, overriding autodetection. For the types to use, consult
693 the drivers/block/xd.c source file of the kernel you are using.
694 The type is an index in the list xd_sigs and in the course of
695 time types have been added to or deleted from the middle of the
696 list, changing all type numbers. Today (Linux 2.5.0) the types
697 are 0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital;
698 6,7,8=Seagate; 9=Omti; 10=XEBEC, and where here several types
699 are given with the same designation, they are equivalent.
700
701 The xd_setup() function does no checking on the values, and
702 assumes that you entered all four values. Don't disappoint it.
703 Here is an example usage for a WD1002 controller with the BIOS
704 disabled/removed, using the 'default' XT controller parameters:
705
706 xd=2,5,0x320,3
707
708 Syquest's EZ* removable disks
709 Syntax:
710
711 ez=iobase[,irq[,rep[,nybble]]]
712
713 IBM MCA bus devices
714 See also the kernel source file Documentation/mca.txt.
715
716 PS/2 ESDI hard disks
717 It is possible to specify the desired geometry at boot time:
718
719 ed=cyls,heads,sectors.
720
721 For a ThinkPad-720, add the option
722
723 tp720=1.
724
725 IBM Microchannel SCSI Subsystem configuration
726 Syntax:
727
728 ibmmcascsi=N
729
730 where N is the pun (SCSI ID) of the subsystem.
731
732 The Aztech Interface
733 The syntax for this type of card is:
734
735 aztcd=iobase[,magic_number]
736
737 If you set the magic_number to 0x79 then the driver will try and
738 run anyway in the event of an unknown firmware version. All
739 other values are ignored.
740
741 Parallel port CD-ROM drives
742 Syntax:
743
744 pcd.driveN=prt,pro,uni,mod,slv,dly
745 pcd.nice=nice
746
747 where 'port' is the base address, 'pro' is the protocol number,
748 'uni' is the unit selector (for chained devices), 'mod' is the
749 mode (or -1 to choose the best automatically), 'slv' is 1 if it
750 should be a slave, and 'dly' is a small integer for slowing down
751 port accesses. The 'nice' parameter controls the driver's use
752 of idle CPU time, at the expense of some speed.
753
754 The CDU-31A and CDU-33A Sony Interface
755 This CD-ROM interface is found on some of the Pro Audio Spectrum
756 sound cards, and other Sony supplied interface cards. The syn‐
757 tax is as follows:
758
759 cdu31a=iobase,[irq[,is_pas_card]]
760
761 Specifying an IRQ value of zero tells the driver that hardware
762 interrupts aren't supported (as on some PAS cards). If your
763 card supports interrupts, you should use them as it cuts down on
764 the CPU usage of the driver.
765
766 The is_pas_card should be entered as 'PAS' if using a Pro Audio
767 Spectrum card, and otherwise it should not be specified at all.
768
769 The CDU-535 Sony Interface
770 The syntax for this CD-ROM interface is:
771
772 sonycd535=iobase[,irq]
773
774 A zero can be used for the I/O base as a 'placeholder' if one
775 wishes to specify an IRQ value.
776
777 The GoldStar Interface
778 The syntax for this CD-ROM interface is:
779
780 gscd=iobase
781
782 The ISP16 CD-ROM Interface
783 Syntax:
784
785 isp16=[iobase[,irq[,dma[,type]]]]
786
787 (Three integers and a string.) If the type is given as
788 'noisp16', the interface will not be configured. Other recog‐
789 nized types are: 'Sanyo", 'Sony', 'Panasonic' and 'Mitsumi'.
790
791 The Mitsumi Standard Interface
792 The syntax for this CD-ROM interface is:
793
794 mcd=iobase,[irq[,wait_value]]
795
796 The wait_value is used as an internal timeout value for people
797 who are having problems with their drive, and may or may not be
798 implemented depending on a compile-time #define. The Mitsumi
799 FX400 is an IDE/ATAPI CD-ROM player and does not use the mcd
800 driver.
801
802 The Mitsumi XA/MultiSession Interface
803 This is for the same hardware as above, but the driver has
804 extended features. Syntax:
805
806 mcdx=iobase[,irq]
807
808 The Optics Storage Interface
809 The syntax for this type of card is:
810
811 optcd=iobase
812
813 The Phillips CM206 Interface
814 The syntax for this type of card is:
815
816 cm206=[iobase][,irq]
817
818 The driver assumes numbers between 3 and 11 are IRQ values, and
819 numbers between 0x300 and 0x370 are I/O ports, so you can spec‐
820 ify one, or both numbers, in any order. It also accepts
821 'cm206=auto' to enable autoprobing.
822
823 The Sanyo Interface
824 The syntax for this type of card is:
825
826 sjcd=iobase[,irq[,dma_channel]]
827
828 The SoundBlaster Pro Interface
829 The syntax for this type of card is:
830
831 sbpcd=iobase,type
832
833 where type is one of the following (case sensitive) strings:
834 'SoundBlaster', 'LaserMate', or 'SPEA'. The I/O base is that of
835 the CD-ROM interface, and not that of the sound portion of the
836 card.
837
838 Ethernet devices
839 Different drivers make use of different parameters, but they all at
840 least share having an IRQ, an I/O port base value, and a name. In its
841 most generic form, it looks something like this:
842
843 ether=irq,iobase[,param_1[,...param_8]],name
844
845 The first nonnumeric argument is taken as the name. The param_n values
846 (if applicable) usually have different meanings for each different
847 card/driver. Typical param_n values are used to specify things like
848 shared memory address, interface selection, DMA channel and the like.
849
850 The most common use of this parameter is to force probing for a second
851 ethercard, as the default is to probe only for one. This can be accom‐
852 plished with a simple:
853
854 ether=0,0,eth1
855
856 Note that the values of zero for the IRQ and I/O base in the above
857 example tell the driver(s) to autoprobe.
858
859 The Ethernet-HowTo has extensive documentation on using multiple cards
860 and on the card/driver-specific implementation of the param_n values
861 where used. Interested readers should refer to the section in that
862 document on their particular card.
863
864 The floppy disk driver
865 There are many floppy driver options, and they are all listed in Docu‐
866 mentation/floppy.txt (or drivers/block/README.fd for older kernels) in
867 the Linux kernel source. This information is taken directly from that
868 file.
869
870 floppy=mask,allowed_drive_mask
871 Sets the bit mask of allowed drives to mask. By default, only
872 units 0 and 1 of each floppy controller are allowed. This is
873 done because certain nonstandard hardware (ASUS PCI mother‐
874 boards) mess up the keyboard when accessing units 2 or 3. This
875 option is somewhat obsoleted by the cmos option.
876
877 floppy=all_drives
878 Sets the bit mask of allowed drives to all drives. Use this if
879 you have more than two drives connected to a floppy controller.
880
881 floppy=asus_pci
882 Sets the bit mask to allow only units 0 and 1. (The default)
883
884 floppy=daring
885 Tells the floppy driver that you have a well behaved floppy con‐
886 troller. This allows more efficient and smoother operation, but
887 may fail on certain controllers. This may speed up certain
888 operations.
889
890 floppy=0,daring
891 Tells the floppy driver that your floppy controller should be
892 used with caution.
893
894 floppy=one_fdc
895 Tells the floppy driver that you have only floppy controller
896 (default)
897
898 floppy=two_fdc or floppy=address,two_fdc
899 Tells the floppy driver that you have two floppy controllers.
900 The second floppy controller is assumed to be at address. If
901 address is not given, 0x370 is assumed.
902
903 floppy=thinkpad
904 Tells the floppy driver that you have a Thinkpad. Thinkpads use
905 an inverted convention for the disk change line.
906
907 floppy=0,thinkpad
908 Tells the floppy driver that you don't have a Thinkpad.
909
910 floppy=drive,type,cmos
911 Sets the cmos type of drive to type. Additionally, this drive
912 is allowed in the bit mask. This is useful if you have more
913 than two floppy drives (only two can be described in the physi‐
914 cal cmos), or if your BIOS uses nonstandard CMOS types. Setting
915 the CMOS to 0 for the first two drives (default) makes the
916 floppy driver read the physical cmos for those drives.
917
918 floppy=unexpected_interrupts
919 Print a warning message when an unexpected interrupt is received
920 (default behavior)
921
922 floppy=no_unexpected_interrupts or floppy=L40SX
923 Don't print a message when an unexpected interrupt is received.
924 This is needed on IBM L40SX laptops in certain video modes.
925 (There seems to be an interaction between video and floppy. The
926 unexpected interrupts only affect performance, and can safely be
927 ignored.)
928
929 The sound driver
930 The sound driver can also accept boot arguments to override the com‐
931 piled in values. This is not recommended, as it is rather complex. It
932 is described in the Linux kernel source file Documenta‐
933 tion/sound/oss/README.OSS (drivers/sound/Readme.linux in older kernel
934 versions). It accepts a boot argument of the form:
935
936 sound=device1[,device2[,device3...[,device10]]]
937
938 where each deviceN value is of the following format 0xTaaaId and
939 the bytes are used as follows:
940
941 T - device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
942 7=SB16-MPU401
943
944 aaa - I/O address in hex.
945
946 I - interrupt line in hex (i.e 10=a, 11=b, ...)
947
948 d - DMA channel.
949
950 As you can see it gets pretty messy, and you are better off to
951 compile in your own personal values as recommended. Using a
952 boot argument of 'sound=0' will disable the sound driver
953 entirely.
954
955 ISDN drivers
956 The ICN ISDN driver
957 Syntax:
958
959 icn=iobase,membase,icn_id1,icn_id2
960
961 where icn_id1,icn_id2 are two strings used to identify the card
962 in kernel messages.
963
964 The PCBIT ISDN driver
965 Syntax:
966
967 pcbit=membase1,irq1[,membase2,irq2]
968
969 where membaseN is the shared memory base of the N'th card, and
970 irqN is the interrupt setting of the N'th card. The default is
971 IRQ 5 and membase 0xD0000.
972
973 The Teles ISDN driver
974 Syntax:
975
976 teles=iobase,irq,membase,protocol,teles_id
977
978 where iobase is the I/O port address of the card, membase is the
979 shared memory base address of the card, irq is the interrupt
980 channel the card uses, and teles_id is the unique ASCII string
981 identifier.
982
983 Serial port drivers
984 The RISCom/8 Multiport Serial Driver ('riscom8=')
985 Syntax:
986
987 riscom=iobase1[,iobase2[,iobase3[,iobase4]]]
988
989 More details can be found in the kernel source file Documenta‐
990 tion/riscom8.txt.
991
992 The DigiBoard Driver ('digi=')
993 If this option is used, it should have precisely six parameters.
994 Syntax:
995
996 digi=status,type,altpin,numports,iobase,membase
997
998 The parameters maybe given as integers, or as strings. If
999 strings are used, then iobase and membase should be given in
1000 hexadecimal. The integer arguments (fewer may be given) are in
1001 order: status (Enable(1) or Disable(0) this card), type
1002 (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), altpin (Enable(1)
1003 or Disable(0) alternate pin arrangement), numports (number of
1004 ports on this card), iobase (I/O Port where card is configured
1005 (in HEX)), membase (base of memory window (in HEX)). Thus, the
1006 following two boot prompt arguments are equivalent:
1007
1008 digi=E,PC/Xi,D,16,200,D0000
1009 digi=1,0,0,16,0x200,851968
1010
1011 More details can be found in the kernel source file Documenta‐
1012 tion/digiboard.txt.
1013
1014 The Baycom Serial/Parallel Radio Modem
1015 Syntax:
1016
1017 baycom=iobase,irq,modem
1018
1019 There are precisely 3 parameters; for several cards, give sev‐
1020 eral 'baycom=' commands. The modem parameter is a string that
1021 can take one of the values ser12, ser12*, par96, par96*. Here
1022 the * denotes that software DCD is to be used, and ser12/par96
1023 chooses between the supported modem types. For more details,
1024 see the file Documentation/networking/baycom.txt (or driv‐
1025 ers/net/README.baycom for older kernels) in the Linux kernel
1026 source.
1027
1028 Soundcard radio modem driver
1029 Syntax:
1030
1031 soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode
1032
1033 All parameters except the last are integers; the dummy 0 is
1034 required because of a bug in the setup code. The mode parameter
1035 is a string with syntax hw:modem, where hw is one of sbc, wss,
1036 wssfdx and modem is one of afsk1200, fsk9600.
1037
1038 The line printer driver
1039 'lp='
1040 Syntax:
1041
1042 lp=0
1043 lp=auto
1044 lp=reset
1045 lp=port[,port...]
1046
1047 You can tell the printer driver what ports to use and what ports
1048 not to use. The latter comes in handy if you don't want the
1049 printer driver to claim all available parallel ports, so that
1050 other drivers (e.g., PLIP, PPA) can use them instead.
1051
1052 The format of the argument is multiple port names. For example,
1053 lp=none,parport0 would use the first parallel port for lp1, and
1054 disable lp0. To disable the printer driver entirely, one can
1055 use lp=0.
1056
1057 WDT500/501 driver
1058 Syntax:
1059
1060 wdt=io,irq
1061
1062 Mouse drivers
1063 'bmouse=irq'
1064 The busmouse driver accepts only one parameter, that being the
1065 hardware IRQ value to be used.
1066
1067 'msmouse=irq'
1068 And precisely the same is true for the msmouse driver.
1069
1070 ATARI mouse setup
1071 Syntax:
1072
1073 atamouse=threshold[,y-threshold]
1074
1075 If only one argument is given, it is used for both x-threshold
1076 and y-threshold. Otherwise, the first argument is the x-thresh‐
1077 old, and the second the y-threshold. These values must lie
1078 between 1 and 20 (inclusive); the default is 2.
1079
1080 Video hardware
1081 'no-scroll'
1082 This option tells the console driver not to use hardware scroll
1083 (where a scroll is effected by moving the screen origin in video
1084 memory, instead of moving the data). It is required by certain
1085 Braille machines.
1086
1088 lilo.conf(5), klogd(8), lilo(8), mount(8)
1089
1090 Large parts of this man page have been derived from the Boot Parameter
1091 HOWTO (version 1.0.1) written by Paul Gortmaker. More information may
1092 be found in this (or a more recent) HOWTO. An up-to-date source of
1093 information is the kernel source file Documentation/kernel-parame‐
1094 ters.txt.
1095
1097 This page is part of release 3.53 of the Linux man-pages project. A
1098 description of the project, and information about reporting bugs, can
1099 be found at http://www.kernel.org/doc/man-pages/.
1100
1101
1102
1103Linux 2013-06-08 BOOTPARAM(7)