]>
Commit | Line | Data |
---|---|---|
fea681da MK |
1 | .\" Copyright (c) 1995,1997 Paul Gortmaker and Andries Brouwer |
2 | .\" | |
e4a74ca8 | 3 | .\" SPDX-License-Identifier: GPL-2.0-or-later |
fea681da MK |
4 | .\" |
5 | .\" This man page written 950814 by aeb, based on Paul Gortmaker's HOWTO | |
6 | .\" (dated v1.0.1, 15/08/95). | |
7 | .\" Major update, aeb, 970114. | |
8 | .\" | |
4c1c5274 | 9 | .TH bootparam 7 (date) "Linux man-pages (unreleased)" |
fea681da | 10 | .SH NAME |
f68512e9 | 11 | bootparam \- introduction to boot time parameters of the Linux kernel |
fea681da | 12 | .SH DESCRIPTION |
76c44d83 | 13 | The Linux kernel accepts certain 'command-line options' or 'boot time |
c13182ef | 14 | parameters' at the moment it is started. |
55a51edb | 15 | In general, this is used to |
fea681da MK |
16 | supply the kernel with information about hardware parameters that |
17 | the kernel would not be able to determine on its own, or to avoid/override | |
18 | the values that the kernel would otherwise detect. | |
c6d039a3 | 19 | .P |
ad8fe082 | 20 | When the kernel is booted directly by the BIOS, |
fea681da MK |
21 | you have no opportunity to specify any parameters. |
22 | So, in order to take advantage of this possibility you have to | |
122a101a | 23 | use a boot loader that is able to pass parameters, such as GRUB. |
73d8cece | 24 | .SS The argument list |
fea681da | 25 | The kernel command line is parsed into a list of strings |
c13182ef | 26 | (boot arguments) separated by spaces. |
36267a51 | 27 | Most of the boot arguments have the form: |
c6d039a3 | 28 | .P |
77bda21c | 29 | .in +4n |
bdd915e2 | 30 | .EX |
fea681da | 31 | name[=value_1][,value_2]...[,value_10] |
bdd915e2 | 32 | .EE |
77bda21c | 33 | .in |
c6d039a3 | 34 | .P |
40dedbfe | 35 | where 'name' is a unique keyword that is used to identify what part of |
fea681da | 36 | the kernel the associated values (if any) are to be given to. |
33a0ccb2 | 37 | Note the limit of 10 is real, as the present code handles only 10 comma |
c13182ef | 38 | separated parameters per keyword. |
3b777aff | 39 | (However, you can reuse the same |
fea681da MK |
40 | keyword with up to an additional 10 parameters in unusually |
41 | complicated situations, assuming the setup function supports it.) | |
c6d039a3 | 42 | .P |
e57fca5a MK |
43 | Most of the sorting is coded in the kernel source file |
44 | .IR init/main.c . | |
c13182ef | 45 | First, the kernel |
40dedbfe | 46 | checks to see if the argument is any of the special arguments 'root=', |
735334d4 | 47 | \&'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug', or 'init'. |
c13182ef | 48 | The meaning of these special arguments is described below. |
c6d039a3 | 49 | .P |
b46a2f4a MK |
50 | Then it walks a list of setup functions |
51 | to see if the specified argument string (such as 'foo') has | |
40dedbfe | 52 | been associated with a setup function ('foo_setup()') for a particular |
c13182ef MK |
53 | device or part of the kernel. |
54 | If you passed the kernel the line | |
fea681da | 55 | foo=3,4,5,6 then the kernel would search the bootsetups array to see |
40dedbfe | 56 | if 'foo' was registered. |
c13182ef | 57 | If it was, then it would call the setup |
40dedbfe | 58 | function associated with 'foo' (foo_setup()) and hand it the arguments |
31df5734 | 59 | 3, 4, 5, and 6 as given on the kernel command line. |
c6d039a3 | 60 | .P |
40dedbfe | 61 | Anything of the form 'foo=bar' that is not accepted as a setup function |
fea681da | 62 | as described above is then interpreted as an environment variable to |
c13182ef | 63 | be set. |
40dedbfe | 64 | A (useless?) example would be to use 'TERM=vt100' as a boot |
fea681da | 65 | argument. |
c6d039a3 | 66 | .P |
fea681da | 67 | Any remaining arguments that were not picked up by the kernel and were |
f184a1c3 MK |
68 | not interpreted as environment variables are then passed onto PID 1, |
69 | which is usually the | |
1aedd258 MK |
70 | .BR init (1) |
71 | program. | |
c13182ef | 72 | The most common argument that |
1aedd258 MK |
73 | is passed to the |
74 | .I init | |
75 | process is the word 'single' which instructs it | |
fea681da | 76 | to boot the computer in single user mode, and not launch all the usual |
c13182ef | 77 | daemons. |
1aedd258 MK |
78 | Check the manual page for the version of |
79 | .BR init (1) | |
80 | installed on | |
fea681da | 81 | your system to see what arguments it accepts. |
76c637e1 | 82 | .SS General non-device-specific boot arguments |
bebbbd1f | 83 | .TP |
40dedbfe | 84 | .B "'init=...'" |
fea681da MK |
85 | This sets the initial command to be executed by the kernel. |
86 | If this is not set, or cannot be found, the kernel will try | |
5ce89119 MK |
87 | .IR /sbin/init , |
88 | then | |
fea681da MK |
89 | .IR /etc/init , |
90 | then | |
91 | .IR /bin/init , | |
92 | then | |
0daa9e92 | 93 | .I /bin/sh |
fea681da | 94 | and panic if all of this fails. |
bebbbd1f | 95 | .TP |
40dedbfe | 96 | .B "'nfsaddrs=...'" |
32ae2e17 | 97 | This sets the NFS boot address to the given string. |
fea681da | 98 | This boot address is used in case of a net boot. |
bebbbd1f | 99 | .TP |
40dedbfe | 100 | .B "'nfsroot=...'" |
5d6aa84a | 101 | This sets the NFS root name to the given string. |
c13182ef | 102 | If this string |
fea681da | 103 | does not begin with '/' or ',' or a digit, then it is prefixed by |
25715c96 | 104 | \&'/tftpboot/'. |
c13182ef | 105 | This root name is used in case of a net boot. |
bebbbd1f | 106 | .TP |
40dedbfe | 107 | .B "'root=...'" |
fea681da | 108 | This argument tells the kernel what device is to be used as the root |
9ee4a2b6 | 109 | filesystem while booting. |
c13182ef | 110 | The default of this setting is determined |
fea681da | 111 | at compile time, and usually is the value of the root device of the |
c13182ef MK |
112 | system that the kernel was built on. |
113 | To override this value, and | |
fea681da | 114 | select the second floppy drive as the root device, one would |
6387216b | 115 | use 'root=/dev/fd1'. |
bdd915e2 | 116 | .IP |
fea681da | 117 | The root device can be specified symbolically or numerically. |
e57fca5a | 118 | A symbolic specification has the form |
21e79503 | 119 | .IR /dev/XXYN , |
e57fca5a | 120 | where XX designates |
af26ce0f | 121 | the device type (e.g., 'hd' for ST-506 compatible hard disk, with Y in |
523869f6 | 122 | \&'a'\[en]'d'; 'sd' for SCSI compatible disk, with Y in 'a'\[en]'e'), |
af26ce0f MK |
123 | Y the driver letter or |
124 | number, and N the number (in decimal) of the partition on this device. | |
bdd915e2 | 125 | .IP |
fea681da | 126 | Note that this has nothing to do with the designation of these |
9ee4a2b6 | 127 | devices on your filesystem. |
40dedbfe | 128 | The '/dev/' part is purely conventional. |
bdd915e2 | 129 | .IP |
fea681da | 130 | The more awkward and less portable numeric specification of the above |
c13182ef | 131 | possible root devices in major/minor format is also accepted. |
59dc509c | 132 | (For example, |
e57fca5a MK |
133 | .I /dev/sda3 |
134 | is major 8, minor 3, so you could use 'root=0x803' as an | |
fea681da | 135 | alternative.) |
bebbbd1f | 136 | .TP |
1ae6b2c7 | 137 | .B 'rootdelay=' |
91085d85 | 138 | This parameter sets the delay (in seconds) to pause before attempting |
1c137827 PG |
139 | to mount the root filesystem. |
140 | .TP | |
1ae6b2c7 | 141 | .B 'rootflags=...' |
ffe8d0b1 MK |
142 | This parameter sets the mount option string for the root filesystem |
143 | (see also | |
1c137827 PG |
144 | .BR fstab (5)). |
145 | .TP | |
1ae6b2c7 | 146 | .B 'rootfstype=...' |
6c8adf48 JLDL |
147 | The 'rootfstype' option tells the kernel to mount the root filesystem as |
148 | if it where of the type specified. | |
149 | This can be useful (for example) to | |
150 | mount an ext3 filesystem as ext2 and then remove the journal in the root | |
151 | filesystem, in fact reverting its format from ext3 to ext2 without the | |
152 | need to boot the box from alternate media. | |
153 | .TP | |
40dedbfe | 154 | .BR 'ro' " and " 'rw' |
9ee4a2b6 MK |
155 | The 'ro' option tells the kernel to mount the root filesystem |
156 | as 'read-only' so that filesystem consistency check programs (fsck) | |
157 | can do their work on a quiescent filesystem. | |
c13182ef | 158 | No processes can |
9ee4a2b6 | 159 | write to files on the filesystem in question until it is 'remounted' |
40dedbfe | 160 | as read/write capable, for example, by 'mount \-w \-n \-o remount /'. |
fea681da MK |
161 | (See also |
162 | .BR mount (8).) | |
bdd915e2 | 163 | .IP |
9ee4a2b6 | 164 | The 'rw' option tells the kernel to mount the root filesystem read/write. |
fea681da | 165 | This is the default. |
bebbbd1f | 166 | .TP |
d11f367d | 167 | .B "'resume=...'" |
15f0b7af AC |
168 | This tells the kernel the location of |
169 | the suspend-to-disk data that you want the machine to resume from | |
170 | after hibernation. | |
063692c0 MK |
171 | Usually, it is the same as your swap partition or file. |
172 | Example: | |
bdd915e2 | 173 | .IP |
77bda21c | 174 | .in +4n |
bdd915e2 | 175 | .EX |
77bda21c | 176 | resume=/dev/hda2 |
bdd915e2 | 177 | .EE |
77bda21c | 178 | .in |
d11f367d | 179 | .TP |
40dedbfe | 180 | .B "'reserve=...'" |
c13182ef MK |
181 | This is used to protect I/O port regions from probes. |
182 | The form of the command is: | |
bdd915e2 | 183 | .IP |
77bda21c | 184 | .in +4n |
bdd915e2 | 185 | .EX |
fea681da | 186 | .BI reserve= iobase,extent[,iobase,extent]... |
bdd915e2 | 187 | .EE |
77bda21c | 188 | .in |
bdd915e2 | 189 | .IP |
fea681da | 190 | In some machines it may be necessary to prevent device drivers from |
c13182ef MK |
191 | checking for devices (auto-probing) in a specific region. |
192 | This may be | |
fea681da MK |
193 | because of hardware that reacts badly to the probing, or hardware |
194 | that would be mistakenly identified, or merely | |
195 | hardware you don't want the kernel to initialize. | |
bdd915e2 | 196 | .IP |
fea681da | 197 | The reserve boot-time argument specifies an I/O port region that |
c13182ef MK |
198 | shouldn't be probed. |
199 | A device driver will not probe a reserved region, | |
fea681da | 200 | unless another boot argument explicitly specifies that it do so. |
bdd915e2 | 201 | .IP |
fea681da | 202 | For example, the boot line |
bdd915e2 | 203 | .IP |
77bda21c | 204 | .in +4n |
bdd915e2 | 205 | .EX |
fea681da | 206 | reserve=0x300,32 blah=0x300 |
bdd915e2 | 207 | .EE |
77bda21c | 208 | .in |
bebbbd1f | 209 | .IP |
40dedbfe | 210 | keeps all device drivers except the driver for 'blah' from probing |
94e9d9fe | 211 | 0x300\-0x31f. |
bebbbd1f | 212 | .TP |
40dedbfe | 213 | .B "'panic=N'" |
b9aee8fe | 214 | By default, the kernel will not reboot after a panic, but this option |
f7ceac86 | 215 | will cause a kernel reboot after N seconds (if N is greater than zero). |
77bda21c | 216 | This panic timeout can also be set by |
bdd915e2 | 217 | .IP |
77bda21c | 218 | .in +4n |
bdd915e2 | 219 | .EX |
1322e836 | 220 | echo N > /proc/sys/kernel/panic |
bdd915e2 | 221 | .EE |
77bda21c | 222 | .in |
bebbbd1f | 223 | .TP |
40dedbfe | 224 | .B "'reboot=[warm|cold][,[bios|hard]]'" |
66d2031a | 225 | Since Linux 2.0.22, a reboot is by default a cold reboot. |
40dedbfe | 226 | One asks for the old default with 'reboot=warm'. |
fea681da MK |
227 | (A cold reboot may be required to reset certain hardware, |
228 | but might destroy not yet written data in a disk cache. | |
229 | A warm reboot may be faster.) | |
b9aee8fe | 230 | By default, a reboot is hard, by asking the keyboard controller |
fea681da | 231 | to pulse the reset line low, but there is at least one type |
c13182ef | 232 | of motherboard where that doesn't work. |
40dedbfe | 233 | The option 'reboot=bios' will |
fea681da | 234 | instead jump through the BIOS. |
bebbbd1f | 235 | .TP |
40dedbfe | 236 | .BR 'nosmp' " and " 'maxcpus=N' |
fea681da | 237 | (Only when __SMP__ is defined.) |
40dedbfe MK |
238 | A command-line option of 'nosmp' or 'maxcpus=0' will disable SMP |
239 | activation entirely; an option 'maxcpus=N' limits the maximum number | |
fea681da | 240 | of CPUs activated in SMP mode to N. |
73d8cece | 241 | .SS Boot arguments for use by kernel developers |
bebbbd1f | 242 | .TP |
40dedbfe | 243 | .B "'debug'" |
016d2ca0 MK |
244 | Kernel messages are handed off to a daemon (e.g., |
245 | .BR klogd (8) | |
246 | or similar) so that they may be logged to disk. | |
c13182ef | 247 | Messages with a priority above |
fea681da | 248 | .I console_loglevel |
c13182ef | 249 | are also printed on the console. |
c14e2adc | 250 | (For a discussion of log levels, see |
016d2ca0 MK |
251 | .BR syslog (2).) |
252 | By default, | |
253 | .I console_loglevel | |
254 | is set to log messages at levels higher than | |
255 | .BR KERN_DEBUG . | |
c13182ef | 256 | This boot argument will cause the kernel to also |
016d2ca0 MK |
257 | print messages logged at level |
258 | .BR KERN_DEBUG . | |
259 | The console loglevel can also be set on a booted system via the | |
1ae6b2c7 | 260 | .I /proc/sys/kernel/printk |
016d2ca0 MK |
261 | file (described in |
262 | .BR syslog (2)), | |
263 | the | |
264 | .BR syslog (2) | |
265 | .B SYSLOG_ACTION_CONSOLE_LEVEL | |
266 | operation, or | |
267 | .BR dmesg (8). | |
bebbbd1f | 268 | .TP |
40dedbfe | 269 | .B "'profile=N'" |
fea681da MK |
270 | It is possible to enable a kernel profiling function, |
271 | if one wishes to find out where the kernel is spending its CPU cycles. | |
272 | Profiling is enabled by setting the variable | |
273 | .I prof_shift | |
c7094399 | 274 | to a nonzero value. |
40dedbfe MK |
275 | This is done either by specifying |
276 | .B CONFIG_PROFILE | |
277 | at compile time, or by giving the 'profile=' option. | |
fea681da MK |
278 | Now the value that |
279 | .I prof_shift | |
40dedbfe MK |
280 | gets will be N, when given, or |
281 | .BR CONFIG_PROFILE_SHIFT , | |
282 | when that is given, or 2, the default. | |
c13182ef | 283 | The significance of this variable is that it |
fea681da MK |
284 | gives the granularity of the profiling: each clock tick, if the |
285 | system was executing kernel code, a counter is incremented: | |
bdd915e2 | 286 | .IP |
77bda21c | 287 | .in +4n |
bdd915e2 | 288 | .EX |
fea681da | 289 | profile[address >> prof_shift]++; |
bdd915e2 | 290 | .EE |
77bda21c | 291 | .in |
bdd915e2 | 292 | .IP |
fea681da MK |
293 | The raw profiling information can be read from |
294 | .IR /proc/profile . | |
295 | Probably you'll want to use a tool such as readprofile.c to digest it. | |
296 | Writing to | |
297 | .I /proc/profile | |
298 | will clear the counters. | |
73d8cece | 299 | .SS Boot arguments for ramdisk use |
40dedbfe MK |
300 | (Only if the kernel was compiled with |
301 | .BR CONFIG_BLK_DEV_RAM .) | |
36546c38 | 302 | In general it is a bad idea to use a ramdisk under Linux\[em]the |
5503c85e | 303 | system will use available memory more efficiently itself. |
1aa04a53 | 304 | But while booting, |
fea681da | 305 | it is often useful to load the floppy contents into a |
c13182ef MK |
306 | ramdisk. |
307 | One might also have a system in which first | |
9ee4a2b6 | 308 | some modules (for filesystem or hardware) must be loaded |
fea681da | 309 | before the main disk can be accessed. |
bdd915e2 | 310 | .IP |
fea681da MK |
311 | In Linux 1.3.48, ramdisk handling was changed drastically. |
312 | Earlier, the memory was allocated statically, and there was | |
40dedbfe | 313 | a 'ramdisk=N' parameter to tell its size. |
421405f9 | 314 | (This could also be set in the kernel image at compile time.) |
fea681da | 315 | These days ram disks use the buffer cache, and grow dynamically. |
1aa04a53 | 316 | For a lot of information on the current ramdisk |
22367af2 | 317 | setup, see the kernel source file |
1ae6b2c7 | 318 | .I Documentation/blockdev/ramdisk.txt |
e57fca5a MK |
319 | .RI ( Documentation/ramdisk.txt |
320 | in older kernels). | |
bdd915e2 | 321 | .IP |
fea681da | 322 | There are four parameters, two boolean and two integral. |
bebbbd1f | 323 | .TP |
40dedbfe | 324 | .B "'load_ramdisk=N'" |
c13182ef MK |
325 | If N=1, do load a ramdisk. |
326 | If N=0, do not load a ramdisk. | |
fea681da | 327 | (This is the default.) |
bebbbd1f | 328 | .TP |
40dedbfe | 329 | .B "'prompt_ramdisk=N'" |
c13182ef MK |
330 | If N=1, do prompt for insertion of the floppy. |
331 | (This is the default.) | |
332 | If N=0, do not prompt. | |
333 | (Thus, this parameter is never needed.) | |
bebbbd1f | 334 | .TP |
40dedbfe | 335 | .BR 'ramdisk_size=N' " or (obsolete) " 'ramdisk=N' |
c13182ef | 336 | Set the maximal size of the ramdisk(s) to N kB. |
c4b7e5ac | 337 | The default is 4096 (4\ MB). |
bebbbd1f | 338 | .TP |
40dedbfe | 339 | .B "'ramdisk_start=N'" |
fea681da MK |
340 | Sets the starting block number (the offset on the floppy where |
341 | the ramdisk starts) to N. | |
342 | This is needed in case the ramdisk follows a kernel image. | |
bebbbd1f | 343 | .TP |
40dedbfe MK |
344 | .B "'noinitrd'" |
345 | (Only if the kernel was compiled with | |
346 | .B CONFIG_BLK_DEV_RAM | |
347 | and | |
348 | .BR CONFIG_BLK_DEV_INITRD .) | |
fea681da MK |
349 | These days it is possible to compile the kernel to use initrd. |
350 | When this feature is enabled, the boot process will load the kernel | |
351 | and an initial ramdisk; then the kernel converts initrd into | |
352 | a "normal" ramdisk, which is mounted read-write as root device; | |
e57fca5a MK |
353 | then |
354 | .I /linuxrc | |
9ee4a2b6 MK |
355 | is executed; afterward the "real" root filesystem is mounted, |
356 | and the initrd filesystem is moved over to | |
e57fca5a MK |
357 | .IR /initrd ; |
358 | finally | |
359 | the usual boot sequence (e.g., invocation of | |
360 | .IR /sbin/init ) | |
361 | is performed. | |
bdd915e2 | 362 | .IP |
e57fca5a | 363 | For a detailed description of the initrd feature, see the kernel source file |
96c11b3f ES |
364 | .I Documentation/admin\-guide/initrd.rst |
365 | .\" commit 9d85025b0418163fae079c9ba8f8445212de8568 | |
366 | (or | |
367 | .I Documentation/initrd.txt | |
368 | before Linux 4.10). | |
bdd915e2 | 369 | .IP |
40dedbfe | 370 | The 'noinitrd' option tells the kernel that although it was compiled for |
fea681da MK |
371 | operation with initrd, it should not go through the above steps, but |
372 | leave the initrd data under | |
373 | .IR /dev/initrd . | |
4d9b6984 | 374 | (This device can be used only once: the data is freed as soon as |
fea681da MK |
375 | the last process that used it has closed |
376 | .IR /dev/initrd .) | |
73d8cece | 377 | .SS Boot arguments for SCSI devices |
fea681da | 378 | General notation for this section: |
c6d039a3 | 379 | .P |
fea681da | 380 | .I iobase |
c13182ef MK |
381 | -- the first I/O port that the SCSI host occupies. |
382 | These are specified in hexadecimal notation, | |
383 | and usually lie in the range from 0x200 to 0x3ff. | |
c6d039a3 | 384 | .P |
fea681da MK |
385 | .I irq |
386 | -- the hardware interrupt that the card is configured to use. | |
387 | Valid values will be dependent on the card in question, but will | |
c13182ef MK |
388 | usually be 5, 7, 9, 10, 11, 12, and 15. |
389 | The other values are usually | |
fea681da | 390 | used for common peripherals like IDE hard disks, floppies, serial |
fb3969cd | 391 | ports, and so on. |
c6d039a3 | 392 | .P |
cd415e73 | 393 | .I scsi\-id |
fea681da | 394 | -- the ID that the host adapter uses to identify itself on the |
c13182ef MK |
395 | SCSI bus. |
396 | Only some host adapters allow you to change this value, as | |
397 | most have it permanently specified internally. | |
398 | The usual default value | |
fea681da | 399 | is 7, but the Seagate and Future Domain TMC-950 boards use 6. |
c6d039a3 | 400 | .P |
fea681da MK |
401 | .I parity |
402 | -- whether the SCSI host adapter expects the attached devices | |
c13182ef MK |
403 | to supply a parity value with all information exchanges. |
404 | Specifying a one indicates parity checking is enabled, | |
405 | and a zero disables parity checking. | |
406 | Again, not all adapters will support selection of parity | |
d9bfdb9c | 407 | behavior as a boot argument. |
bebbbd1f | 408 | .TP |
40dedbfe | 409 | .B "'max_scsi_luns=...'" |
310672d6 | 410 | A SCSI device can have a number of 'subdevices' contained within |
c13182ef MK |
411 | itself. |
412 | The most common example is one of the new SCSI CD-ROMs that | |
413 | handle more than one disk at a time. | |
414 | Each CD is addressed as a | |
25715c96 | 415 | \&'Logical Unit Number' (LUN) of that particular device. |
c13182ef | 416 | But most |
3ded684c | 417 | devices, such as hard disks, tape drives, and such are only one device, |
fea681da | 418 | and will be assigned to LUN zero. |
bdd915e2 | 419 | .IP |
fea681da | 420 | Some poorly designed SCSI devices cannot handle being probed for |
c13182ef | 421 | LUNs not equal to zero. |
29aceda4 | 422 | Therefore, if the compile-time flag |
40dedbfe | 423 | .B CONFIG_SCSI_MULTI_LUN |
e0a06014 | 424 | is not set, newer kernels will by default probe only LUN zero. |
bdd915e2 | 425 | .IP |
fea681da | 426 | To specify the number of probed LUNs at boot, one enters |
25715c96 | 427 | \&'max_scsi_luns=n' as a boot arg, where n is a number between one and |
c13182ef MK |
428 | eight. |
429 | To avoid problems as described above, one would use n=1 to | |
fea681da | 430 | avoid upsetting such broken devices. |
bebbbd1f MK |
431 | .TP |
432 | .B "SCSI tape configuration" | |
fea681da MK |
433 | Some boot time configuration of the SCSI tape driver can be achieved |
434 | by using the following: | |
bdd915e2 | 435 | .IP |
77bda21c | 436 | .in +4n |
bdd915e2 | 437 | .EX |
fea681da | 438 | .BI st= buf_size[,write_threshold[,max_bufs]] |
bdd915e2 | 439 | .EE |
77bda21c | 440 | .in |
bdd915e2 | 441 | .IP |
c13182ef MK |
442 | The first two numbers are specified in units of kB. |
443 | The default | |
fea681da | 444 | .I buf_size |
ee8655b5 MK |
445 | is 32k\ B, and the maximum size that can be specified is a |
446 | ridiculous 16384\ kB. | |
c13182ef | 447 | The |
fea681da MK |
448 | .I write_threshold |
449 | is the value at which the buffer is committed to tape, with a | |
ee8655b5 | 450 | default value of 30\ kB. |
c13182ef | 451 | The maximum number of buffers varies |
fea681da MK |
452 | with the number of drives detected, and has a default of two. |
453 | An example usage would be: | |
bdd915e2 | 454 | .IP |
77bda21c | 455 | .in +4n |
bdd915e2 | 456 | .EX |
fea681da | 457 | st=32,30,2 |
bdd915e2 | 458 | .EE |
77bda21c | 459 | .in |
bebbbd1f | 460 | .IP |
4568d084 MK |
461 | Full details can be found in the file |
462 | .I Documentation/scsi/st.txt | |
463 | (or | |
464 | .I drivers/scsi/README.st | |
66a9882e | 465 | for older kernels) in the Linux kernel source. |
73d8cece | 466 | .SS Hard disks |
bebbbd1f MK |
467 | .TP |
468 | .B "IDE Disk/CD-ROM Driver Parameters" | |
fea681da | 469 | The IDE driver accepts a number of parameters, which range from disk |
c13182ef | 470 | geometry specifications, to support for broken controller chips. |
523869f6 | 471 | Drive-specific options are specified by using 'hdX=' with X in 'a'\[en]'h'. |
bdd915e2 | 472 | .IP |
e2badfdf MK |
473 | Non-drive-specific options are specified with the prefix 'hd='. |
474 | Note that using a drive-specific prefix for a non-drive-specific option | |
fea681da | 475 | will still work, and the option will just be applied as expected. |
bdd915e2 | 476 | .IP |
40dedbfe | 477 | Also note that 'hd=' can be used to refer to the next unspecified |
c13182ef MK |
478 | drive in the (a, ..., h) sequence. |
479 | For the following discussions, | |
40dedbfe | 480 | the 'hd=' option will be cited for brevity. |
c13182ef | 481 | See the file |
0eb9025a | 482 | .I Documentation/ide/ide.txt |
4568d084 | 483 | (or |
0eb9025a MK |
484 | .I Documentation/ide.txt |
485 | .\" Linux 2.0, 2.2, 2.4 | |
486 | in older kernels, or | |
4568d084 | 487 | .I drivers/block/README.ide |
0eb9025a | 488 | in ancient kernels) in the Linux kernel source for more details. |
bebbbd1f | 489 | .TP |
40dedbfe | 490 | .B "The 'hd=cyls,heads,sects[,wpcom[,irq]]' options" |
fea681da | 491 | These options are used to specify the physical geometry of the disk. |
c13182ef MK |
492 | Only the first three values are required. |
493 | The cylinder/head/sectors | |
494 | values will be those used by fdisk. | |
495 | The write precompensation value | |
496 | is ignored for IDE disks. | |
497 | The IRQ value specified will be the IRQ | |
fea681da | 498 | used for the interface that the drive resides on, and is not really a |
e2badfdf | 499 | drive-specific parameter. |
bebbbd1f | 500 | .TP |
40dedbfe | 501 | .B "The 'hd=serialize' option" |
fea681da MK |
502 | The dual IDE interface CMD-640 chip is broken as designed such that |
503 | when drives on the secondary interface are used at the same time as | |
c13182ef MK |
504 | drives on the primary interface, it will corrupt your data. |
505 | Using this | |
fea681da MK |
506 | option tells the driver to make sure that both interfaces are never |
507 | used at the same time. | |
bebbbd1f | 508 | .TP |
40dedbfe | 509 | .B "The 'hd=noprobe' option" |
c13182ef MK |
510 | Do not probe for this drive. |
511 | For example, | |
bdd915e2 | 512 | .IP |
77bda21c | 513 | .in +4n |
bdd915e2 | 514 | .EX |
fea681da | 515 | hdb=noprobe hdb=1166,7,17 |
bdd915e2 | 516 | .EE |
77bda21c | 517 | .in |
bebbbd1f | 518 | .IP |
fea681da MK |
519 | would disable the probe, but still specify the drive geometry so |
520 | that it would be registered as a valid block device, and hence | |
521 | usable. | |
bebbbd1f | 522 | .TP |
40dedbfe MK |
523 | .B "The 'hd=nowerr' option" |
524 | Some drives apparently have the | |
525 | .B WRERR_STAT | |
526 | bit stuck on permanently. | |
fea681da | 527 | This enables a work-around for these broken devices. |
bebbbd1f | 528 | .TP |
40dedbfe | 529 | .B "The 'hd=cdrom' option" |
fea681da | 530 | This tells the IDE driver that there is an ATAPI compatible CD-ROM |
c13182ef MK |
531 | attached in place of a normal IDE hard disk. |
532 | In most cases the CD-ROM | |
fea681da | 533 | is identified automatically, but if it isn't then this may help. |
bebbbd1f | 534 | .TP |
40dedbfe | 535 | .B "Standard ST-506 Disk Driver Options ('hd=')" |
fea681da | 536 | The standard disk driver can accept geometry arguments for the disks |
c13182ef | 537 | similar to the IDE driver. |
33a0ccb2 | 538 | Note however that it expects only three |
c13182ef | 539 | values (C/H/S); any more or any less and it will silently ignore you. |
33a0ccb2 | 540 | Also, it accepts only 'hd=' as an argument, that is, 'hda=' |
c13182ef MK |
541 | and so on are not valid here. |
542 | The format is as follows: | |
bdd915e2 | 543 | .IP |
77bda21c | 544 | .in +4n |
bdd915e2 | 545 | .EX |
fea681da | 546 | hd=cyls,heads,sects |
bdd915e2 | 547 | .EE |
77bda21c | 548 | .in |
bebbbd1f | 549 | .IP |
fea681da MK |
550 | If there are two disks installed, the above is repeated with the |
551 | geometry parameters of the second disk. | |
73d8cece | 552 | .SS Ethernet devices |
fea681da | 553 | Different drivers make use of different parameters, but they all at |
c13182ef MK |
554 | least share having an IRQ, an I/O port base value, and a name. |
555 | In its most generic form, it looks something like this: | |
c6d039a3 | 556 | .P |
77bda21c | 557 | .in +4n |
bdd915e2 | 558 | .EX |
fea681da | 559 | ether=irq,iobase[,param_1[,...param_8]],name |
bdd915e2 | 560 | .EE |
77bda21c | 561 | .in |
c6d039a3 | 562 | .P |
80c9146c | 563 | The first nonnumeric argument is taken as the name. |
c13182ef MK |
564 | The param_n values (if applicable) usually have different meanings for each |
565 | different card/driver. | |
566 | Typical param_n values are used to specify | |
fea681da MK |
567 | things like shared memory address, interface selection, DMA channel |
568 | and the like. | |
c6d039a3 | 569 | .P |
fea681da | 570 | The most common use of this parameter is to force probing for a second |
33a0ccb2 | 571 | ethercard, as the default is to probe only for one. |
c13182ef | 572 | This can be accomplished with a simple: |
c6d039a3 | 573 | .P |
77bda21c | 574 | .in +4n |
bdd915e2 | 575 | .EX |
fea681da | 576 | ether=0,0,eth1 |
bdd915e2 | 577 | .EE |
77bda21c | 578 | .in |
c6d039a3 | 579 | .P |
fea681da MK |
580 | Note that the values of zero for the IRQ and I/O base in the above |
581 | example tell the driver(s) to autoprobe. | |
c6d039a3 | 582 | .P |
fea681da | 583 | The Ethernet-HowTo has extensive documentation on using multiple |
e2badfdf | 584 | cards and on the card/driver-specific implementation |
c13182ef MK |
585 | of the param_n values where used. |
586 | Interested readers should refer to | |
fea681da | 587 | the section in that document on their particular card. |
73d8cece | 588 | .SS The floppy disk driver |
fea681da | 589 | There are many floppy driver options, and they are all listed in |
cb6cb860 | 590 | .I Documentation/blockdev/floppy.txt |
4568d084 | 591 | (or |
cb6cb860 | 592 | .I Documentation/floppy.txt |
dada4047 | 593 | in older kernels, or |
4568d084 | 594 | .I drivers/block/README.fd |
cb6cb860 | 595 | for ancient kernels) in the Linux kernel source. |
3dd80946 | 596 | See that file for the details. |
73d8cece | 597 | .SS The sound driver |
92b451e5 | 598 | The sound driver can also accept boot arguments to override the compiled-in |
c13182ef MK |
599 | values. |
600 | This is not recommended, as it is rather complex. | |
66a9882e | 601 | It is described in the Linux kernel source file |
1ae6b2c7 | 602 | .I Documentation/sound/oss/README.OSS |
ef505ff0 MK |
603 | .RI ( drivers/sound/Readme.linux |
604 | in older kernel versions). | |
c13182ef | 605 | It accepts |
77bda21c | 606 | a boot argument of the form: |
c6d039a3 | 607 | .P |
77bda21c | 608 | .in +4n |
bdd915e2 | 609 | .EX |
fea681da | 610 | sound=device1[,device2[,device3...[,device10]]] |
bdd915e2 | 611 | .EE |
77bda21c | 612 | .in |
c6d039a3 | 613 | .P |
fea681da MK |
614 | where each deviceN value is of the following format 0xTaaaId and the |
615 | bytes are used as follows: | |
c6d039a3 | 616 | .P |
4d9b6984 | 617 | T \- device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, |
fea681da | 618 | 7=SB16-MPU401 |
c6d039a3 | 619 | .P |
4d9b6984 | 620 | aaa \- I/O address in hex. |
c6d039a3 | 621 | .P |
658a3012 | 622 | I \- interrupt line in hex (i.e., 10=a, 11=b, ...) |
c6d039a3 | 623 | .P |
4d9b6984 | 624 | d \- DMA channel. |
c6d039a3 | 625 | .P |
92b451e5 | 626 | As you can see, it gets pretty messy, and you are better off to compile |
c13182ef | 627 | in your own personal values as recommended. |
77bda21c | 628 | Using a boot argument of |
25715c96 | 629 | \&'sound=0' will disable the sound driver entirely. |
73d8cece | 630 | .SS The line printer driver |
bebbbd1f | 631 | .TP |
40dedbfe | 632 | .B "'lp='" |
77bda21c | 633 | .br |
fea681da | 634 | Syntax: |
bdd915e2 | 635 | .IP |
77bda21c | 636 | .in +4n |
bdd915e2 | 637 | .EX |
fea681da | 638 | lp=0 |
fea681da | 639 | lp=auto |
fea681da | 640 | lp=reset |
fea681da | 641 | lp=port[,port...] |
bdd915e2 | 642 | .EE |
77bda21c | 643 | .in |
bebbbd1f | 644 | .IP |
fea681da | 645 | You can tell the printer driver what ports to use and what ports not |
c13182ef MK |
646 | to use. |
647 | The latter comes in handy if you don't want the printer driver | |
fea681da | 648 | to claim all available parallel ports, so that other drivers |
75b94dc3 | 649 | (e.g., PLIP, PPA) can use them instead. |
bdd915e2 | 650 | .IP |
c13182ef MK |
651 | The format of the argument is multiple port names. |
652 | For example, | |
fea681da | 653 | lp=none,parport0 would use the first parallel port for lp1, and |
c13182ef MK |
654 | disable lp0. |
655 | To disable the printer driver entirely, one can use | |
fea681da | 656 | lp=0. |
fd7f0a7f MK |
657 | .\" .SH AUTHORS |
658 | .\" Linus Torvalds (and many others) | |
47297adb | 659 | .SH SEE ALSO |
fea681da | 660 | .BR klogd (8), |
421405f9 | 661 | .BR mount (8) |
c6d039a3 | 662 | .P |
c7c19fcd | 663 | For up-to-date information, see the kernel source file |
b49c2acb | 664 | .IR Documentation/admin\-guide/kernel\-parameters.txt . |