Penguin
Blame: bootparam(7)
EditPageHistoryDiffInfoLikePages
Annotated edit history of bootparam(7) version 3, including all changes. View license author blame.
Rev Author # Line
1 perry 1 BOOTPARAM
2 !!!BOOTPARAM
3 NAME
4 DESCRIPTION
5 THE ARGUMENT LIST
6 GENERAL NON-DEVICE SPECIFIC BOOT ARGS
7 BOOT ARGUMENTS FOR USE BY KERNEL DEVELOPERS
8 BOOT ARGUMENTS FOR RAMDISK USE
9 BOOT ARGUMENTS FOR SCSI DEVICES
10 HARD DISKS
11 IBM MCA BUS DEVICES
12 CD-ROMs (Non-SCSI/ATAPI/IDE)
13 ETHERNET DEVICES
14 THE FLOPPY DISK DRIVER
15 THE SOUND DRIVER
16 ISDN DRIVERS
17 SERIAL PORT DRIVERS
18 THE LINE PRINTER DRIVER
19 MOUSE DRIVERS
20 VIDEO HARDWARE
21 AUTHORS
22 SEE ALSO
23 ----
24 !!NAME
25
26
27 bootparam - Introduction to boot time parameters of the Linux kernel
28 !!DESCRIPTION
29
30
31 The Linux kernel accepts certain `command line options' or
32 `boot time parameters' at the moment it is started. In
33 general this is used to supply the kernel with information
34 about hardware parameters that the kernel would not be able
35 to determine on its own, or to avoid/override the values
36 that the kernel would otherwise detect.
37
38
39 When the kernel is booted directly by the BIOS (say from a
40 floppy to which you copied a kernel using `cp zImage
41 /dev/fd0'), you have no opportunity to specify any
42 parameters. So, in order to take advantage of this
43 possibility you have to use software that is able to pass
44 parameters, like LILO or loadlin. For a few parameters one
45 can also modify the kernel image itself, using rdev, see
46 rdev(8) for further details.
47
48
49 The LILO program (LInux LOader) written by Werner
50 Almesberger is the most commonly used. It has the ability to
51 boot various kernels, and stores the configuration
52 information in a plain text file. (See lilo(8) and
3 perry 53 lilo.conf(5).) LILO can boot DOS, OS/2, Linux,
2 perry 54 FreeBSD, !UnixWare, etc., and is quite flexible.
1 perry 55
56
2 perry 57 The other commonly used Linux loader is `!LoadLin' which is a
1 perry 58 DOS program that has the capability to launch a Linux kernel
59 from the DOS prompt (with boot-args) assuming that certain
60 resources are available. This is good for people that want
61 to launch Linux from DOS.
62
63
64 It is also very useful if you have certain hardware which
65 relies on the supplied DOS driver to put the hardware into a
2 perry 66 known state. A common example is `!SoundBlaster Compatible'
1 perry 67 sound cards that require the DOS driver to twiddle a few
68 mystical registers to put the card into a SB compatible
69 mode. Booting DOS with the supplied driver, and then loading
70 Linux from the DOS prompt with loadlin avoids the reset of
71 the card that happens if one rebooted instead.
72 !!THE ARGUMENT LIST
73
74
75 The kernel command line is parsed into a list of strings
76 (boot arguments) separated by spaces. Most of the boot args
77 take the form of:
78
79
80 name[[=value_1][[,value_2]...[[,value_10]
81
82
83 where `name' is a unique keyword that is used to identify
84 what part of the kernel the associated values (if any) are
85 to be given to. Note the limit of 10 is real, as the present
86 code only handles 10 comma separated parameters per keyword.
87 (However, you can re-use the same keyword with up to an
88 additional 10 parameters in unusually complicated
89 situations, assuming the setup function supports
90 it.)
91
92
93 Most of the sorting goes on in linux/init/main.c. First, the
94 kernel checks to see if the argument is any of the special
95 arguments `root=', `nfsroot=', `nfsaddrs=', `ro', `rw',
96 `debug' or `init'. The meaning of these special arguments is
97 described below.
98
99
100 Then it walks a list of setup functions (contained in the
101 bootsetups array) to see if the specified argument string
102 (such as `foo') has been associated with a setup function
103 (`foo_setup()') for a particular device or part of the
104 kernel. If you passed the kernel the line foo=3,4,5,6 then
105 the kernel would search the bootsetups array to see if `foo'
106 was registered. If it was, then it would call the setup
107 function associated with `foo' (foo_setup()) and hand it the
108 arguments 3, 4, 5 and 6 as given on the kernel command
109 line.
110
111
112 Anything of the form `foo=bar' that is not accepted as a
113 setup funtion as described above is then interpreted as an
114 environment variable to be set. A (useless?) example would
115 be to use `TERM=vt100' as a boot argument.
116
117
118 Any remaining arguments that were not picked up by the
119 kernel and were not interpreted as environment variables are
120 then passed onto process one, which is usually the init
121 program. The most common argument that is passed to the init
122 process is the word `single' which instructs init to boot
123 the computer in single user mode, and not launch all the
124 usual daemons. Check the manual page for the version of init
125 installed on your system to see what arguments it
126 accepts.
127 !!GENERAL NON-DEVICE SPECIFIC BOOT ARGS
128
129
130 __`init=...'__
131
132
133 This sets the initial command to be executed by the kernel.
134 If this is not set, or cannot be found, the kernel will try
135 ''/etc/init'', then ''/bin/init'', then
136 ''/sbin/init'', then ''/bin/sh'' and panic if all of
137 this fails.
138
139
140 __`nfsaddrs=...'__
141
142
143 This sets the nfs boot address to the given string. This
144 boot address is used in case of a net boot.
145
146
147 __`nfsroot=...'__
148
149
150 This sets the nfs root name to the given string. If this
151 string does not begin with '/' or ',' or a digit, then it is
152 prefixed by `/tftpboot/'. This root name is used in case of
153 a net boot.
154
155
156 __`no387'__
157
158
159 (Only when CONFIG_BUGi386 is defined.) Some i387 coprocessor
160 chips have bugs that show up when used in 32 bit protected
161 mode. For example, some of the early ULSI-387 chips would
162 cause solid lockups while performing floating point
163 calculations. Using the `no387' boot arg causes Linux to
164 ignore the maths coprocessor even if you have one. Of course
165 you must then have your kernel compiled with math emulation
166 support!
167
168
169 __`no-hlt'__
170
171
172 (Only when CONFIG_BUGi386 is defined.) Some of the early
173 i486DX-100 chips have a problem with the `hlt' instruction,
174 in that they can't reliably return to operating mode after
175 this instruction is used. Using the `no-hlt' instruction
176 tells Linux to just run an infinite loop when there is
177 nothing else to do, and to not halt the CPU. This allows
178 people with these broken chips to use Linux.
179
180
181 __`root=...'__
182
183
184 This argument tells the kernel what device is to be used as
185 the root filesystem while booting. The default of this
186 setting is determined at compile time, and usually is the
187 value of the root device of the system that the kernel was
188 built on. To override this value, and select the second
189 floppy drive as the root device, one would use
190 `root=/dev/fd1'. (The root device can also be set using
191 rdev(8).)
192
193
194 The root device can be specified symbolically or
195 numerically. A symbolic specification has the form
196 /dev/XXYN, where XX designates the device type (`hd' for
197 ST-506 compatible hard disk, with Y in `a'-`d'; `sd' for
198 SCSI compatible disk, with Y in `a'-`e'; `ad' for Atari ACSI
199 disk, with Y in `a'-`e', `ez' for a Syquest EZ135 parallel
200 port removable drive, with Y=`a', `xd' for XT compatible
201 disk, with Y either `a' or `b'; `fd' for floppy disk, with Y
202 the floppy drive number - fd0 would be the DOS `A:' drive,
203 and fd1 would be `B:'), Y the driver letter or number, and N
204 the number (in decimal) of the partition on this device
205 (absent in the case of floppies). Recent kernels allow many
206 other types, mostly for CD-ROMs: nfs, ram, scd, mcd, cdu535,
207 aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd. (The type nfs
208 specifies a net boot; ram refers to a ram
209 disk.)
210
211
212 Note that this has nothing to do with the designation of
213 these devices on your file system. The `/dev/' part is
214 purely conventional.
215
216
217 The more awkward and less portable numeric specification of
218 the above possible root devices in major/minor format is
219 also accepted. (E.g., /dev/sda3 is major 8, minor 3, so you
220 could use `root=0x803' as an alternative.)
221
222
223 __`ro' and `rw'__
224
225
226 The `ro' option tells the kernel to mount the root
227 filesystem as `readonly' so that filesystem consistency
228 check programs (fsck) can do their work on a quiescent file
229 system. No processes can write to files on the filesystem in
230 question until it is `remounted' as read/write capable,
231 e.g., by `mount -w -n -o remount /'. (See also
232 mount(8).)
233
234
235 The `rw' option tells the kernel to mount the root
236 filesystem read/write. This is the default.
237
238
239 The choice between read-only and read/write can also be set
240 using rdev(8).
241
242
243 __`reserve=...'__
244
245
246 This is used to protect I/O port regions from probes. The
247 form of the command is:
248
249
250 __reserve=__''iobase,extent[[,iobase,extent]...''
251
252
253 In some machines it may be necessary to prevent device
254 drivers from checking for devices (auto-probing) in a
255 specific region. This may be because of hardware that reacts
256 badly to the probing, or hardware that would be mistakenly
257 identified, or merely hardware you don't want the kernel to
258 initialize.
259
260
261 The reserve boot-time argument specifies an I/O port region
262 that shouldn't be probed. A device driver will not probe a
263 reserved region, unless another boot argument explicitly
264 specifies that it do so.
265
266
267 For example, the boot line
268
269
270 reserve=0x300,32 blah=0x300
271
272
273 keeps all device drivers except the driver for `blah' from
274 probing 0x300-0x31f.
275
276
277 __`mem=...'__
278
279
280 The BIOS call defined in the PC specification that returns
281 the amount of installed memory was only designed to be able
282 to report up to 64MB. Linux uses this BIOS call at boot to
283 determine how much memory is installed. If you have more
284 than 64MB of RAM installed, you can use this boot arg to
285 tell Linux how much memory you have. The value is in decimal
286 or hexadecimal (prefix 0x), and the suffixes `k' (times
287 1024) or `M' (times 1048576) can be used. Here is a quote
288 from Linus on usage of the `mem=' parameter.
289
290
291 ``The kernel will accept any `mem=xx' parameter you give it,
292 and if it turns out that you lied to it, it will crash
293 horribly sooner or later. The parameter indicates the
294 highest addressable RAM address, so `mem=0x1000000' means
295 you have 16MB of memory, for example. For a 96MB machine
296 this would be `mem=0x6000000'.
297
298
299 NOTE NOTE NOTE: some machines might use the top of memory
300 for BIOS cacheing or whatever, so you might not actually
301 have up to the full 96MB addressable. The reverse is also
302 true: some chipsets will map the physical memory that is
303 covered by the BIOS area into the area just past the top of
304 memory, so the top-of-mem might actually be 96MB + 384kB for
305 example. If you tell linux that it has more memory than it
306 actually does have, bad things will happen: maybe not at
307 once, but surely eventually.''
308
309
310 __`panic=N'__
311
312
313 By default the kernel will not reboot after a panic, but
314 this option will cause a kernel reboot after N seconds (if N
315
316
317 __`reboot=[[warm|cold][[,[[bios|hard]]'__
318
319
320 (Only when CONFIG_BUGi386 is defined.) Since 2.0.22 a reboot
321 is by default a cold reboot. One asks for the old default
322 with `reboot=warm'. (A cold reboot may be required to reset
323 certain hardware, but might destroy not yet written data in
324 a disk cache. A warm reboot may be faster.) By default a
325 reboot is hard, by asking the keyboard controller to pulse
326 the reset line low, but there is at least one type of
327 motherboard where that doesn't work. The option
328 `reboot=bios' will instead jump through the
329 BIOS.
330
331
332 __`nosmp' and `maxcpus=N'__
333
334
335 (Only when __SMP__ is defined.) A command-line option of
336 `nosmp' or `maxcpus=0' will disable SMP activation entirely;
337 an option `maxcpus=N' limits the maximum number of CPUs
338 activated in SMP mode to N.
339 !!BOOT ARGUMENTS FOR USE BY KERNEL DEVELOPERS
340
341
342 __`debug'__
343
344
345 Kernel messages are handed off to the kernel log daemon
346 klogd so that they may be logged to disk. Messages with a
347 priority above ''console_loglevel'' are also printed on
348 the console. (For these levels, see
349 ''klogd__(8).
350
351
352 __`profile=N'__
353
354
355 It is possible to enable a kernel profiling function, if one
356 wishes to find out where the kernel is spending its CPU
357 cycles. Profiling is enabled by setting the variable
358 ''prof_shift'' to a nonzero value. This is done either by
359 specifying CONFIG_PROFILE at compile time, or by giving the
360 `profile=' option. Now the value that ''prof_shift'' gets
361 will be N, when given, or CONFIG_PROFILE_SHIFT, when that is
362 given, or 2, the default. The significance of this variable
363 is that it gives the granularity of the profiling: each
364 clock tick, if the system was executing kernel code, a
365 counter is incremented:
366
367
368 profile[[address
369
370
371 The raw profiling information can be read from
372 ''/proc/profile''. Probably you'll want to use a tool
373 such as readprofile.c to digest it. Writing to
374 ''/proc/profile'' will clear the counters.
375
376
377 __`swap=N1,N2,N3,N4,N5,N6,N7,N8'__
378
379
380 Set the eight parameters max_page_age, page_advance,
381 page_decline, page_initial_age, age_cluster_fract,
382 age_cluster_min, pageout_weight, bufferout_weight that
383 control the kernel swap algorithm. For kernel tuners
384 only.
385
386
387 __`buff=N1,N2,N3,N4,N5,N6'__
388
389
390 Set the six parameters max_buff_age, buff_advance,
391 buff_decline, buff_initial_age, bufferout_weight,
392 buffermem_grace that control kernel buffer memory
393 management. For kernel tuners only.
394 !!BOOT ARGUMENTS FOR RAMDISK USE
395
396
397 (Only if the kernel was compiled with CONFIG_BLK_DEV_RAM.)
398 In general it is a bad idea to use a ramdisk under Linux -
399 the system will use available memory more efficiently
400 itself. But while booting (or while constructing boot
401 floppies) it is often useful to load the floppy contents
402 into a ramdisk. One might also have a system in which first
403 some modules (for filesystem or hardware) must be loaded
404 before the main disk can be accessed.
405
406
407 In Linux 1.3.48, ramdisk handling was changed drastically.
408 Earlier, the memory was allocated statically, and there was
409 a `ramdisk=N' parameter to tell its size. (This could also
410 be set in the kernel image at compile time, or by use of
411 rdev(8).) These days ram disks use the buffer cache,
412 and grow dynamically. For a lot of information (e.g., how to
413 use rdev(8) in conjunction with the new ramdisk
414 setup), see
415 ''/usr/src/linux/Documentation/ramdisk.txt''.
416
417
418 There are four parameters, two boolean and two
419 integral.
420
421
422 __`load_ramdisk=N'__
423
424
425 If N=1, do load a ramdisk. If N=0, do not load a ramdisk.
426 (This is the default.)
427
428
429 __`prompt_ramdisk=N'__
430
431
432 If N=1, do prompt for insertion of the floppy. (This is the
433 default.) If N=0, do not prompt. (Thus, this parameter is
434 never needed.)
435
436
437 __`ramdisk_size=N' or (obsolete)
438 `ramdisk=N'__
439
440
441 Set the maximal size of the ramdisk(s) to N kB. The default
442 is 4096 (4 MB).
443
444
445 __`ramdisk_start=N'__
446
447
448 Sets the starting block number (the offset on the floppy
449 where the ramdisk starts) to N. This is needed in case the
450 ramdisk follows a kernel image.
451
452
453 __`noinitrd'__
454
455
456 (Only if the kernel was compiled with CONFIG_BLK_DEV_RAM and
457 CONFIG_BLK_DEV_INITRD.) These days it is possible to compile
458 the kernel to use initrd. When this feature is enabled, the
459 boot process will load the kernel and an initial ramdisk;
460 then the kernel converts initrd into a
461
462
463 For a detailed description of the initrd feature, see
464 ''/usr/src/linux/Documentation/initrd.txt''.
465
466
467 The `noinitrd' option tells the kernel that although it was
468 compiled for operation with initrd, it should not go through
469 the above steps, but leave the initrd data under
470 ''/dev/initrd''. (This device can be used only once - the
471 data is freed as soon as the last process that used it has
472 closed ''/dev/initrd''.)
473 !!BOOT ARGUMENTS FOR SCSI DEVICES
474
475
476 General notation for this section:
477
478
479 ''iobase'' -- the first I/O port that the SCSI host
480 occupies. These are specified in hexidecimal notation, and
481 usually lie in the range from 0x200 to 0x3ff.
482
483
484 ''irq'' -- the hardware interrupt that the card is
485 configured to use. Valid values will be dependent on the
486 card in question, but will usually be 5, 7, 9, 10, 11, 12,
487 and 15. The other values are usually used for common
488 peripherals like IDE hard disks, floppies, serial ports,
489 etc.
490
491
492 ''scsi-id'' -- the ID that the host adapter uses to
493 identify itself on the SCSI bus. Only some host adapters
494 allow you to change this value, as most have it permanently
495 specified internally. The usual default value is 7, but the
496 Seagate and Future Domain TMC-950 boards use 6.
497
498
499 ''parity'' -- whether the SCSI host adapter expects the
500 attached devices to supply a parity value with all
501 information exchanges. Specifying a one indicates parity
502 checking is enabled, and a zero disables parity checking.
503 Again, not all adapters will support selection of parity
504 behaviour as a boot argument.
505
506
507 __`max_scsi_luns=...'__
508
509
510 A SCSI device can have a number of `sub-devices' contained
511 within itself. The most common example is one of the new
512 SCSI CD-ROMs that handle more than one disk at a time. Each
513 CD is addressed as a `Logical Unit Number' (LUN) of that
514 particular device. But most devices, such as hard disks,
515 tape drives and such are only one device, and will be
516 assigned to LUN zero.
517
518
519 Some poorly designed SCSI devices cannot handle being probed
520 for LUNs not equal to zero. Therefore, if the compile time
521 flag CONFIG_SCSI_MULTI_LUN is not set, newer kernels will by
522 default only probe LUN zero.
523
524
525 To specify the number of probed LUNs at boot, one enters
526 `max_scsi_luns=n' as a boot arg, where n is a number between
527 one and eight. To avoid problems as described above, one
528 would use n=1 to avoid upsetting such broken
529 devices.
530
531
532 __SCSI tape configuration__
533
534
535 Some boot time configuration of the SCSI tape driver can be
536 achieved by using the following:
537
538
539 __st=__''buf_size[[,write_threshold[[,max_bufs]]''
540
541
542 The first two numbers are specified in units of kB. The
543 default ''buf_size'' is 32kB, and the maximum size that
544 can be specified is a ridiculous 16384kB. The
545 ''write_threshold'' is the value at which the buffer is
546 committed to tape, with a default value of 30kB. The maximum
547 number of buffers varies with the number of drives detected,
548 and has a default of two. An example usage would
549 be:
550
551
552 st=32,30,2
553
554
555 Full details can be found in the README.st file that is in
556 the scsi directory of the kernel source tree.
557
558
559 __Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI
560 configuration__
561
562
563 The aha numbers refer to cards and the aic numbers refer to
564 the actual SCSI chip on these type of cards, including the
565 Soundblaster-16 SCSI.
566
567
568 The probe code for these SCSI hosts looks for an installed
569 BIOS, and if none is present, the probe will not find your
570 card. Then you will have to use a boot arg of the
571 form:
572
573
574 __aha152x=__''iobase[[,irq[[,scsi-id[[,reconnect[[,parity]]]]''
575
576
577 If the driver was compiled with debugging enabled, a sixth
578 value can be specified to set the debug level.
579
580
581 All the parameters are as described at the top of this
582 section, and the ''reconnect'' value will allow device
583 disconnect/reconnect if a non-zero value is used. An example
584 usage is as follows:
585
586
587 aha152x=0x340,11,7,1
588
589
590 Note that the parameters must be specified in order, meaning
591 that if you want to specify a parity setting, then you will
592 have to specify an iobase, irq, scsi-id and reconnect value
593 as well.
594
595
596 __Adaptec aha154x configuration__
597
598
599 The aha1542 series cards have an i82077 floppy controller
600 onboard, while the aha1540 series cards do not. These are
601 busmastering cards, and have parameters to set the
602 ``fairness'' that is used to share the bus with other
603 devices. The boot arg looks like the following.
604
605
606 __aha1542=__''iobase[[,buson,busoff[[,dmaspeed]]''
607
608
609 Valid iobase values are usually one of: 0x130, 0x134, 0x230,
610 0x234, 0x330, 0x334. Clone cards may permit other
611 values.
612
613
614 The ''buson'', ''busoff'' values refer to the number
615 of microseconds that the card dominates the ISA bus. The
616 defaults are 11us on, and 4us off, so that other cards (such
617 as an ISA LANCE Ethernet card) have a chance to get access
618 to the ISA bus.
619
620
621 The ''dmaspeed'' value refers to the rate (in MB/s) at
622 which the DMA (Direct Memory Access) transfers proceed. The
623 default is 5MB/s. Newer revision cards allow you to select
624 this value as part of the soft-configuration, older cards
625 use jumpers. You can use values up to 10MB/s assuming that
626 your motherboard is capable of handling it. Experiment with
627 caution if using values over 5MB/s.
628
629
630 __Adaptec aha274x, aha284x, aic7xxx
631 configuration__
632
633
634 These boards can accept an argument of the
635 form:
636
637
638 __aic7xxx=__''extended,no_reset''
639
640
641 The ''extended'' value, if non-zero, indicates that
642 extended translation for large disks is enabled. The
643 ''no_reset'' value, if non-zero, tells the driver not to
644 reset the SCSI bus when setting up the host adaptor at
645 boot.
646
647
2 perry 648 __!AdvanSys SCSI Hosts configuration
1 perry 649 (`advansys=')__
650
651
2 perry 652 The !AdvanSys driver can accept up to four i/o addresses that
653 will be probed for an !AdvanSys SCSI card. Note that these
1 perry 654 values (if used) do not effect EISA or PCI probing in any
655 way. They are only used for probing ISA and VLB cards. In
656 addition, if the driver has been compiled with debugging
657 enabled, the level of debugging output can be set by adding
658 an 0xdeb[[0-f] parameter. The 0-f allows setting the level of
659 the debugging messages to any of 16 levels of
660 verbosity.
661
662
663 __AM53C974__
664
665
666 __AM53C974=__''host-scsi-id,target-scsi-id,max-rate,max-offset''
667
668
2 perry 669 __!BusLogic SCSI Hosts configuration
670 (`!BusLogic=')__
1 perry 671
672
2 perry 673 __!BusLogic=__''N1,N2,N3,N4,N5,S1,S2,...''
1 perry 674
675
2 perry 676 For an extensive discussion of the !BusLogic command line
1 perry 677 parameters, see
2 perry 678 ''/usr/src/linux/drivers/scsi/!BusLogic.c'' (lines
1 perry 679 3149-3270 in the kernel version I am looking at). The text
680 below is a very much abbreviated extract.
681
682
683 The parameters N1-N5 are integers. The parameters S1,... are
684 strings. N1 is the I/O Address at which the Host Adapter is
685 located. N2 is the Tagged Queue Depth to use for Target
686 Devices that support Tagged Queuing. N3 is the Bus Settle
687 Time in seconds. This is the amount of time to wait between
688 a Host Adapter Hard Reset which initiates a SCSI Bus Reset
689 and issuing any SCSI Commands. N4 is the Local Options (for
690 one Host Adapter). N5 is the Global Options (for all Host
691 Adapters).
692
693
694 The string options are used to provide control over Tagged
695 Queuing (TQ:Default, TQ:Enable, TQ:Disable,
696 TQ:
697
698
699 __EATA/DMA configuration__
700
701
702 The default list of i/o ports to be probed can be changed
703 by
704
705
706 __eata=__''iobase,iobase,...''__.__
707
708
709 __Future Domain TMC-16x0 configuration__
710
711
712 __fdomain=__''iobase,irq[[,adapter_id]''
713
714
715 __Great Valley Products (GVP) SCSI controller
716 configuration__
717
718
719 __gvp11=__''dma_transfer_bitmask''
720
721
722 __Future Domain TMC-8xx, TMC-950
723 configuration__
724
725
726 __tmc8xx=__''mem_base,irq''
727
728
729 The ''mem_base'' value is the value of the memory mapped
730 I/O region that the card uses. This will usually be one of
731 the following values: 0xc8000, 0xca000, 0xcc000, 0xce000,
732 0xdc000, 0xde000.
733
734
735 __IN2000 configuration__
736
737
738 __in2000=__''S''
739
740
741 where S is a comma-separated string of items
742 keyword[[:value]. Recognized keywords (possibly with value)
743 are: ioport:addr, noreset, nosync:x, period:ns,
744 disconnect:x, debug:x, proc:x. For the function of these
745 parameters, see
746 ''/usr/src/linux/drivers/scsi/in2000.c''.
747
748
749 __NCR5380 and NCR53C400 configuration__
750
751
752 The boot arg is of the form
753
754
755 __ncr5380=__''iobase,irq,dma''
756
757
758 or
759
760
761 __ncr53c400=__''iobase,irq''
762
763
764 If the card doesn't use interrupts, then an IRQ value of 255
765 (0xff) will disable interrupts. An IRQ value of 254 means to
766 autoprobe. More details can be found in the file
767 ''/usr/src/linux/drivers/scsi/README.g_NCR5380''.
768
769
770 __NCR53C8xx configuration__
771
772
773 __ncr53c8xx=__''S''
774
775
776 where S is a comma-separated string of items keyword:value.
777 Recognized keywords are: mpar (master_parity), spar
778 (scsi_parity), disc (disconnection), specf
779 (special_features), ultra (ultra_scsi), fsn
780 (force_sync_nego), tags (default_tags), sync (default_sync),
781 verb (verbose), debug (debug), burst (burst_max). For the
782 function of the assigned values, see
783 ''/usr/src/linux/drivers/scsi/ncr53c8xx.c''.
784
785
786 __NCR53c406a configuration__
787
788
789 __ncr53c406a=__''iobase[[,irq[[,fastpio]]''
790
791
792 Specify irq = 0 for non-interrupt driven mode. Set fastpio =
793 1 for fast pio mode, 0 for slow mode.
794
795
796 __Pro Audio Spectrum configuration__
797
798
799 The PAS16 uses a NC5380 SCSI chip, and newer models support
800 jumperless configuration. The boot arg is of the
801 form:
802
803
804 __pas16=__''iobase,irq''
805
806
807 The only difference is that you can specify an IRQ value of
808 255, which will tell the driver to work without using
809 interrupts, albeit at a performance loss. The iobase is
810 usually 0x388.
811
812
813 __Seagate ST-0x configuration__
814
815
816 If your card is not detected at boot time, you will then
817 have to use a boot arg of the form:
818
819
820 __st0x=__''mem_base,irq''
821
822
823 The ''mem_base'' value is the value of the memory mapped
824 I/O region that the card uses. This will usually be one of
825 the following values: 0xc8000, 0xca000, 0xcc000, 0xce000,
826 0xdc000, 0xde000.
827
828
829 __Trantor T128 configuration__
830
831
832 These cards are also based on the NCR5380 chip, and accept
833 the following options:
834
835
836 __t128=__''mem_base,irq''
837
838
839 The valid values for ''mem_base'' are as follows:
840 0xcc000, 0xc8000, 0xdc000, 0xd8000.
841
842
2 perry 843 __!UltraStor 14F/34F configuration__
1 perry 844
845
846 The default list of i/o ports to be probed can be changed
847 by
848
849
850 __eata=__''iobase,iobase,...''__.__
851
852
853 __WD7000 configuration__
854
855
856 __wd7000=__''irq,dma,iobase''
857
858
859 __Commodore Amiga A2091/590 SCSI controller
860 configuration__
861
862
863 __wd33c93=__''S''
864
865
866 where S is a comma-separated string of options. Recognized
867 options are nosync:bitmask, nodma:x, period:ns,
868 disconnect:x, debug:x, clock:x, next. For details, see
869 ''/usr/src/linux/drivers/scsi/wd33c93.c''.
870 !!HARD DISKS
871
872
873 __IDE Disk/CD-ROM Driver Parameters__
874
875
876 The IDE driver accepts a number of parameters, which range
877 from disk geometry specifications, to support for broken
878 controller chips. Drive specific options are specified by
879 using `hdX=' with X in `a'-`h'.
880
881
882 Non-drive specific options are specified with the prefix
883 `hd='. Note that using a drive specific prefix for a
884 non-drive specific option will still work, and the option
885 will just be applied as expected.
886
887
888 Also note that `hd=' can be used to refer to the next
889 unspecified drive in the (a, ..., h) sequence. For the
890 following discussions, the `hd=' option will be cited for
891 brevity. See the file README.ide in linux/drivers/block for
892 more details.
893
894
895 __The `hd=cyls,heads,sects[[,wpcom[[,irq]]'
896 options__
897
898
899 These options are used to specify the physical geometry of
900 the disk. Only the first three values are required. The
901 cylinder/head/sectors values will be those used by fdisk.
902 The write precompensation value is ignored for IDE disks.
903 The IRQ value specified will be the IRQ used for the
904 interface that the drive resides on, and is not really a
905 drive specific parameter.
906
907
908 __The `hd=serialize' option__
909
910
911 The dual IDE interface CMD-640 chip is broken as designed
912 such that when drives on the secondary interface are used at
913 the same time as drives on the primary interface, it will
914 corrupt your data. Using this option tells the driver to
915 make sure that both interfaces are never used at the same
916 time.
917
918
919 __The `hd=dtc2278' option__
920
921
922 This option tells the driver that you have a DTC-2278D IDE
923 interface. The driver then tries to do DTC specific
924 operations to enable the second interface and to enable
925 faster transfer modes.
926
927
928 __The `hd=noprobe' option__
929
930
931 Do not probe for this drive. For example,
932
933
934 hdb=noprobe hdb=1166,7,17
935
936
937 would disable the probe, but still specify the drive
938 geometry so that it would be registered as a valid block
939 device, and hence useable.
940
941
942 __The `hd=nowerr' option__
943
944
945 Some drives apparently have the WRERR_STAT bit stuck on
946 permanently. This enables a work-around for these broken
947 devices.
948
949
950 __The `hd=cdrom' option__
951
952
953 This tells the IDE driver that there is an ATAPI compatible
954 CD-ROM attached in place of a normal IDE hard disk. In most
955 cases the CD-ROM is identified automatically, but if it
956 isn't then this may help.
957
958
959 __Standard ST-506 Disk Driver Options
960 (`hd=')__
961
962
963 The standard disk driver can accept geometry arguments for
964 the disks similar to the IDE driver. Note however that it
965 only expects three values (C/H/S) -- any more or any less
966 and it will silently ignore you. Also, it only accepts `hd='
967 as an argument, i.e. `hda=' and so on are not valid here.
968 The format is as follows:
969
970
971 hd=cyls,heads,sects
972
973
974 If there are two disks installed, the above is repeated with
975 the geometry parameters of the second disk.
976
977
978 __XT Disk Driver Options (`xd=')__
979
980
981 If you are unfortunate enough to be using one of these old 8
982 bit cards that move data at a whopping 125kB/s then here is
983 the scoop. If the card is not recognised, you will have to
984 use a boot arg of the form:
985
986
987 xd=type,irq,iobase,dma_chan
988
989
990 The type value specifies the particular manufacturer of the
991 card, and are as follows: 0=generic; 1=DTC; 2,3,4=Western
992 Digital, 5,6,7=Seagate; 8=OMTI. The only difference between
993 multiple types from the same manufacturer is the BIOS string
994 used for detection, which is not used if the type is
995 specified.
996
997
998 The xd_setup() function does no checking on the values, and
999 assumes that you entered all four values. Don't disappoint
1000 it. Here is an example usage for a WD1002 controller with
1001 the BIOS disabled/removed, using the `default' XT controller
1002 parameters:
1003
1004
1005 xd=2,5,0x320,3
1006
1007
1008 __Syquest's EZ* removable disks__
1009
1010
1011 __ez=__''iobase[[,irq[[,rep[[,nybble]]]''
1012 !!IBM MCA BUS DEVICES
1013
1014
1015 See also
1016 ''/usr/src/linux/Documentation/mca.txt''.
1017
1018
1019 __PS/2 ESDI hard disks__
1020
1021
1022 It is possible to specify the desired geometry at boot
1023 time:
1024
1025
1026 __ed=__''cyls,heads,sectors.''
1027
1028
2 perry 1029 For a !ThinkPad-720, add the option
1 perry 1030
1031
1032 __tp720=1__.
1033
1034
1035 __IBM Microchannel SCSI Subsystem
1036 configuration__
1037
1038
1039 __ibmmcascsi=__''N''
1040
1041
1042 where N is the ''pun'' (SCSI ID) of the
1043 subsystem.
1044 !!CD-ROMs (Non-SCSI/ATAPI/IDE)
1045
1046
1047 __The Aztech Interface__
1048
1049
1050 The syntax for this type of card is:
1051
1052
1053 aztcd=iobase[[,magic_number]
1054
1055
1056 If you set the magic_number to 0x79 then the driver will try
1057 and run anyway in the event of an unknown firmware version.
1058 All other values are ignored.
1059
1060
1061 __Parallel port CD-ROM drives__
1062
1063
1064 Syntax:
1065
1066
1067 pcd.driveN=prt,pro,uni,mod,slv,dly
1068 pcd.nice=nice
1069
1070
1071 where `port' is the base address, `pro' is the protocol
1072 number, `uni' is the unit selector (for chained devices),
1073 `mod' is the mode (or -1 to choose the best automatically),
1074 `slv' is 1 if it should be a slave, and `dly' is a small
1075 integer for slowing down port accesses. The `nice' parameter
1076 controls the driver's use of idle CPU time, at the expense
1077 of some speed.
1078
1079
1080 __The CDU-31A and CDU-33A Sony Interface__
1081
1082
1083 This CD-ROM interface is found on some of the Pro Audio
1084 Spectrum sound cards, and other Sony supplied interface
1085 cards. The syntax is as follows:
1086
1087
1088 cdu31a=iobase,[[irq[[,is_pas_card]]
1089
1090
1091 Specifying an IRQ value of zero tells the driver that
1092 hardware interrupts aren't supported (as on some PAS cards).
1093 If your card supports interrupts, you should use them as it
1094 cuts down on the CPU usage of the driver.
1095
1096
1097 The ''is_pas_card'' should be entered as `PAS' if using a
1098 Pro Audio Spectrum card, and otherwise it should not be
1099 specified at all.
1100
1101
1102 __The CDU-535 Sony Interface__
1103
1104
1105 The syntax for this CD-ROM interface is:
1106
1107
1108 sonycd535=iobase[[,irq]
1109
1110
1111 A zero can be used for the I/O base as a `placeholder' if
1112 one wishes to specify an IRQ value.
1113
1114
2 perry 1115 __The !GoldStar Interface__
1 perry 1116
1117
1118 The syntax for this CD-ROM interface is:
1119
1120
1121 gscd=iobase
1122
1123
1124 __The ISP16 CD-ROM Interface__
1125
1126
1127 Syntax:
1128
1129
1130 isp16=[[iobase[[,irq[[,dma[[,type]]]]
1131
1132
1133 (three integers and a string). If the type is given as
1134 `noisp16', the interface will not be configured. Other
1135 recognized types are: `Sanyo
1136
1137
1138 __The Mitsumi Standard Interface__
1139
1140
1141 The syntax for this CD-ROM interface is:
1142
1143
1144 mcd=iobase,[[irq[[,wait_value]]
1145
1146
1147 The ''wait_value'' is used as an internal timeout value
1148 for people who are having problems with their drive, and may
1149 or may not be implemented depending on a compile time
1150 #define. The Mitsumi FX400 is an IDE/ATAPI CD-ROM player and
1151 does not use the mcd driver.
1152
1153
2 perry 1154 __The Mitsumi XA/!MultiSession Interface__
1 perry 1155
1156
1157 This is for the same hardware as above, but the driver has
1158 extended features. Syntax:
1159
1160
1161 mcdx=iobase[[,irq]
1162
1163
1164 __The Optics Storage Interface__
1165
1166
1167 The syntax for this type of card is:
1168
1169
1170 optcd=iobase
1171
1172
1173 __The Phillips CM206 Interface__
1174
1175
1176 The syntax for this type of card is:
1177
1178
1179 cm206=[[iobase][[,irq]
1180
1181
1182 The driver assumes numbers between 3 and 11 are IRQ values,
1183 and numbers between 0x300 and 0x370 are I/O ports, so you
1184 can specify one, or both numbers, in any order. It also
1185 accepts `cm206=auto' to enable autoprobing.
1186
1187
1188 __The Sanyo Interface__
1189
1190
1191 The syntax for this type of card is:
1192
1193
1194 sjcd=iobase[[,irq[[,dma_channel]]
1195
1196
2 perry 1197 __The !SoundBlaster Pro Interface__
1 perry 1198
1199
1200 The syntax for this type of card is:
1201
1202
1203 sbpcd=iobase,type
1204
1205
1206 where type is one of the following (case sensitive) strings:
2 perry 1207 `!SoundBlaster', `!LaserMate', or `SPEA'. The I/O base is that
1 perry 1208 of the CD-ROM interface, and not that of the sound portion
1209 of the card.
1210 !!ETHERNET DEVICES
1211
1212
1213 Different drivers make use of different parameters, but they
1214 all at least share having an IRQ, an I/O port base value,
1215 and a name. In its most generic form, it looks something
1216 like this:
1217
1218
1219 ether=irq,iobase[[,param_1[[,...param_8]],name
1220
1221
1222 The first non-numeric argument is taken as the name. The
1223 param_n values (if applicable) usually have different
1224 meanings for each different card/driver. Typical param_n
1225 values are used to specify things like shared memory
1226 address, interface selection, DMA channel and the
1227 like.
1228
1229
1230 The most common use of this parameter is to force probing
1231 for a second ethercard, as the default is to only probe for
1232 one. This can be accomplished with a simple:
1233
1234
1235 ether=0,0,eth1
1236
1237
1238 Note that the values of zero for the IRQ and I/O base in the
1239 above example tell the driver(s) to autoprobe.
1240
1241
2 perry 1242 The Ethernet-!HowTo has extensive documentation on using
1 perry 1243 multiple cards and on the card/driver specific
1244 implementation of the param_n values where used. Interested
1245 readers should refer to the section in that document on
1246 their particular card.
1247 !!THE FLOPPY DISK DRIVER
1248
1249
1250 There are many floppy driver options, and they are all
1251 listed in README.fd in linux/drivers/block. This information
1252 is taken directly from that file.
1253
1254
1255 __floppy=mask,allowed_drive_mask__
1256
1257
1258 Sets the bitmask of allowed drives to mask. By default, only
1259 units 0 and 1 of each floppy controller are allowed. This is
1260 done because certain non-standard hardware (ASUS PCI
1261 motherboards) mess up the keyboard when accessing units 2 or
1262 3. This option is somewhat obsoleted by the cmos
1263 option.
1264
1265
1266 __floppy=all_drives__
1267
1268
1269 Sets the bitmask of allowed drives to all drives. Use this
1270 if you have more than two drives connected to a floppy
1271 controller.
1272
1273
1274 __floppy=asus_pci__
1275
1276
1277 Sets the bitmask to allow only units 0 and 1. (The
1278 default)
1279
1280
1281 __floppy=daring__
1282
1283
1284 Tells the floppy driver that you have a well behaved floppy
1285 controller. This allows more efficient and smoother
1286 operation, but may fail on certain controllers. This may
1287 speed up certain operations.
1288
1289
1290 __floppy=0,daring__
1291
1292
1293 Tells the floppy driver that your floppy controller should
1294 be used with caution.
1295
1296
1297 __floppy=one_fdc__
1298
1299
1300 Tells the floppy driver that you have only floppy controller
1301 (default)
1302
1303
1304 __floppy=two_fdc or floppy=address,two_fdc__
1305
1306
1307 Tells the floppy driver that you have two floppy
1308 controllers. The second floppy controller is assumed to be
1309 at address. If address is not given, 0x370 is
1310 assumed.
1311
1312
1313 __floppy=thinkpad__
1314
1315
1316 Tells the floppy driver that you have a Thinkpad. Thinkpads
1317 use an inverted convention for the disk change
1318 line.
1319
1320
1321 __floppy=0,thinkpad__
1322
1323
1324 Tells the floppy driver that you don't have a
1325 Thinkpad.
1326
1327
1328 __floppy=drive,type,cmos__
1329
1330
1331 Sets the cmos type of drive to type. Additionally, this
1332 drive is allowed in the bitmask. This is useful if you have
1333 more than two floppy drives (only two can be described in
1334 the physical cmos), or if your BIOS uses non-standard CMOS
1335 types. Setting the CMOS to 0 for the first two drives
1336 (default) makes the floppy driver read the physical cmos for
1337 those drives.
1338
1339
1340 __floppy=unexpected_interrupts__
1341
1342
1343 Print a warning message when an unexpected interrupt is
1344 received (default behaviour)
1345
1346
1347 __floppy=no_unexpected_interrupts or
1348 floppy=L40SX__
1349
1350
1351 Don't print a message when an unexpected interrupt is
1352 received. This is needed on IBM L40SX laptops in certain
1353 video modes. (There seems to be an interaction between video
1354 and floppy. The unexpected interrupts only affect
1355 performance, and can safely be ignored.)
1356 !!THE SOUND DRIVER
1357
1358
1359 The sound driver can also accept boot args to override the
1360 compiled in values. This is not recommended, as it is rather
1361 complex. It is described in the Readme.Linux file, in
1362 linux/drivers/sound. It accepts a boot arg of the
1363 form:
1364
1365
1366 sound=device1[[,device2[[,device3...[[,device10]]]
1367
1368
1369 where each deviceN value is of the following format 0xTaaaId
1370 and the bytes are used as follows:
1371
1372
1373 T - device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
1374 7=SB16-MPU401
1375
1376
1377 aaa - I/O address in hex.
1378
1379
1380 I - interrupt line in hex (i.e 10=a, 11=b, ...)
1381
1382
1383 d - DMA channel.
1384
1385
1386 As you can see it gets pretty messy, and you are better off
1387 to compile in your own personal values as recommended. Using
1388 a boot arg of `sound=0' will disable the sound driver
1389 entirely.
1390 !!ISDN DRIVERS
1391
1392
1393 __The ICN ISDN driver__
1394
1395
1396 Syntax:
1397
1398
1399 icn=iobase,membase,icn_id1,icn_id2
1400
1401
1402 where icn_id1,icn_id2 are two strings used to identify the
1403 card in kernel messages.
1404
1405
1406 __The PCBIT ISDN driver__
1407
1408
1409 Syntax:
1410
1411
1412 pcbit=membase1,irq1[[,membase2,irq2]
1413
1414
1415 where membaseN is the shared memory base of the N'th card,
1416 and irqN is the interrupt setting of the N'th card. The
1417 default is IRQ 5 and membase 0xD0000.
1418
1419
1420 __The Teles ISDN driver__
1421
1422
1423 Syntax:
1424
1425
1426 teles=iobase,irq,membase,protocol,teles_id
1427
1428
1429 where iobase is the i/o port address of the card, membase is
1430 the shared memory base address of the card, irq is the
1431 interrupt channel the card uses, and teles_id is the unique
1432 ASCII string identifier.
1433 !!SERIAL PORT DRIVERS
1434
1435
1436 __The RISCom/8 Multiport Serial Driver
1437 (`riscom8=')__
1438
1439
1440 Syntax:
1441
1442
1443 riscom=iobase1[[,iobase2[[,iobase3[[,iobase4]]]
1444
1445
1446 More details can be found in
1447 ''/usr/src/linux/Documentation/riscom8.txt''.
1448
1449
2 perry 1450 __The !DigiBoard Driver (`digi=')__
1 perry 1451
1452
1453 If this option is used, it should have precisely six
1454 parameters. Syntax:
1455
1456
1457 digi=status,type,altpin,numports,iobase,membase
1458
1459
1460 The parameters maybe given as integers, or as strings. If
1461 strings are used, then iobase and membase should be given in
1462 hexadecimal. The integer arguments (fewer may be given) are
1463 in order: status (Enable(1) or Disable(0) this card), type
1464 (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), altpin
1465 (Enable(1) or Disable(0) alternate pin arrangement),
1466 numports (number of ports on this card), iobase (I/O Port
1467 where card is configured (in HEX)), membase (base of memory
1468 window (in HEX)). Thus, the following two boot prompt
1469 arguments are equivalent:
1470
1471
1472 digi=E,PC/Xi,D,16,200,D0000
1473 digi=1,0,0,16,0x200,851968
1474
1475
1476 More details can be found in
1477 ''/usr/src/linux/Documentation/digiboard.txt''.
1478
1479
1480 __The Baycom Serial/Parallel Radio Modem__
1481
1482
1483 Syntax:
1484
1485
1486 baycom=iobase,irq,modem
1487
1488
1489 There are precisely 3 parameters; for several cards, give
1490 several `baycom=' commands. The modem parameter is a string
1491 that can take one of the values ser12, ser12*, par96,
1492 par96*. Here the * denotes that software DCD is to be used,
1493 and ser12/par96 chooses between the supported modem types.
1494 For more details, see
1495 ''/usr/src/linux/drivers/net/README.baycom''.
1496
1497
1498 __Soundcard radio modem driver__
1499
1500
1501 Syntax:
1502
1503
1504 soundmodem=iobase,irq,dma[[,dma2[[,serio[[,pario]]],0,mode
1505
1506
1507 All parameters except the last are integers; the dummy 0 is
1508 required because of a bug in the setup code. The mode
1509 parameter is a string with syntax hw:modem, where hw is one
1510 of sbc, wss, wssfdx and modem is one of afsk1200,
1511 fsk9600.
1512 !!THE LINE PRINTER DRIVER
1513
1514
1515 __`lp='__
1516
1517
1518 Syntax:
1519
1520
1521 lp=0
1522 lp=auto
1523 lp=reset
1524 lp=port[[,port...]
1525
1526
1527 You can tell the printer driver what ports to use and what
1528 ports not to use. The latter comes in handy if you don't
1529 want the printer driver to claim all available parallel
1530 ports, so that other drivers (e.g. PLIP, PPA) can use them
1531 instead.
1532
1533
1534 The format of the argument is multiple port names. For
1535 example, lp=none,parport0 would use the first parallel port
1536 for lp1, and disable lp0. To disable the printer driver
1537 entirely, one can use lp=0.
1538
1539
1540 __WDT500/501 driver__
1541
1542
1543 Syntax:
1544
1545
1546 wdt=io,irq
1547 !!MOUSE DRIVERS
1548
1549
1550 __`bmouse=irq'__
1551
1552
1553 The busmouse driver only accepts one parameter, that being
1554 the hardware IRQ value to be used.
1555
1556
1557 __`msmouse=irq'__
1558
1559
1560 And precisely the same is true for the msmouse
1561 driver.
1562
1563
1564 __ATARI mouse setup__
1565
1566
1567 atamouse=threshold[[,y-threshold]
1568
1569
1570 If only one argument is given, it is used for both
1571 x-threshold and y-threshold. Otherwise, the first argument
1572 is the x-threshold, and the second the y-threshold. These
1573 values must lie between 1 and 20 (inclusive); the default is
1574 2.
1575 !!VIDEO HARDWARE
1576
1577
1578 __`no-scroll'__
1579
1580
1581 This option tells the console driver not to use hardware
1582 scroll (where a scroll is effected by moving the screen
1583 origin in video memory, instead of moving the data). It is
1584 required by certain Braille machines.
1585 !!AUTHORS
1586
1587
1588 Linus Torvalds (and many others)
1589 !!SEE ALSO
1590
1591
3 perry 1592 klogd(8), lilo.conf(5), lilo(8),
1 perry 1593 mount(8), rdev(8)
1594
1595
1596 Large parts of this man page have been derived from the Boot
1597 Parameter HOWTO (version 1.0.1) written by Paul Gortmaker.
1598 More information may be found in this (or a more recent)
1599 HOWTO. An uptodate source of information is
1600 ''/usr/src/linux/Documentation/kernel-parameters.txt''.
1601 ----
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.