]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man7/bootparam.7
bootparam.7: wfix
[thirdparty/man-pages.git] / man7 / bootparam.7
CommitLineData
fea681da
MK
1.\" Copyright (c) 1995,1997 Paul Gortmaker and Andries Brouwer
2.\"
1dd72f9c 3.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
fea681da
MK
4.\" This is free documentation; you can redistribute it and/or
5.\" modify it under the terms of the GNU General Public License as
6.\" published by the Free Software Foundation; either version 2 of
7.\" the License, or (at your option) any later version.
8.\"
9.\" The GNU General Public License's references to "object code"
10.\" and "executables" are to be interpreted as the output of any
11.\" document formatting or typesetting system, including
12.\" intermediate and printed output.
13.\"
14.\" This manual is distributed in the hope that it will be useful,
15.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17.\" GNU General Public License for more details.
18.\"
19.\" You should have received a copy of the GNU General Public
c715f741
MK
20.\" License along with this manual; if not, see
21.\" <http://www.gnu.org/licenses/>.
6a8d8745 22.\" %%%LICENSE_END
fea681da
MK
23.\"
24.\" This man page written 950814 by aeb, based on Paul Gortmaker's HOWTO
25.\" (dated v1.0.1, 15/08/95).
26.\" Major update, aeb, 970114.
27.\"
ad5b45ab 28.TH BOOTPARAM 7 2014-06-13 "Linux" "Linux Programmer's Manual"
fea681da 29.SH NAME
f68512e9 30bootparam \- introduction to boot time parameters of the Linux kernel
fea681da 31.SH DESCRIPTION
76c44d83 32The Linux kernel accepts certain 'command-line options' or 'boot time
c13182ef
MK
33parameters' at the moment it is started.
34In general this is used to
fea681da
MK
35supply the kernel with information about hardware parameters that
36the kernel would not be able to determine on its own, or to avoid/override
37the values that the kernel would otherwise detect.
38
ad8fe082 39When the kernel is booted directly by the BIOS,
fea681da
MK
40you have no opportunity to specify any parameters.
41So, in order to take advantage of this possibility you have to
122a101a 42use a boot loader that is able to pass parameters, such as GRUB.
fea681da 43
18299dfc
MK
44.\" The LILO program (LInux LOader) written by Werner Almesberger is the
45.\" most commonly used.
46.\" It has the ability to boot various kernels, and
47.\" stores the configuration information in a plain text file.
48.\" (See
49.\" .BR lilo (8)
50.\" and
51.\" .BR lilo.conf (5).)
52.\" LILO can boot DOS, OS/2, Linux, FreeBSD, UnixWare, etc., and is quite flexible.
51700fd7 53.\"
18299dfc
MK
54.\" The other commonly used Linux loader is 'LoadLin', which is a DOS
55.\" program that has the capability to launch a Linux kernel from the DOS
56.\" prompt (with boot-args) assuming that certain resources are available.
57.\" This is good for people that want to launch Linux from DOS.
51700fd7 58.\"
18299dfc
MK
59.\" It is also very useful if you have certain hardware which relies on
60.\" the supplied DOS driver to put the hardware into a known state.
61.\" A common example is 'SoundBlaster Compatible' sound cards that require
62.\" the DOS driver to twiddle a few mystical registers to put the card
63.\" into a SB compatible mode.
64.\" Booting DOS with the supplied driver, and
65.\" then loading Linux from the DOS prompt with loadlin avoids the reset
66.\" of the card that happens if one rebooted instead.
73d8cece 67.SS The argument list
fea681da 68The kernel command line is parsed into a list of strings
c13182ef 69(boot arguments) separated by spaces.
36267a51 70Most of the boot arguments have the form:
77bda21c
MK
71
72.in +4n
73.nf
fea681da 74name[=value_1][,value_2]...[,value_10]
77bda21c
MK
75.fi
76.in
fea681da 77.LP
40dedbfe 78where 'name' is a unique keyword that is used to identify what part of
fea681da 79the kernel the associated values (if any) are to be given to.
33a0ccb2 80Note the limit of 10 is real, as the present code handles only 10 comma
c13182ef 81separated parameters per keyword.
3b777aff 82(However, you can reuse the same
fea681da
MK
83keyword with up to an additional 10 parameters in unusually
84complicated situations, assuming the setup function supports it.)
85
e57fca5a
MK
86Most of the sorting is coded in the kernel source file
87.IR init/main.c .
c13182ef 88First, the kernel
40dedbfe 89checks to see if the argument is any of the special arguments 'root=',
25715c96 90\&'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug' or 'init'.
c13182ef 91The meaning of these special arguments is described below.
fea681da 92
b46a2f4a
MK
93Then it walks a list of setup functions
94to see if the specified argument string (such as 'foo') has
40dedbfe 95been associated with a setup function ('foo_setup()') for a particular
c13182ef
MK
96device or part of the kernel.
97If you passed the kernel the line
fea681da 98foo=3,4,5,6 then the kernel would search the bootsetups array to see
40dedbfe 99if 'foo' was registered.
c13182ef 100If it was, then it would call the setup
40dedbfe 101function associated with 'foo' (foo_setup()) and hand it the arguments
31df5734 1023, 4, 5, and 6 as given on the kernel command line.
fea681da 103
40dedbfe 104Anything of the form 'foo=bar' that is not accepted as a setup function
fea681da 105as described above is then interpreted as an environment variable to
c13182ef 106be set.
40dedbfe 107A (useless?) example would be to use 'TERM=vt100' as a boot
fea681da
MK
108argument.
109
110Any remaining arguments that were not picked up by the kernel and were
f184a1c3
MK
111not interpreted as environment variables are then passed onto PID 1,
112which is usually the
1aedd258
MK
113.BR init (1)
114program.
c13182ef 115The most common argument that
1aedd258
MK
116is passed to the
117.I init
118process is the word 'single' which instructs it
fea681da 119to boot the computer in single user mode, and not launch all the usual
c13182ef 120daemons.
1aedd258
MK
121Check the manual page for the version of
122.BR init (1)
123installed on
fea681da 124your system to see what arguments it accepts.
76c637e1 125.SS General non-device-specific boot arguments
bebbbd1f 126.TP
40dedbfe 127.B "'init=...'"
fea681da
MK
128This sets the initial command to be executed by the kernel.
129If this is not set, or cannot be found, the kernel will try
5ce89119
MK
130.IR /sbin/init ,
131then
fea681da
MK
132.IR /etc/init ,
133then
134.IR /bin/init ,
135then
0daa9e92 136.I /bin/sh
fea681da 137and panic if all of this fails.
bebbbd1f 138.TP
40dedbfe 139.B "'nfsaddrs=...'"
32ae2e17 140This sets the NFS boot address to the given string.
fea681da 141This boot address is used in case of a net boot.
bebbbd1f 142.TP
40dedbfe 143.B "'nfsroot=...'"
5d6aa84a 144This sets the NFS root name to the given string.
c13182ef 145If this string
fea681da 146does not begin with '/' or ',' or a digit, then it is prefixed by
25715c96 147\&'/tftpboot/'.
c13182ef 148This root name is used in case of a net boot.
bebbbd1f 149.TP
40dedbfe
MK
150.B "'no387'"
151(Only when
152.B CONFIG_BUGi386
153is defined.)
fea681da 154Some i387 coprocessor chips have bugs that show up when used in 32 bit
c13182ef
MK
155protected mode.
156For example, some of the early ULSI-387 chips would
c45bd688 157cause solid lockups while performing floating-point calculations.
77bda21c 158Using the 'no387' boot argument causes Linux to ignore the maths
c13182ef
MK
159coprocessor even if you have one.
160Of course you must then have your
fea681da 161kernel compiled with math emulation support!
bebbbd1f 162.TP
40dedbfe
MK
163.B "'no-hlt'"
164(Only when
165.B CONFIG_BUGi386
166is defined.)
167Some of the early i486DX-100 chips have a problem with the 'hlt'
fea681da 168instruction, in that they can't reliably return to operating mode
c13182ef 169after this instruction is used.
40dedbfe 170Using the 'no-hlt' instruction tells
fea681da 171Linux to just run an infinite loop when there is nothing else to do,
c13182ef
MK
172and to not halt the CPU.
173This allows people with these broken chips
fea681da 174to use Linux.
bebbbd1f 175.TP
40dedbfe 176.B "'root=...'"
fea681da 177This argument tells the kernel what device is to be used as the root
9ee4a2b6 178filesystem while booting.
c13182ef 179The default of this setting is determined
fea681da 180at compile time, and usually is the value of the root device of the
c13182ef
MK
181system that the kernel was built on.
182To override this value, and
fea681da 183select the second floppy drive as the root device, one would
6387216b 184use 'root=/dev/fd1'.
fea681da
MK
185
186The root device can be specified symbolically or numerically.
e57fca5a 187A symbolic specification has the form
21e79503 188.IR /dev/XXYN ,
e57fca5a 189where XX designates
40dedbfe 190the device type ('hd' for ST-506 compatible hard disk, with Y in
25715c96
MK
191\&'a'-'d'; 'sd' for SCSI compatible disk, with Y in 'a'-'e';
192\&'ad' for Atari ACSI disk, with Y in 'a'-'e',
193\&'ez' for a Syquest EZ135 parallel port removable drive, with Y='a',
194\&'xd' for XT compatible disk, with Y either 'a' or 'b'; 'fd' for
5503c85e 195floppy disk, with Y the floppy drive number\(emfd0 would be
40dedbfe 196the DOS 'A:' drive, and fd1 would be 'B:'), Y the driver letter or
fea681da 197number, and N the number (in decimal) of the partition on this device
c13182ef
MK
198(absent in the case of floppies).
199Recent kernels allow many other
fea681da
MK
200types, mostly for CD-ROMs: nfs, ram, scd, mcd, cdu535, aztcd, cm206cd,
201gscd, sbpcd, sonycd, bpcd.
202(The type nfs specifies a net boot; ram refers to a ram disk.)
203
204Note that this has nothing to do with the designation of these
9ee4a2b6 205devices on your filesystem.
40dedbfe 206The '/dev/' part is purely conventional.
fea681da
MK
207
208The more awkward and less portable numeric specification of the above
c13182ef 209possible root devices in major/minor format is also accepted.
59dc509c 210(For example,
e57fca5a
MK
211.I /dev/sda3
212is major 8, minor 3, so you could use 'root=0x803' as an
fea681da 213alternative.)
bebbbd1f 214.TP
1c137827 215.BR "'rootdelay='"
91085d85 216This parameter sets the delay (in seconds) to pause before attempting
1c137827
PG
217to mount the root filesystem.
218.TP
219.BR "'rootflags=...'"
ffe8d0b1
MK
220This parameter sets the mount option string for the root filesystem
221(see also
1c137827
PG
222.BR fstab (5)).
223.TP
6c8adf48
JLDL
224.BR "'rootfstype=...'"
225The 'rootfstype' option tells the kernel to mount the root filesystem as
226if it where of the type specified.
227This can be useful (for example) to
228mount an ext3 filesystem as ext2 and then remove the journal in the root
229filesystem, in fact reverting its format from ext3 to ext2 without the
230need to boot the box from alternate media.
231.TP
40dedbfe 232.BR 'ro' " and " 'rw'
9ee4a2b6
MK
233The 'ro' option tells the kernel to mount the root filesystem
234as 'read-only' so that filesystem consistency check programs (fsck)
235can do their work on a quiescent filesystem.
c13182ef 236No processes can
9ee4a2b6 237write to files on the filesystem in question until it is 'remounted'
40dedbfe 238as read/write capable, for example, by 'mount \-w \-n \-o remount /'.
fea681da
MK
239(See also
240.BR mount (8).)
241
9ee4a2b6 242The 'rw' option tells the kernel to mount the root filesystem read/write.
fea681da
MK
243This is the default.
244
bebbbd1f 245.TP
d11f367d
AR
246.B "'resume=...'"
247This tells the kernel the location of the suspend-to-disk data that you want the machine to resume from after hibernation.
063692c0
MK
248Usually, it is the same as your swap partition or file.
249Example:
77bda21c
MK
250
251.in +4n
252.nf
253resume=/dev/hda2
254.fi
255.in
d11f367d 256.TP
40dedbfe 257.B "'reserve=...'"
c13182ef
MK
258This is used to protect I/O port regions from probes.
259The form of the command is:
77bda21c
MK
260
261.in +4n
262.nf
fea681da 263.BI reserve= iobase,extent[,iobase,extent]...
77bda21c
MK
264.fi
265.in
bebbbd1f 266.sp
fea681da 267In some machines it may be necessary to prevent device drivers from
c13182ef
MK
268checking for devices (auto-probing) in a specific region.
269This may be
fea681da
MK
270because of hardware that reacts badly to the probing, or hardware
271that would be mistakenly identified, or merely
272hardware you don't want the kernel to initialize.
273
274The reserve boot-time argument specifies an I/O port region that
c13182ef
MK
275shouldn't be probed.
276A device driver will not probe a reserved region,
fea681da
MK
277unless another boot argument explicitly specifies that it do so.
278
279For example, the boot line
77bda21c
MK
280
281.in +4n
282.nf
fea681da 283reserve=0x300,32 blah=0x300
77bda21c
MK
284.fi
285.in
bebbbd1f 286.IP
40dedbfe 287keeps all device drivers except the driver for 'blah' from probing
94e9d9fe 2880x300\-0x31f.
bebbbd1f 289.TP
40dedbfe 290.B "'mem=...'"
fea681da 291The BIOS call defined in the PC specification that returns
33a0ccb2 292the amount of installed memory was designed only to be able
c13182ef
MK
293to report up to 64MB.
294Linux uses this BIOS call at boot to
295determine how much memory is installed.
296If you have more than 64MB of
77bda21c 297RAM installed, you can use this boot argument to tell Linux how much memory
c13182ef
MK
298you have.
299The value is in decimal or hexadecimal (prefix 0x),
40dedbfe
MK
300and the suffixes 'k' (times 1024) or 'M' (times 1048576) can be used.
301Here is a quote from Linus on usage of the 'mem=' parameter.
fea681da 302
324633ae 303.in +0.5i
40dedbfe 304The kernel will accept any 'mem=xx' parameter you give it, and if it
fea681da
MK
305turns out that you lied to it, it will crash horribly sooner or later.
306The parameter indicates the highest addressable RAM address, so
40dedbfe
MK
307\&'mem=0x1000000' means you have 16MB of memory, for example.
308For a 96MB machine this would be 'mem=0x6000000'.
fea681da 309
192e4f2e
MK
310.BR NOTE :
311some machines might use the top of memory for BIOS
4f9d18f8 312caching or whatever, so you might not actually have up to the full
c13182ef
MK
31396MB addressable.
314The reverse is also true: some chipsets will map
fea681da
MK
315the physical memory that is covered by the BIOS area into the area
316just past the top of memory, so the top-of-mem might actually be 96MB
c13182ef
MK
317+ 384kB for example.
318If you tell linux that it has more memory than
fea681da 319it actually does have, bad things will happen: maybe not at once, but
324633ae
MK
320surely eventually.
321.in
fea681da 322
40dedbfe 323You can also use the boot argument 'mem=nopentium' to turn off 4 MB
eb1af896 324page tables on kernels configured for IA32 systems with a pentium or newer
441082ad 325CPU.
bebbbd1f 326.TP
40dedbfe 327.B "'panic=N'"
b9aee8fe 328By default, the kernel will not reboot after a panic, but this option
f7ceac86 329will cause a kernel reboot after N seconds (if N is greater than zero).
77bda21c
MK
330This panic timeout can also be set by
331
332.in +4n
333.nf
1322e836 334echo N > /proc/sys/kernel/panic
77bda21c
MK
335.fi
336.in
bebbbd1f 337.TP
40dedbfe
MK
338.B "'reboot=[warm|cold][,[bios|hard]]'"
339(Only when
340.B CONFIG_BUGi386
341is defined.)
fea681da 342Since 2.0.22 a reboot is by default a cold reboot.
40dedbfe 343One asks for the old default with 'reboot=warm'.
fea681da
MK
344(A cold reboot may be required to reset certain hardware,
345but might destroy not yet written data in a disk cache.
346A warm reboot may be faster.)
b9aee8fe 347By default, a reboot is hard, by asking the keyboard controller
fea681da 348to pulse the reset line low, but there is at least one type
c13182ef 349of motherboard where that doesn't work.
40dedbfe 350The option 'reboot=bios' will
fea681da 351instead jump through the BIOS.
bebbbd1f 352.TP
40dedbfe 353.BR 'nosmp' " and " 'maxcpus=N'
fea681da 354(Only when __SMP__ is defined.)
40dedbfe
MK
355A command-line option of 'nosmp' or 'maxcpus=0' will disable SMP
356activation entirely; an option 'maxcpus=N' limits the maximum number
fea681da 357of CPUs activated in SMP mode to N.
73d8cece 358.SS Boot arguments for use by kernel developers
bebbbd1f 359.TP
40dedbfe 360.B "'debug'"
fea681da 361Kernel messages are handed off to the kernel log daemon klogd so that they
c13182ef
MK
362may be logged to disk.
363Messages with a priority above
fea681da 364.I console_loglevel
c13182ef 365are also printed on the console.
e57fca5a
MK
366(For these levels, see
367.IR <linux/kernel.h> .)
b9aee8fe 368By default, this variable is set to log anything more important than
c13182ef
MK
369debug messages.
370This boot argument will cause the kernel to also
fea681da
MK
371print the messages of DEBUG priority.
372The console loglevel can also be set at run time via an option
c13182ef
MK
373to klogd.
374See
fea681da 375.BR klogd (8).
bebbbd1f 376.TP
40dedbfe 377.B "'profile=N'"
fea681da
MK
378It is possible to enable a kernel profiling function,
379if one wishes to find out where the kernel is spending its CPU cycles.
380Profiling is enabled by setting the variable
381.I prof_shift
c7094399 382to a nonzero value.
40dedbfe
MK
383This is done either by specifying
384.B CONFIG_PROFILE
385at compile time, or by giving the 'profile=' option.
fea681da
MK
386Now the value that
387.I prof_shift
40dedbfe
MK
388gets will be N, when given, or
389.BR CONFIG_PROFILE_SHIFT ,
390when that is given, or 2, the default.
c13182ef 391The significance of this variable is that it
fea681da
MK
392gives the granularity of the profiling: each clock tick, if the
393system was executing kernel code, a counter is incremented:
77bda21c
MK
394
395.in +4n
396.nf
fea681da 397profile[address >> prof_shift]++;
77bda21c
MK
398.fi
399.in
bebbbd1f 400.sp
fea681da
MK
401The raw profiling information can be read from
402.IR /proc/profile .
403Probably you'll want to use a tool such as readprofile.c to digest it.
404Writing to
405.I /proc/profile
406will clear the counters.
bebbbd1f 407.TP
40dedbfe 408.B "'swap=N1,N2,N3,N4,N5,N6,N7,N8'"
fea681da
MK
409Set the eight parameters max_page_age, page_advance, page_decline,
410page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight,
411bufferout_weight that control the kernel swap algorithm.
412For kernel tuners only.
bebbbd1f 413.TP
40dedbfe 414.B "'buff=N1,N2,N3,N4,N5,N6'"
fea681da
MK
415Set the six parameters max_buff_age, buff_advance, buff_decline,
416buff_initial_age, bufferout_weight, buffermem_grace that control
c13182ef
MK
417kernel buffer memory management.
418For kernel tuners only.
73d8cece 419.SS Boot arguments for ramdisk use
40dedbfe
MK
420(Only if the kernel was compiled with
421.BR CONFIG_BLK_DEV_RAM .)
5503c85e
MK
422In general it is a bad idea to use a ramdisk under Linux\(emthe
423system will use available memory more efficiently itself.
fea681da
MK
424But while booting (or while constructing boot floppies)
425it is often useful to load the floppy contents into a
c13182ef
MK
426ramdisk.
427One might also have a system in which first
9ee4a2b6 428some modules (for filesystem or hardware) must be loaded
fea681da
MK
429before the main disk can be accessed.
430
431In Linux 1.3.48, ramdisk handling was changed drastically.
432Earlier, the memory was allocated statically, and there was
40dedbfe 433a 'ramdisk=N' parameter to tell its size.
421405f9 434(This could also be set in the kernel image at compile time.)
fea681da 435These days ram disks use the buffer cache, and grow dynamically.
421405f9 436For a lot of information in conjunction with the new ramdisk
22367af2 437setup, see the kernel source file
51700fd7 438.IR Documentation/blockdev/ramdisk.txt
e57fca5a
MK
439.RI ( Documentation/ramdisk.txt
440in older kernels).
fea681da
MK
441
442There are four parameters, two boolean and two integral.
bebbbd1f 443.TP
40dedbfe 444.B "'load_ramdisk=N'"
c13182ef
MK
445If N=1, do load a ramdisk.
446If N=0, do not load a ramdisk.
fea681da 447(This is the default.)
bebbbd1f 448.TP
40dedbfe 449.B "'prompt_ramdisk=N'"
c13182ef
MK
450If N=1, do prompt for insertion of the floppy.
451(This is the default.)
452If N=0, do not prompt.
453(Thus, this parameter is never needed.)
bebbbd1f 454.TP
40dedbfe 455.BR 'ramdisk_size=N' " or (obsolete) " 'ramdisk=N'
c13182ef
MK
456Set the maximal size of the ramdisk(s) to N kB.
457The default is 4096 (4 MB).
bebbbd1f 458.TP
40dedbfe 459.B "'ramdisk_start=N'"
fea681da
MK
460Sets the starting block number (the offset on the floppy where
461the ramdisk starts) to N.
462This is needed in case the ramdisk follows a kernel image.
bebbbd1f 463.TP
40dedbfe
MK
464.B "'noinitrd'"
465(Only if the kernel was compiled with
466.B CONFIG_BLK_DEV_RAM
467and
468.BR CONFIG_BLK_DEV_INITRD .)
fea681da
MK
469These days it is possible to compile the kernel to use initrd.
470When this feature is enabled, the boot process will load the kernel
471and an initial ramdisk; then the kernel converts initrd into
472a "normal" ramdisk, which is mounted read-write as root device;
e57fca5a
MK
473then
474.I /linuxrc
9ee4a2b6
MK
475is executed; afterward the "real" root filesystem is mounted,
476and the initrd filesystem is moved over to
e57fca5a
MK
477.IR /initrd ;
478finally
479the usual boot sequence (e.g., invocation of
480.IR /sbin/init )
481is performed.
fea681da 482
e57fca5a
MK
483For a detailed description of the initrd feature, see the kernel source file
484.IR Documentation/initrd.txt .
fea681da 485
40dedbfe 486The 'noinitrd' option tells the kernel that although it was compiled for
fea681da
MK
487operation with initrd, it should not go through the above steps, but
488leave the initrd data under
489.IR /dev/initrd .
4d9b6984 490(This device can be used only once: the data is freed as soon as
fea681da
MK
491the last process that used it has closed
492.IR /dev/initrd .)
73d8cece 493.SS Boot arguments for SCSI devices
fea681da
MK
494General notation for this section:
495
496.I iobase
c13182ef
MK
497-- the first I/O port that the SCSI host occupies.
498These are specified in hexadecimal notation,
499and usually lie in the range from 0x200 to 0x3ff.
fea681da
MK
500
501.I irq
502-- the hardware interrupt that the card is configured to use.
503Valid values will be dependent on the card in question, but will
c13182ef
MK
504usually be 5, 7, 9, 10, 11, 12, and 15.
505The other values are usually
fea681da 506used for common peripherals like IDE hard disks, floppies, serial
fb3969cd 507ports, and so on.
fea681da
MK
508
509.I scsi-id
510-- the ID that the host adapter uses to identify itself on the
c13182ef
MK
511SCSI bus.
512Only some host adapters allow you to change this value, as
513most have it permanently specified internally.
514The usual default value
fea681da
MK
515is 7, but the Seagate and Future Domain TMC-950 boards use 6.
516
517.I parity
518-- whether the SCSI host adapter expects the attached devices
c13182ef
MK
519to supply a parity value with all information exchanges.
520Specifying a one indicates parity checking is enabled,
521and a zero disables parity checking.
522Again, not all adapters will support selection of parity
d9bfdb9c 523behavior as a boot argument.
bebbbd1f 524.TP
40dedbfe 525.B "'max_scsi_luns=...'"
310672d6 526A SCSI device can have a number of 'subdevices' contained within
c13182ef
MK
527itself.
528The most common example is one of the new SCSI CD-ROMs that
529handle more than one disk at a time.
530Each CD is addressed as a
25715c96 531\&'Logical Unit Number' (LUN) of that particular device.
c13182ef 532But most
fea681da
MK
533devices, such as hard disks, tape drives and such are only one device,
534and will be assigned to LUN zero.
535
536Some poorly designed SCSI devices cannot handle being probed for
c13182ef 537LUNs not equal to zero.
29aceda4 538Therefore, if the compile-time flag
40dedbfe 539.B CONFIG_SCSI_MULTI_LUN
e0a06014 540is not set, newer kernels will by default probe only LUN zero.
fea681da
MK
541
542To specify the number of probed LUNs at boot, one enters
25715c96 543\&'max_scsi_luns=n' as a boot arg, where n is a number between one and
c13182ef
MK
544eight.
545To avoid problems as described above, one would use n=1 to
fea681da 546avoid upsetting such broken devices.
bebbbd1f
MK
547.TP
548.B "SCSI tape configuration"
fea681da
MK
549Some boot time configuration of the SCSI tape driver can be achieved
550by using the following:
77bda21c
MK
551
552.in +4n
553.nf
fea681da 554.BI st= buf_size[,write_threshold[,max_bufs]]
77bda21c
MK
555.fi
556.in
bebbbd1f 557.sp
c13182ef
MK
558The first two numbers are specified in units of kB.
559The default
fea681da
MK
560.I buf_size
561is 32kB, and the maximum size that can be specified is a
c13182ef
MK
562ridiculous 16384kB.
563The
fea681da
MK
564.I write_threshold
565is the value at which the buffer is committed to tape, with a
c13182ef
MK
566default value of 30kB.
567The maximum number of buffers varies
fea681da
MK
568with the number of drives detected, and has a default of two.
569An example usage would be:
77bda21c
MK
570
571.in +4n
572.nf
fea681da 573st=32,30,2
77bda21c
MK
574.fi
575.in
bebbbd1f 576.IP
4568d084
MK
577Full details can be found in the file
578.I Documentation/scsi/st.txt
579(or
580.I drivers/scsi/README.st
66a9882e 581for older kernels) in the Linux kernel source.
73d8cece 582.SS Hard disks
bebbbd1f
MK
583.TP
584.B "IDE Disk/CD-ROM Driver Parameters"
fea681da 585The IDE driver accepts a number of parameters, which range from disk
c13182ef 586geometry specifications, to support for broken controller chips.
e2badfdf 587Drive-specific options are specified by using 'hdX=' with X in 'a'-'h'.
fea681da 588
e2badfdf
MK
589Non-drive-specific options are specified with the prefix 'hd='.
590Note that using a drive-specific prefix for a non-drive-specific option
fea681da
MK
591will still work, and the option will just be applied as expected.
592
40dedbfe 593Also note that 'hd=' can be used to refer to the next unspecified
c13182ef
MK
594drive in the (a, ..., h) sequence.
595For the following discussions,
40dedbfe 596the 'hd=' option will be cited for brevity.
c13182ef 597See the file
0eb9025a 598.I Documentation/ide/ide.txt
4568d084 599(or
0eb9025a
MK
600.I Documentation/ide.txt
601.\" Linux 2.0, 2.2, 2.4
602in older kernels, or
4568d084 603.I drivers/block/README.ide
0eb9025a 604in ancient kernels) in the Linux kernel source for more details.
bebbbd1f 605.TP
40dedbfe 606.B "The 'hd=cyls,heads,sects[,wpcom[,irq]]' options"
fea681da 607These options are used to specify the physical geometry of the disk.
c13182ef
MK
608Only the first three values are required.
609The cylinder/head/sectors
610values will be those used by fdisk.
611The write precompensation value
612is ignored for IDE disks.
613The IRQ value specified will be the IRQ
fea681da 614used for the interface that the drive resides on, and is not really a
e2badfdf 615drive-specific parameter.
bebbbd1f 616.TP
40dedbfe 617.B "The 'hd=serialize' option"
fea681da
MK
618The dual IDE interface CMD-640 chip is broken as designed such that
619when drives on the secondary interface are used at the same time as
c13182ef
MK
620drives on the primary interface, it will corrupt your data.
621Using this
fea681da
MK
622option tells the driver to make sure that both interfaces are never
623used at the same time.
bebbbd1f 624.TP
40dedbfe 625.B "The 'hd=dtc2278' option"
fea681da 626This option tells the driver that you have a DTC-2278D IDE interface.
e2badfdf 627The driver then tries to do DTC-specific operations to enable the
fea681da 628second interface and to enable faster transfer modes.
bebbbd1f 629.TP
40dedbfe 630.B "The 'hd=noprobe' option"
c13182ef
MK
631Do not probe for this drive.
632For example,
77bda21c
MK
633
634.in +4n
635.nf
fea681da 636hdb=noprobe hdb=1166,7,17
77bda21c
MK
637.fi
638.in
bebbbd1f 639.IP
fea681da
MK
640would disable the probe, but still specify the drive geometry so
641that it would be registered as a valid block device, and hence
642usable.
bebbbd1f 643.TP
40dedbfe
MK
644.B "The 'hd=nowerr' option"
645Some drives apparently have the
646.B WRERR_STAT
647bit stuck on permanently.
fea681da 648This enables a work-around for these broken devices.
bebbbd1f 649.TP
40dedbfe 650.B "The 'hd=cdrom' option"
fea681da 651This tells the IDE driver that there is an ATAPI compatible CD-ROM
c13182ef
MK
652attached in place of a normal IDE hard disk.
653In most cases the CD-ROM
fea681da 654is identified automatically, but if it isn't then this may help.
bebbbd1f 655.TP
40dedbfe 656.B "Standard ST-506 Disk Driver Options ('hd=')"
fea681da 657The standard disk driver can accept geometry arguments for the disks
c13182ef 658similar to the IDE driver.
33a0ccb2 659Note however that it expects only three
c13182ef 660values (C/H/S); any more or any less and it will silently ignore you.
33a0ccb2 661Also, it accepts only 'hd=' as an argument, that is, 'hda='
c13182ef
MK
662and so on are not valid here.
663The format is as follows:
77bda21c
MK
664
665.in +4n
666.nf
fea681da 667hd=cyls,heads,sects
77bda21c
MK
668.fi
669.in
bebbbd1f 670.IP
fea681da
MK
671If there are two disks installed, the above is repeated with the
672geometry parameters of the second disk.
bebbbd1f 673.TP
40dedbfe 674.B "XT Disk Driver Options ('xd=')"
1be0d829
MK
675If you are unfortunate enough to be using one of these old 8-bit cards
676that move data at a whopping 125kB/s, then here is the scoop.
77bda21c
MK
677If the card is not recognized,
678you will have to use a boot argument of the form:
679
680.in +4n
681.nf
fea681da 682xd=type,irq,iobase,dma_chan
77bda21c
MK
683.fi
684.in
bebbbd1f 685.IP
fea681da 686The type value specifies the particular manufacturer of the card,
c13182ef
MK
687overriding autodetection.
688For the types to use, consult the
fea681da 689.I drivers/block/xd.c
c13182ef
MK
690source file of the kernel you are using.
691The type is an index in the list
fea681da
MK
692.I xd_sigs
693and in the course of time
694.\" 1.1.50, 1.3.81, 1.3.99, 2.0.34, 2.1.67, 2.1.78, 2.1.127
695types have been added to or deleted from the middle of the list,
c13182ef
MK
696changing all type numbers.
697Today (Linux 2.5.0) the types are
fea681da
MK
6980=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital;
6996,7,8=Seagate; 9=Omti; 10=XEBEC, and where here several types are
700given with the same designation, they are equivalent.
701
702The xd_setup() function does no checking on the values, and assumes
c13182ef
MK
703that you entered all four values.
704Don't disappoint it.
705Here is an
fea681da 706example usage for a WD1002 controller with the BIOS disabled/removed,
40dedbfe 707using the 'default' XT controller parameters:
77bda21c
MK
708
709.in +4n
710.nf
fea681da 711xd=2,5,0x320,3
77bda21c
MK
712.fi
713.in
bebbbd1f
MK
714.TP
715.B "Syquest's EZ* removable disks"
77bda21c
MK
716Syntax:
717
718.in +4n
719.nf
fea681da 720.BI ez= iobase[,irq[,rep[,nybble]]]
77bda21c
MK
721.fi
722.in
73d8cece 723.SS Ethernet devices
fea681da 724Different drivers make use of different parameters, but they all at
c13182ef
MK
725least share having an IRQ, an I/O port base value, and a name.
726In its most generic form, it looks something like this:
77bda21c
MK
727
728.in +4n
729.nf
fea681da 730ether=irq,iobase[,param_1[,...param_8]],name
77bda21c
MK
731.fi
732.in
733
80c9146c 734The first nonnumeric argument is taken as the name.
c13182ef
MK
735The param_n values (if applicable) usually have different meanings for each
736different card/driver.
737Typical param_n values are used to specify
fea681da
MK
738things like shared memory address, interface selection, DMA channel
739and the like.
740
741The most common use of this parameter is to force probing for a second
33a0ccb2 742ethercard, as the default is to probe only for one.
c13182ef 743This can be accomplished with a simple:
77bda21c
MK
744
745.in +4n
746.nf
fea681da 747ether=0,0,eth1
77bda21c
MK
748.fi
749.in
750
fea681da
MK
751Note that the values of zero for the IRQ and I/O base in the above
752example tell the driver(s) to autoprobe.
753
754The Ethernet-HowTo has extensive documentation on using multiple
e2badfdf 755cards and on the card/driver-specific implementation
c13182ef
MK
756of the param_n values where used.
757Interested readers should refer to
fea681da 758the section in that document on their particular card.
73d8cece 759.SS The floppy disk driver
fea681da 760There are many floppy driver options, and they are all listed in
cb6cb860 761.I Documentation/blockdev/floppy.txt
4568d084 762(or
cb6cb860
MK
763.I Documentation/floppy.txt
764in oplder kernels, or
4568d084 765.I drivers/block/README.fd
cb6cb860 766for ancient kernels) in the Linux kernel source.
3dd80946 767See that file for the details.
73d8cece 768.SS The sound driver
92b451e5 769The sound driver can also accept boot arguments to override the compiled-in
c13182ef
MK
770values.
771This is not recommended, as it is rather complex.
66a9882e 772It is described in the Linux kernel source file
ef505ff0
MK
773.IR Documentation/sound/oss/README.OSS
774.RI ( drivers/sound/Readme.linux
775in older kernel versions).
c13182ef 776It accepts
77bda21c
MK
777a boot argument of the form:
778
779.in +4n
780.nf
fea681da 781sound=device1[,device2[,device3...[,device10]]]
77bda21c
MK
782.fi
783.in
bebbbd1f 784.IP
fea681da
MK
785where each deviceN value is of the following format 0xTaaaId and the
786bytes are used as follows:
787
4d9b6984 788T \- device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
fea681da
MK
7897=SB16-MPU401
790
4d9b6984 791aaa \- I/O address in hex.
fea681da 792
4d9b6984 793I \- interrupt line in hex (i.e 10=a, 11=b, ...)
fea681da 794
4d9b6984 795d \- DMA channel.
fea681da 796
92b451e5 797As you can see, it gets pretty messy, and you are better off to compile
c13182ef 798in your own personal values as recommended.
77bda21c 799Using a boot argument of
25715c96 800\&'sound=0' will disable the sound driver entirely.
73d8cece 801.SS The line printer driver
bebbbd1f 802.TP
40dedbfe 803.B "'lp='"
77bda21c 804.br
fea681da 805Syntax:
77bda21c
MK
806
807.in +4n
808.nf
fea681da 809lp=0
fea681da 810lp=auto
fea681da 811lp=reset
fea681da 812lp=port[,port...]
77bda21c
MK
813.fi
814.in
bebbbd1f 815.IP
fea681da 816You can tell the printer driver what ports to use and what ports not
c13182ef
MK
817to use.
818The latter comes in handy if you don't want the printer driver
fea681da 819to claim all available parallel ports, so that other drivers
75b94dc3 820(e.g., PLIP, PPA) can use them instead.
fea681da 821
c13182ef
MK
822The format of the argument is multiple port names.
823For example,
fea681da 824lp=none,parport0 would use the first parallel port for lp1, and
c13182ef
MK
825disable lp0.
826To disable the printer driver entirely, one can use
fea681da 827lp=0.
fd7f0a7f
MK
828.\" .SH AUTHORS
829.\" Linus Torvalds (and many others)
47297adb 830.SH SEE ALSO
fea681da 831.BR klogd (8),
421405f9 832.BR mount (8)
fea681da
MK
833
834Large parts of this man page have been derived from the
835Boot Parameter HOWTO (version 1.0.1) written by Paul Gortmaker.
836More information may be found in this (or a more recent) HOWTO.
e57fca5a
MK
837An up-to-date source of information is the kernel source file
838.IR Documentation/kernel-parameters.txt .