Blame man7/bootparam.7

Packit 7cfc04
.\" Copyright (c) 1995,1997 Paul Gortmaker and Andries Brouwer
Packit 7cfc04
.\"
Packit 7cfc04
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
Packit 7cfc04
.\" This is free documentation; you can redistribute it and/or
Packit 7cfc04
.\" modify it under the terms of the GNU General Public License as
Packit 7cfc04
.\" published by the Free Software Foundation; either version 2 of
Packit 7cfc04
.\" the License, or (at your option) any later version.
Packit 7cfc04
.\"
Packit 7cfc04
.\" The GNU General Public License's references to "object code"
Packit 7cfc04
.\" and "executables" are to be interpreted as the output of any
Packit 7cfc04
.\" document formatting or typesetting system, including
Packit 7cfc04
.\" intermediate and printed output.
Packit 7cfc04
.\"
Packit 7cfc04
.\" This manual is distributed in the hope that it will be useful,
Packit 7cfc04
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 7cfc04
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 7cfc04
.\" GNU General Public License for more details.
Packit 7cfc04
.\"
Packit 7cfc04
.\" You should have received a copy of the GNU General Public
Packit 7cfc04
.\" License along with this manual; if not, see
Packit 7cfc04
.\" <http://www.gnu.org/licenses/>.
Packit 7cfc04
.\" %%%LICENSE_END
Packit 7cfc04
.\"
Packit 7cfc04
.\" This man page written 950814 by aeb, based on Paul Gortmaker's HOWTO
Packit 7cfc04
.\" (dated v1.0.1, 15/08/95).
Packit 7cfc04
.\" Major update, aeb, 970114.
Packit 7cfc04
.\"
Packit 7cfc04
.TH BOOTPARAM 7 2017-09-15 "Linux" "Linux Programmer's Manual"
Packit 7cfc04
.SH NAME
Packit 7cfc04
bootparam \- introduction to boot time parameters of the Linux kernel
Packit 7cfc04
.SH DESCRIPTION
Packit 7cfc04
The Linux kernel accepts certain 'command-line options' or 'boot time
Packit 7cfc04
parameters' at the moment it is started.
Packit 7cfc04
In general, this is used to
Packit 7cfc04
supply the kernel with information about hardware parameters that
Packit 7cfc04
the kernel would not be able to determine on its own, or to avoid/override
Packit 7cfc04
the values that the kernel would otherwise detect.
Packit 7cfc04
.PP
Packit 7cfc04
When the kernel is booted directly by the BIOS,
Packit 7cfc04
you have no opportunity to specify any parameters.
Packit 7cfc04
So, in order to take advantage of this possibility you have to
Packit 7cfc04
use a boot loader that is able to pass parameters, such as GRUB.
Packit 7cfc04
.SS The argument list
Packit 7cfc04
The kernel command line is parsed into a list of strings
Packit 7cfc04
(boot arguments) separated by spaces.
Packit 7cfc04
Most of the boot arguments have the form:
Packit 7cfc04
.PP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
name[=value_1][,value_2]...[,value_10]
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.PP
Packit 7cfc04
where 'name' is a unique keyword that is used to identify what part of
Packit 7cfc04
the kernel the associated values (if any) are to be given to.
Packit 7cfc04
Note the limit of 10 is real, as the present code handles only 10 comma
Packit 7cfc04
separated parameters per keyword.
Packit 7cfc04
(However, you can reuse the same
Packit 7cfc04
keyword with up to an additional 10 parameters in unusually
Packit 7cfc04
complicated situations, assuming the setup function supports it.)
Packit 7cfc04
.PP
Packit 7cfc04
Most of the sorting is coded in the kernel source file
Packit 7cfc04
.IR init/main.c .
Packit 7cfc04
First, the kernel
Packit 7cfc04
checks to see if the argument is any of the special arguments 'root=',
Packit 7cfc04
\&'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug' or 'init'.
Packit 7cfc04
The meaning of these special arguments is described below.
Packit 7cfc04
.PP
Packit 7cfc04
Then it walks a list of setup functions
Packit 7cfc04
to see if the specified argument string (such as 'foo') has
Packit 7cfc04
been associated with a setup function ('foo_setup()') for a particular
Packit 7cfc04
device or part of the kernel.
Packit 7cfc04
If you passed the kernel the line
Packit 7cfc04
foo=3,4,5,6 then the kernel would search the bootsetups array to see
Packit 7cfc04
if 'foo' was registered.
Packit 7cfc04
If it was, then it would call the setup
Packit 7cfc04
function associated with 'foo' (foo_setup()) and hand it the arguments
Packit 7cfc04
3, 4, 5, and 6 as given on the kernel command line.
Packit 7cfc04
.PP
Packit 7cfc04
Anything of the form 'foo=bar' that is not accepted as a setup function
Packit 7cfc04
as described above is then interpreted as an environment variable to
Packit 7cfc04
be set.
Packit 7cfc04
A (useless?) example would be to use 'TERM=vt100' as a boot
Packit 7cfc04
argument.
Packit 7cfc04
.PP
Packit 7cfc04
Any remaining arguments that were not picked up by the kernel and were
Packit 7cfc04
not interpreted as environment variables are then passed onto PID 1,
Packit 7cfc04
which is usually the
Packit 7cfc04
.BR init (1)
Packit 7cfc04
program.
Packit 7cfc04
The most common argument that
Packit 7cfc04
is passed to the
Packit 7cfc04
.I init
Packit 7cfc04
process is the word 'single' which instructs it
Packit 7cfc04
to boot the computer in single user mode, and not launch all the usual
Packit 7cfc04
daemons.
Packit 7cfc04
Check the manual page for the version of
Packit 7cfc04
.BR init (1)
Packit 7cfc04
installed on
Packit 7cfc04
your system to see what arguments it accepts.
Packit 7cfc04
.SS General non-device-specific boot arguments
Packit 7cfc04
.TP
Packit 7cfc04
.B "'init=...'"
Packit 7cfc04
This sets the initial command to be executed by the kernel.
Packit 7cfc04
If this is not set, or cannot be found, the kernel will try
Packit 7cfc04
.IR /sbin/init ,
Packit 7cfc04
then
Packit 7cfc04
.IR /etc/init ,
Packit 7cfc04
then
Packit 7cfc04
.IR /bin/init ,
Packit 7cfc04
then
Packit 7cfc04
.I /bin/sh
Packit 7cfc04
and panic if all of this fails.
Packit 7cfc04
.TP
Packit 7cfc04
.B "'nfsaddrs=...'"
Packit 7cfc04
This sets the NFS boot address to the given string.
Packit 7cfc04
This boot address is used in case of a net boot.
Packit 7cfc04
.TP
Packit 7cfc04
.B "'nfsroot=...'"
Packit 7cfc04
This sets the NFS root name to the given string.
Packit 7cfc04
If this string
Packit 7cfc04
does not begin with '/' or ',' or a digit, then it is prefixed by
Packit 7cfc04
\&'/tftpboot/'.
Packit 7cfc04
This root name is used in case of a net boot.
Packit 7cfc04
.TP
Packit 7cfc04
.B "'root=...'"
Packit 7cfc04
This argument tells the kernel what device is to be used as the root
Packit 7cfc04
filesystem while booting.
Packit 7cfc04
The default of this setting is determined
Packit 7cfc04
at compile time, and usually is the value of the root device of the
Packit 7cfc04
system that the kernel was built on.
Packit 7cfc04
To override this value, and
Packit 7cfc04
select the second floppy drive as the root device, one would
Packit 7cfc04
use 'root=/dev/fd1'.
Packit 7cfc04
.IP
Packit 7cfc04
The root device can be specified symbolically or numerically.
Packit 7cfc04
A symbolic specification has the form
Packit 7cfc04
.IR /dev/XXYN ,
Packit 7cfc04
where XX designates
Packit 7cfc04
the device type (e.g., 'hd' for ST-506 compatible hard disk, with Y in
Packit 7cfc04
\&'a'-'d'; 'sd' for SCSI compatible disk, with Y in 'a'-'e'),
Packit 7cfc04
Y the driver letter or
Packit 7cfc04
number, and N the number (in decimal) of the partition on this device.
Packit 7cfc04
.IP
Packit 7cfc04
Note that this has nothing to do with the designation of these
Packit 7cfc04
devices on your filesystem.
Packit 7cfc04
The '/dev/' part is purely conventional.
Packit 7cfc04
.IP
Packit 7cfc04
The more awkward and less portable numeric specification of the above
Packit 7cfc04
possible root devices in major/minor format is also accepted.
Packit 7cfc04
(For example,
Packit 7cfc04
.I /dev/sda3
Packit 7cfc04
is major 8, minor 3, so you could use 'root=0x803' as an
Packit 7cfc04
alternative.)
Packit 7cfc04
.TP
Packit 7cfc04
.BR "'rootdelay='"
Packit 7cfc04
This parameter sets the delay (in seconds) to pause before attempting
Packit 7cfc04
to mount the root filesystem.
Packit 7cfc04
.TP
Packit 7cfc04
.BR "'rootflags=...'"
Packit 7cfc04
This parameter sets the mount option string for the root filesystem
Packit 7cfc04
(see also
Packit 7cfc04
.BR fstab (5)).
Packit 7cfc04
.TP
Packit 7cfc04
.BR "'rootfstype=...'"
Packit 7cfc04
The 'rootfstype' option tells the kernel to mount the root filesystem as
Packit 7cfc04
if it where of the type specified.
Packit 7cfc04
This can be useful (for example) to
Packit 7cfc04
mount an ext3 filesystem as ext2 and then remove the journal in the root
Packit 7cfc04
filesystem, in fact reverting its format from ext3 to ext2 without the
Packit 7cfc04
need to boot the box from alternate media.
Packit 7cfc04
.TP
Packit 7cfc04
.BR 'ro' " and " 'rw'
Packit 7cfc04
The 'ro' option tells the kernel to mount the root filesystem
Packit 7cfc04
as 'read-only' so that filesystem consistency check programs (fsck)
Packit 7cfc04
can do their work on a quiescent filesystem.
Packit 7cfc04
No processes can
Packit 7cfc04
write to files on the filesystem in question until it is 'remounted'
Packit 7cfc04
as read/write capable, for example, by 'mount \-w \-n \-o remount /'.
Packit 7cfc04
(See also
Packit 7cfc04
.BR mount (8).)
Packit 7cfc04
.IP
Packit 7cfc04
The 'rw' option tells the kernel to mount the root filesystem read/write.
Packit 7cfc04
This is the default.
Packit 7cfc04
.TP
Packit 7cfc04
.B "'resume=...'"
Packit 7cfc04
This tells the kernel the location of the suspend-to-disk data that you want the machine to resume from after hibernation.
Packit 7cfc04
Usually, it is the same as your swap partition or file.
Packit 7cfc04
Example:
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
resume=/dev/hda2
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.TP
Packit 7cfc04
.B "'reserve=...'"
Packit 7cfc04
This is used to protect I/O port regions from probes.
Packit 7cfc04
The form of the command is:
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
.BI reserve= iobase,extent[,iobase,extent]...
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.IP
Packit 7cfc04
In some machines it may be necessary to prevent device drivers from
Packit 7cfc04
checking for devices (auto-probing) in a specific region.
Packit 7cfc04
This may be
Packit 7cfc04
because of hardware that reacts badly to the probing, or hardware
Packit 7cfc04
that would be mistakenly identified, or merely
Packit 7cfc04
hardware you don't want the kernel to initialize.
Packit 7cfc04
.IP
Packit 7cfc04
The reserve boot-time argument specifies an I/O port region that
Packit 7cfc04
shouldn't be probed.
Packit 7cfc04
A device driver will not probe a reserved region,
Packit 7cfc04
unless another boot argument explicitly specifies that it do so.
Packit 7cfc04
.IP
Packit 7cfc04
For example, the boot line
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
reserve=0x300,32  blah=0x300
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.IP
Packit 7cfc04
keeps all device drivers except the driver for 'blah' from probing
Packit 7cfc04
0x300\-0x31f.
Packit 7cfc04
.TP
Packit 7cfc04
.B "'panic=N'"
Packit 7cfc04
By default, the kernel will not reboot after a panic, but this option
Packit 7cfc04
will cause a kernel reboot after N seconds (if N is greater than zero).
Packit 7cfc04
This panic timeout can also be set by
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
echo N > /proc/sys/kernel/panic
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.TP
Packit 7cfc04
.B "'reboot=[warm|cold][,[bios|hard]]'"
Packit 7cfc04
Since Linux 2.0.22, a reboot is by default a cold reboot.
Packit 7cfc04
One asks for the old default with 'reboot=warm'.
Packit 7cfc04
(A cold reboot may be required to reset certain hardware,
Packit 7cfc04
but might destroy not yet written data in a disk cache.
Packit 7cfc04
A warm reboot may be faster.)
Packit 7cfc04
By default, a reboot is hard, by asking the keyboard controller
Packit 7cfc04
to pulse the reset line low, but there is at least one type
Packit 7cfc04
of motherboard where that doesn't work.
Packit 7cfc04
The option 'reboot=bios' will
Packit 7cfc04
instead jump through the BIOS.
Packit 7cfc04
.TP
Packit 7cfc04
.BR 'nosmp' " and " 'maxcpus=N'
Packit 7cfc04
(Only when __SMP__ is defined.)
Packit 7cfc04
A command-line option of 'nosmp' or 'maxcpus=0' will disable SMP
Packit 7cfc04
activation entirely; an option 'maxcpus=N' limits the maximum number
Packit 7cfc04
of CPUs activated in SMP mode to N.
Packit 7cfc04
.SS Boot arguments for use by kernel developers
Packit 7cfc04
.TP
Packit 7cfc04
.B "'debug'"
Packit 7cfc04
Kernel messages are handed off to a daemon (e.g.,
Packit 7cfc04
.BR klogd (8)
Packit 7cfc04
or similar) so that they may be logged to disk.
Packit 7cfc04
Messages with a priority above
Packit 7cfc04
.I console_loglevel
Packit 7cfc04
are also printed on the console.
Packit 7cfc04
(For a discussion of log levels, see
Packit 7cfc04
.BR syslog (2).)
Packit 7cfc04
By default,
Packit 7cfc04
.I console_loglevel
Packit 7cfc04
is set to log messages at levels higher than
Packit 7cfc04
.BR KERN_DEBUG .
Packit 7cfc04
This boot argument will cause the kernel to also
Packit 7cfc04
print messages logged at level
Packit 7cfc04
.BR KERN_DEBUG .
Packit 7cfc04
The console loglevel can also be set on a booted system via the
Packit 7cfc04
.IR /proc/sys/kernel/printk
Packit 7cfc04
file (described in
Packit 7cfc04
.BR syslog (2)),
Packit 7cfc04
the
Packit 7cfc04
.BR syslog (2)
Packit 7cfc04
.B SYSLOG_ACTION_CONSOLE_LEVEL
Packit 7cfc04
operation, or
Packit 7cfc04
.BR dmesg (8).
Packit 7cfc04
.TP
Packit 7cfc04
.B "'profile=N'"
Packit 7cfc04
It is possible to enable a kernel profiling function,
Packit 7cfc04
if one wishes to find out where the kernel is spending its CPU cycles.
Packit 7cfc04
Profiling is enabled by setting the variable
Packit 7cfc04
.I prof_shift
Packit 7cfc04
to a nonzero value.
Packit 7cfc04
This is done either by specifying
Packit 7cfc04
.B CONFIG_PROFILE
Packit 7cfc04
at compile time, or by giving the 'profile=' option.
Packit 7cfc04
Now the value that
Packit 7cfc04
.I prof_shift
Packit 7cfc04
gets will be N, when given, or
Packit 7cfc04
.BR CONFIG_PROFILE_SHIFT ,
Packit 7cfc04
when that is given, or 2, the default.
Packit 7cfc04
The significance of this variable is that it
Packit 7cfc04
gives the granularity of the profiling: each clock tick, if the
Packit 7cfc04
system was executing kernel code, a counter is incremented:
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
profile[address >> prof_shift]++;
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.IP
Packit 7cfc04
The raw profiling information can be read from
Packit 7cfc04
.IR /proc/profile .
Packit 7cfc04
Probably you'll want to use a tool such as readprofile.c to digest it.
Packit 7cfc04
Writing to
Packit 7cfc04
.I /proc/profile
Packit 7cfc04
will clear the counters.
Packit 7cfc04
.SS Boot arguments for ramdisk use
Packit 7cfc04
(Only if the kernel was compiled with
Packit 7cfc04
.BR CONFIG_BLK_DEV_RAM .)
Packit 7cfc04
In general it is a bad idea to use a ramdisk under Linux\(emthe
Packit 7cfc04
system will use available memory more efficiently itself.
Packit 7cfc04
But while booting,
Packit 7cfc04
it is often useful to load the floppy contents into a
Packit 7cfc04
ramdisk.
Packit 7cfc04
One might also have a system in which first
Packit 7cfc04
some modules (for filesystem or hardware) must be loaded
Packit 7cfc04
before the main disk can be accessed.
Packit 7cfc04
.IP
Packit 7cfc04
In Linux 1.3.48, ramdisk handling was changed drastically.
Packit 7cfc04
Earlier, the memory was allocated statically, and there was
Packit 7cfc04
a 'ramdisk=N' parameter to tell its size.
Packit 7cfc04
(This could also be set in the kernel image at compile time.)
Packit 7cfc04
These days ram disks use the buffer cache, and grow dynamically.
Packit 7cfc04
For a lot of information on the current ramdisk
Packit 7cfc04
setup, see the kernel source file
Packit 7cfc04
.IR Documentation/blockdev/ramdisk.txt
Packit 7cfc04
.RI ( Documentation/ramdisk.txt
Packit 7cfc04
in older kernels).
Packit 7cfc04
.IP
Packit 7cfc04
There are four parameters, two boolean and two integral.
Packit 7cfc04
.TP
Packit 7cfc04
.B "'load_ramdisk=N'"
Packit 7cfc04
If N=1, do load a ramdisk.
Packit 7cfc04
If N=0, do not load a ramdisk.
Packit 7cfc04
(This is the default.)
Packit 7cfc04
.TP
Packit 7cfc04
.B "'prompt_ramdisk=N'"
Packit 7cfc04
If N=1, do prompt for insertion of the floppy.
Packit 7cfc04
(This is the default.)
Packit 7cfc04
If N=0, do not prompt.
Packit 7cfc04
(Thus, this parameter is never needed.)
Packit 7cfc04
.TP
Packit 7cfc04
.BR 'ramdisk_size=N' " or (obsolete) " 'ramdisk=N'
Packit 7cfc04
Set the maximal size of the ramdisk(s) to N kB.
Packit 7cfc04
The default is 4096 (4\ MB).
Packit 7cfc04
.TP
Packit 7cfc04
.B "'ramdisk_start=N'"
Packit 7cfc04
Sets the starting block number (the offset on the floppy where
Packit 7cfc04
the ramdisk starts) to N.
Packit 7cfc04
This is needed in case the ramdisk follows a kernel image.
Packit 7cfc04
.TP
Packit 7cfc04
.B "'noinitrd'"
Packit 7cfc04
(Only if the kernel was compiled with
Packit 7cfc04
.B CONFIG_BLK_DEV_RAM
Packit 7cfc04
and
Packit 7cfc04
.BR CONFIG_BLK_DEV_INITRD .)
Packit 7cfc04
These days it is possible to compile the kernel to use initrd.
Packit 7cfc04
When this feature is enabled, the boot process will load the kernel
Packit 7cfc04
and an initial ramdisk; then the kernel converts initrd into
Packit 7cfc04
a "normal" ramdisk, which is mounted read-write as root device;
Packit 7cfc04
then
Packit 7cfc04
.I /linuxrc
Packit 7cfc04
is executed; afterward the "real" root filesystem is mounted,
Packit 7cfc04
and the initrd filesystem is moved over to
Packit 7cfc04
.IR /initrd ;
Packit 7cfc04
finally
Packit 7cfc04
the usual boot sequence (e.g., invocation of
Packit 7cfc04
.IR /sbin/init )
Packit 7cfc04
is performed.
Packit 7cfc04
.IP
Packit 7cfc04
For a detailed description of the initrd feature, see the kernel source file
Packit 7cfc04
.I Documentation/admin\-guide/initrd.rst
Packit 7cfc04
.\" commit 9d85025b0418163fae079c9ba8f8445212de8568
Packit 7cfc04
(or
Packit 7cfc04
.I Documentation/initrd.txt
Packit 7cfc04
before Linux 4.10).
Packit 7cfc04
.IP
Packit 7cfc04
The 'noinitrd' option tells the kernel that although it was compiled for
Packit 7cfc04
operation with initrd, it should not go through the above steps, but
Packit 7cfc04
leave the initrd data under
Packit 7cfc04
.IR /dev/initrd .
Packit 7cfc04
(This device can be used only once: the data is freed as soon as
Packit 7cfc04
the last process that used it has closed
Packit 7cfc04
.IR /dev/initrd .)
Packit 7cfc04
.SS Boot arguments for SCSI devices
Packit 7cfc04
General notation for this section:
Packit 7cfc04
.PP
Packit 7cfc04
.I iobase
Packit 7cfc04
-- the first I/O port that the SCSI host occupies.
Packit 7cfc04
These are specified in hexadecimal notation,
Packit 7cfc04
and usually lie in the range from 0x200 to 0x3ff.
Packit 7cfc04
.PP
Packit 7cfc04
.I irq
Packit 7cfc04
-- the hardware interrupt that the card is configured to use.
Packit 7cfc04
Valid values will be dependent on the card in question, but will
Packit 7cfc04
usually be 5, 7, 9, 10, 11, 12, and 15.
Packit 7cfc04
The other values are usually
Packit 7cfc04
used for common peripherals like IDE hard disks, floppies, serial
Packit 7cfc04
ports, and so on.
Packit 7cfc04
.PP
Packit 7cfc04
.I scsi-id
Packit 7cfc04
-- the ID that the host adapter uses to identify itself on the
Packit 7cfc04
SCSI bus.
Packit 7cfc04
Only some host adapters allow you to change this value, as
Packit 7cfc04
most have it permanently specified internally.
Packit 7cfc04
The usual default value
Packit 7cfc04
is 7, but the Seagate and Future Domain TMC-950 boards use 6.
Packit 7cfc04
.PP
Packit 7cfc04
.I parity
Packit 7cfc04
-- whether the SCSI host adapter expects the attached devices
Packit 7cfc04
to supply a parity value with all information exchanges.
Packit 7cfc04
Specifying a one indicates parity checking is enabled,
Packit 7cfc04
and a zero disables parity checking.
Packit 7cfc04
Again, not all adapters will support selection of parity
Packit 7cfc04
behavior as a boot argument.
Packit 7cfc04
.TP
Packit 7cfc04
.B "'max_scsi_luns=...'"
Packit 7cfc04
A SCSI device can have a number of 'subdevices' contained within
Packit 7cfc04
itself.
Packit 7cfc04
The most common example is one of the new SCSI CD-ROMs that
Packit 7cfc04
handle more than one disk at a time.
Packit 7cfc04
Each CD is addressed as a
Packit 7cfc04
\&'Logical Unit Number' (LUN) of that particular device.
Packit 7cfc04
But most
Packit 7cfc04
devices, such as hard disks, tape drives and such are only one device,
Packit 7cfc04
and will be assigned to LUN zero.
Packit 7cfc04
.IP
Packit 7cfc04
Some poorly designed SCSI devices cannot handle being probed for
Packit 7cfc04
LUNs not equal to zero.
Packit 7cfc04
Therefore, if the compile-time flag
Packit 7cfc04
.B CONFIG_SCSI_MULTI_LUN
Packit 7cfc04
is not set, newer kernels will by default probe only LUN zero.
Packit 7cfc04
.IP
Packit 7cfc04
To specify the number of probed LUNs at boot, one enters
Packit 7cfc04
\&'max_scsi_luns=n' as a boot arg, where n is a number between one and
Packit 7cfc04
eight.
Packit 7cfc04
To avoid problems as described above, one would use n=1 to
Packit 7cfc04
avoid upsetting such broken devices.
Packit 7cfc04
.TP
Packit 7cfc04
.B "SCSI tape configuration"
Packit 7cfc04
Some boot time configuration of the SCSI tape driver can be achieved
Packit 7cfc04
by using the following:
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
.BI st= buf_size[,write_threshold[,max_bufs]]
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.IP
Packit 7cfc04
The first two numbers are specified in units of kB.
Packit 7cfc04
The default
Packit 7cfc04
.I buf_size
Packit 7cfc04
is 32k\ B, and the maximum size that can be specified is a
Packit 7cfc04
ridiculous 16384\ kB.
Packit 7cfc04
The
Packit 7cfc04
.I write_threshold
Packit 7cfc04
is the value at which the buffer is committed to tape, with a
Packit 7cfc04
default value of 30\ kB.
Packit 7cfc04
The maximum number of buffers varies
Packit 7cfc04
with the number of drives detected, and has a default of two.
Packit 7cfc04
An example usage would be:
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
st=32,30,2
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.IP
Packit 7cfc04
Full details can be found in the file
Packit 7cfc04
.I Documentation/scsi/st.txt
Packit 7cfc04
(or
Packit 7cfc04
.I drivers/scsi/README.st
Packit 7cfc04
for older kernels) in the Linux kernel source.
Packit 7cfc04
.SS Hard disks
Packit 7cfc04
.TP
Packit 7cfc04
.B "IDE Disk/CD-ROM Driver Parameters"
Packit 7cfc04
The IDE driver accepts a number of parameters, which range from disk
Packit 7cfc04
geometry specifications, to support for broken controller chips.
Packit 7cfc04
Drive-specific options are specified by using 'hdX=' with X in 'a'-'h'.
Packit 7cfc04
.IP
Packit 7cfc04
Non-drive-specific options are specified with the prefix 'hd='.
Packit 7cfc04
Note that using a drive-specific prefix for a non-drive-specific option
Packit 7cfc04
will still work, and the option will just be applied as expected.
Packit 7cfc04
.IP
Packit 7cfc04
Also note that 'hd=' can be used to refer to the next unspecified
Packit 7cfc04
drive in the (a, ..., h) sequence.
Packit 7cfc04
For the following discussions,
Packit 7cfc04
the 'hd=' option will be cited for brevity.
Packit 7cfc04
See the file
Packit 7cfc04
.I Documentation/ide/ide.txt
Packit 7cfc04
(or
Packit 7cfc04
.I Documentation/ide.txt
Packit 7cfc04
.\" Linux 2.0, 2.2, 2.4
Packit 7cfc04
in older kernels, or
Packit 7cfc04
.I drivers/block/README.ide
Packit 7cfc04
in ancient kernels) in the Linux kernel source for more details.
Packit 7cfc04
.TP
Packit 7cfc04
.B "The 'hd=cyls,heads,sects[,wpcom[,irq]]' options"
Packit 7cfc04
These options are used to specify the physical geometry of the disk.
Packit 7cfc04
Only the first three values are required.
Packit 7cfc04
The cylinder/head/sectors
Packit 7cfc04
values will be those used by fdisk.
Packit 7cfc04
The write precompensation value
Packit 7cfc04
is ignored for IDE disks.
Packit 7cfc04
The IRQ value specified will be the IRQ
Packit 7cfc04
used for the interface that the drive resides on, and is not really a
Packit 7cfc04
drive-specific parameter.
Packit 7cfc04
.TP
Packit 7cfc04
.B "The 'hd=serialize' option"
Packit 7cfc04
The dual IDE interface CMD-640 chip is broken as designed such that
Packit 7cfc04
when drives on the secondary interface are used at the same time as
Packit 7cfc04
drives on the primary interface, it will corrupt your data.
Packit 7cfc04
Using this
Packit 7cfc04
option tells the driver to make sure that both interfaces are never
Packit 7cfc04
used at the same time.
Packit 7cfc04
.TP
Packit 7cfc04
.B "The 'hd=noprobe' option"
Packit 7cfc04
Do not probe for this drive.
Packit 7cfc04
For example,
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
hdb=noprobe hdb=1166,7,17
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.IP
Packit 7cfc04
would disable the probe, but still specify the drive geometry so
Packit 7cfc04
that it would be registered as a valid block device, and hence
Packit 7cfc04
usable.
Packit 7cfc04
.TP
Packit 7cfc04
.B "The 'hd=nowerr' option"
Packit 7cfc04
Some drives apparently have the
Packit 7cfc04
.B WRERR_STAT
Packit 7cfc04
bit stuck on permanently.
Packit 7cfc04
This enables a work-around for these broken devices.
Packit 7cfc04
.TP
Packit 7cfc04
.B "The 'hd=cdrom' option"
Packit 7cfc04
This tells the IDE driver that there is an ATAPI compatible CD-ROM
Packit 7cfc04
attached in place of a normal IDE hard disk.
Packit 7cfc04
In most cases the CD-ROM
Packit 7cfc04
is identified automatically, but if it isn't then this may help.
Packit 7cfc04
.TP
Packit 7cfc04
.B "Standard ST-506 Disk Driver Options ('hd=')"
Packit 7cfc04
The standard disk driver can accept geometry arguments for the disks
Packit 7cfc04
similar to the IDE driver.
Packit 7cfc04
Note however that it expects only three
Packit 7cfc04
values (C/H/S); any more or any less and it will silently ignore you.
Packit 7cfc04
Also, it accepts only 'hd=' as an argument, that is, 'hda='
Packit 7cfc04
and so on are not valid here.
Packit 7cfc04
The format is as follows:
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
hd=cyls,heads,sects
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.IP
Packit 7cfc04
If there are two disks installed, the above is repeated with the
Packit 7cfc04
geometry parameters of the second disk.
Packit 7cfc04
.SS Ethernet devices
Packit 7cfc04
Different drivers make use of different parameters, but they all at
Packit 7cfc04
least share having an IRQ, an I/O port base value, and a name.
Packit 7cfc04
In its most generic form, it looks something like this:
Packit 7cfc04
.PP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
ether=irq,iobase[,param_1[,...param_8]],name
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.PP
Packit 7cfc04
The first nonnumeric argument is taken as the name.
Packit 7cfc04
The param_n values (if applicable) usually have different meanings for each
Packit 7cfc04
different card/driver.
Packit 7cfc04
Typical param_n values are used to specify
Packit 7cfc04
things like shared memory address, interface selection, DMA channel
Packit 7cfc04
and the like.
Packit 7cfc04
.PP
Packit 7cfc04
The most common use of this parameter is to force probing for a second
Packit 7cfc04
ethercard, as the default is to probe only for one.
Packit 7cfc04
This can be accomplished with a simple:
Packit 7cfc04
.PP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
ether=0,0,eth1
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.PP
Packit 7cfc04
Note that the values of zero for the IRQ and I/O base in the above
Packit 7cfc04
example tell the driver(s) to autoprobe.
Packit 7cfc04
.PP
Packit 7cfc04
The Ethernet-HowTo has extensive documentation on using multiple
Packit 7cfc04
cards and on the card/driver-specific implementation
Packit 7cfc04
of the param_n values where used.
Packit 7cfc04
Interested readers should refer to
Packit 7cfc04
the section in that document on their particular card.
Packit 7cfc04
.SS The floppy disk driver
Packit 7cfc04
There are many floppy driver options, and they are all listed in
Packit 7cfc04
.I Documentation/blockdev/floppy.txt
Packit 7cfc04
(or
Packit 7cfc04
.I Documentation/floppy.txt
Packit 7cfc04
in older kernels, or
Packit 7cfc04
.I drivers/block/README.fd
Packit 7cfc04
for ancient kernels) in the Linux kernel source.
Packit 7cfc04
See that file for the details.
Packit 7cfc04
.SS The sound driver
Packit 7cfc04
The sound driver can also accept boot arguments to override the compiled-in
Packit 7cfc04
values.
Packit 7cfc04
This is not recommended, as it is rather complex.
Packit 7cfc04
It is described in the Linux kernel source file
Packit 7cfc04
.IR Documentation/sound/oss/README.OSS
Packit 7cfc04
.RI ( drivers/sound/Readme.linux
Packit 7cfc04
in older kernel versions).
Packit 7cfc04
It accepts
Packit 7cfc04
a boot argument of the form:
Packit 7cfc04
.PP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
sound=device1[,device2[,device3...[,device10]]]
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.PP
Packit 7cfc04
where each deviceN value is of the following format 0xTaaaId and the
Packit 7cfc04
bytes are used as follows:
Packit 7cfc04
.PP
Packit 7cfc04
T \- device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
Packit 7cfc04
7=SB16-MPU401
Packit 7cfc04
.PP
Packit 7cfc04
aaa \- I/O address in hex.
Packit 7cfc04
.PP
Packit 7cfc04
I \- interrupt line in hex (i.e., 10=a, 11=b, ...)
Packit 7cfc04
.PP
Packit 7cfc04
d \- DMA channel.
Packit 7cfc04
.PP
Packit 7cfc04
As you can see, it gets pretty messy, and you are better off to compile
Packit 7cfc04
in your own personal values as recommended.
Packit 7cfc04
Using a boot argument of
Packit 7cfc04
\&'sound=0' will disable the sound driver entirely.
Packit 7cfc04
.SS The line printer driver
Packit 7cfc04
.TP
Packit 7cfc04
.B "'lp='"
Packit 7cfc04
.br
Packit 7cfc04
Syntax:
Packit 7cfc04
.IP
Packit 7cfc04
.in +4n
Packit 7cfc04
.EX
Packit 7cfc04
lp=0
Packit 7cfc04
lp=auto
Packit 7cfc04
lp=reset
Packit 7cfc04
lp=port[,port...]
Packit 7cfc04
.EE
Packit 7cfc04
.in
Packit 7cfc04
.IP
Packit 7cfc04
You can tell the printer driver what ports to use and what ports not
Packit 7cfc04
to use.
Packit 7cfc04
The latter comes in handy if you don't want the printer driver
Packit 7cfc04
to claim all available parallel ports, so that other drivers
Packit 7cfc04
(e.g., PLIP, PPA) can use them instead.
Packit 7cfc04
.IP
Packit 7cfc04
The format of the argument is multiple port names.
Packit 7cfc04
For example,
Packit 7cfc04
lp=none,parport0 would use the first parallel port for lp1, and
Packit 7cfc04
disable lp0.
Packit 7cfc04
To disable the printer driver entirely, one can use
Packit 7cfc04
lp=0.
Packit 7cfc04
.\" .SH AUTHORS
Packit 7cfc04
.\" Linus Torvalds (and many others)
Packit 7cfc04
.SH SEE ALSO
Packit 7cfc04
.BR klogd (8),
Packit 7cfc04
.BR mount (8)
Packit 7cfc04
.PP
Packit 7cfc04
For up-to-date information, see the kernel source file
Packit 7cfc04
.IR Documentation/admin-guide/kernel-parameters.txt .
Packit 7cfc04
.SH COLOPHON
Packit 7cfc04
This page is part of release 4.15 of the Linux
Packit 7cfc04
.I man-pages
Packit 7cfc04
project.
Packit 7cfc04
A description of the project,
Packit 7cfc04
information about reporting bugs,
Packit 7cfc04
and the latest version of this page,
Packit 7cfc04
can be found at
Packit 7cfc04
\%https://www.kernel.org/doc/man\-pages/.