.\» This is free documentation; you can redistribute it and/or.\» modify it under the terms of the GNU General Public License as.\» published by the Free Software Foundation; either version 2 of.\» the License, or (at your option) any later version..\"
.\» The GNU General Public License's references to «object code".\» and «executables» are to be interpreted as the output of any.\» document formatting or typesetting system, including.\» intermediate and printed output.
.\"
.\» This manual is distributed in the hope that it will be useful,.\» but WITHOUT ANY WARRANTY; without even the implied warranty of.\» MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the.\» GNU General Public License for more details..\"
.\» You should have received a copy of the GNU General Public.\» License along with this manual; if not, write to the Free.\» Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,.\» USA.
.\"
.\» This man page written 950814 by aeb, based on Paul Gortmaker's HOWTO.\» (dated v1.0.1, 15/08/95).
.\"
.TH BOOTPARAM 7 «15 August 1995» «Linux 1.3.19» «Linux Programmer's Manual".SH NAME
bootparam \- Introduction to boot time parameters of the Linux kernel.SH DESCRIPTION
parameters' at the moment it is started. In general this is used tosupply the kernel with information about hardware parameters thatthe kernel would not be able to determine on its own, or to avoid/overridethe values that the kernel would otherwise detect.
which you copied a kernel using `cp zImage /dev/fd0'),you have no opportunity to specify any parameters.
use software that is able to pass parameters, like LILO or loadlin.
using rdev, see
.BR rdev (8)
for further details.
most commonly used. It has the ability to boot various kernels, andstores the configuration information in a plain text file. (See.BR lilo (8)
and
.BR lilo.conf (5).)
program that has the capability to launch a Linux kernel from the DOSprompt (with boot-args) assuming that certain resources are available.
the supplied DOS driver to put the hardware into a known state. Acommon example is `SoundBlaster Compatible' sound cards that requirethe DOS driver to twiddle a few mystical registers to put the cardinto a SB compatible mode. Booting DOS with the supplied driver, andthen loading Linux from the DOS prompt with loadlin avoids the resetof the card that happens if one rebooted instead.
.SH THE ARGUMENT LIST
.IP
name[=value_1][,value_2]...[,value_11]
.LP
where `name' is a unique keyword that is used to identify what part ofthe kernel the associated values (if any) are to be given to. Multipleboot args are just a space separated list of the above format. Notethe limit of 11 is real, as the present code only handles 11 commaseparated parameters per keyword. (However, you can re-use the samekeyword with up to an additional 11 parameters in unusuallycomplicated situations, assuming the setup function supports it.)
checks to see if the argument is any of the special arguments `root=',`ro', `rw', or `debug'. The meaning of these special arguments isdescribed further on in the document.
array) to see if the specified argument string (such as `foo') hasbeen associated with a setup function (`foo_setup()') for a particulardevice or part of the kernel. If you passed the kernel the linefoo=3,4,5,6 then the kernel would search the bootsetups array to seeif `foo' was registered. If it was, then it would call the setupfunction associated with `foo' (foo_setup()) and hand it the arguments3, 4, 5 and 6 as given on the kernel command line.
as described above is then interpreted as an environment variable tobe set. A (useless?) example would be to use `TERM=vt100' as a bootargument.
not interpreted as environment variables are then passed onto processone, which is usually the init program. The most common argument thatis passed to the init process is the word `single' which instructs initto boot the computer in single user mode, and not launch all the usualdaemons. Check the manual page for the version of init installed onyour system to see what arguments it accepts.
.SH «GENERAL NON-DEVICE SPECIFIC BOOT ARGS"
.SS «`no387'"
protected mode. For example, some of the early ULSI-387 chips wouldcause solid lockups while performing floating point calculations.
coprocessor even if you have one. Of course you must then have yourkernel compiled with math emulation support!
.SS «`no-hlt'"
instruction, in that they can't reliably return to operating modeafter this instruction is used. Using the `no-hlt' instruction tells
and to not halt the CPU. This allows people with these broken chipsto use Linux.
.SS «`root=...'"
filesystem while booting. The default of this setting is determinedat compile time, and usually is the value of the root device of thesystem that the kernel was built on. To override this value, andselect the second floppy drive as the root device, one woulduse `root=/dev/fd1'. (The root device can also be set using.BR rdev (8).)
the device type (`hd' for ST-506 compatible hard disk, with Y in`a'-`h'; `sd' for SCSI compatible disk, with Y in `a'-`e'; `xd'for XT compatible disk, with Y either `a' or `b'; `fd' forfloppy disk, with Y the floppy drive number - fd0 would bethe DOS `A:' drive, and fd1 would be `B:'), Y the driver letter ornumber, and N the number of the partition on this device(absent in the case of floppies).
devices on your file system. The `/dev/' part is purely conventional.
possible root devices in major/minor format is also accepted. (e.g./dev/sda3 is major 8, minor 3, so you could use `root=0x803' as analternative.)
.SS «`ro' and `rw'"
as `readonly' so that filesystem consistency check programs (fsck)can do their work on a quiescent file system. No processes canwrite to files on the filesystem in question until it is `remounted'as read/write capable, e.g., by `mount -w -n -o remount /'.(See also
.BR mount (8).)
.BR rdev (8).
.SS «`debug'"
may be logged to disk. Messages with a priority above.I console_loglevel
are also printed on the console. (For these levels, see <linux/kernel.h>.)
debug messages. This boot argument will cause the kernel to alsoprint the messages of DEBUG priority.
to klogd. See
.BR klogd (8).
.SS «`reserve=...'"
command is:
.IP
.BI reserve= iobase,extent[,iobase,extent]...
.LP
checking for devices (auto-probing) in a specific region. This may bebecause of hardware that reacts badly to the probing, or hardwarethat would be mistakenly identified, or merelyhardware you don't want the kernel to initialize.
shouldn't be probed. A device driver will not probe a reserved region,unless another boot argument explicitly specifies that it do so.
.IP
reserve=0x300,32 blah=0x300
.LP
keeps all device drivers except the driver for `blah' from probing0x300-0x31f.
.SS «`ramdisk=...'
example, if one wished to have a root filesystem on a 1.44MB floppyloaded into the RAM disk device, they would use:.IP
ramdisk=1440
.LP
and can be modified using
.BR rdev (8).
.SS «`mem=...'"
the amount of installed memory was only designed to be ableto report up to 64MB. Linux uses this BIOS call at boot todetermine how much memory is installed. If you have more than 64MB of
you have. The value is in decimal or hexadecimal (prefix 0x),and the suffixes `k' (times 1024) or `M' (times 1048576) can be used.
\&``The kernel will accept any `mem=xx' parameter you give it, and if itturns out that you lied to it, it will crash horribly sooner or later.
\&`mem=0x1000000' means you have 16MB of memory, for example. For a96MB machine this would be `mem=0x6000000'.
cacheing or whatever, so you might not actually have up to the full96MB addressable. The reverse is also true: some chipsets will mapthe physical memory that is covered by the BIOS area into the areajust past the top of memory, so the top-of-mem might actually be 96MB+ 384kB for example. If you tell linux that it has more memory thanit actually does have, bad things will happen: maybe not at once, butsurely eventually.''
.SH «BOOT ARGUMENTS FOR SCSI DEVICES"
.I iobase
-- the first I/O port that the SCSI host occupies. These arespecified in hexidecimal notation, and usually lie in the range from0x200 to 0x3ff.
.I irq
-- the hardware interrupt that the card is configured to use.
usually be 5, 7, 9, 10, 11, 12, and 15. The other values are usuallyused for common peripherals like IDE hard disks, floppies, serialports, etc.
.I scsi-id
-- the ID that the host adapter uses to identify itself on the
most have it permanently specified internally. The usual default valueis 7, but the Seagate and Future Domain TMC-950 boards use 6.
.I parity
-- whether the SCSI host adapter expects the attached devicesto supply a parity value with all information exchanges. Specifying aone indicates parity checking is enabled, and a zero disables paritychecking. Again, not all adapters will support selection of paritybehaviour as a boot argument.
.SS «`max_scsi_luns=...'"
itself. The most common example is one of the new SCSI CD-ROMs thathandle more than one disk at a time. Each CD is addressed as a`Logical Unit Number' (LUN) of that particular device. But mostdevices, such as hard disks, tape drives and such are only one device,and will be assigned to LUN zero.
only probe LUN zero.
`max_scsi_luns=n' as a boot arg, where n is a number between one andeight. To avoid problems as described above, one would use n=1 toavoid upsetting such broken devices.
.SS «SCSI tape configuration"
by using the following:
.IP
.BI st= buf_size[,write_threshold[,max_bufs]]
.LP
.I buf_size
is 32kB, and the maximum size that can be specified is aridiculous 16384kB. The
.I write_threshold
is the value at which the buffer is committed to tape, with adefault value of 30kB. The maximum number of buffers varieswith the number of drives detected, and has a default of two.
.IP
st=32,30,2
.LP
directory of the kernel source tree.
.SS «Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI configuration"
if none is present, the probe will not find your card. Then you willhave to use a boot arg of the form:
.IP
.BI aha152x= iobase[,irq[,scsi-id[,reconnect[,parity]]]].LP
value can be specified to set the debug level.
.I reconnect
value will allow device disconnect/reconnect if a non-zero valueis used. An example usage is as follows:
.IP
aha152x=0x340,11,7,1
.LP
you want to specify a parity setting, then you will have to specify aniobase, irq, scsi-id and reconnect value as well.
.SS «Adaptec aha154x configuration"
while the aha1540 series cards do not. These are busmastering cards,and have parameters to set the ``fairness'' that is used to sharethe bus with other devices. The boot arg looks like the following..IP
.BI aha1542= iobase[,buson,busoff[,dmaspeed]]
.LP
0x330, 0x334. Clone cards may permit other values.
.IR buson «, « busoff
values refer to the number of microseconds that thecard dominates the ISA bus. The defaults are 11us on, and 4us off, sothat other cards (such as an ISA LANCE Ethernet card) have a chance toget access to the ISA bus.
.I dmaspeed
value refers to the rate (in MB/s) at which the DMA(Direct Memory Access) transfers proceed. The default is 5MB/s.
soft-configuration, older cards use jumpers. You can use values up to10MB/s assuming that your motherboard is capable of handling it.
.SS «Adaptec aha274x, aha284x, aic7xxx configuration"
.IP
.BI aic7xxx= extended,no_reset
.LP
.I extended
value, if non-zero, indicates that extended translation for largedisks is enabled. The
.I no_reset
value, if non-zero, tells the driver not to reset the SCSI bus whensetting up the host adaptor at boot.
.SS «BusLogic SCSI Hosts configuration (`buslogic=')"
the I/O base. It expects that to be one of the following valid values:0x130, 0x134, 0x230, 0x234, 0x330, 0x334.
.SS «Future Domain TMC-8xx, TMC-950 configuration"
you will then have to use a boot arg of the form:.IP
.BI tmc8xx= mem_base,irq
.LP
.I mem_base
value is the value of the memory mapped I/O region thatthe card uses. This will usually be one of the following values:0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
.SS «Pro Audio Spectrum configuration"
jumperless configuration. The boot arg is of the form:.IP
.BI pas16= iobase,irq
.LP
will tell the driver to work without using interrupts, albeit at aperformance loss. The iobase is usually 0x388.
.SS «Seagate ST-0x configuration"
you will then have to use a boot arg of the form:.IP
.BI st0x= mem_base,irq
.LP
.I mem_base
value is the value of the memory mapped I/O region thatthe card uses. This will usually be one of the following values:0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
.SS «Trantor T128 configuration"
following options:
.IP
.BI t128= mem_base,irq
.LP
.I mem_base
are as follows: 0xcc000, 0xc8000, 0xdc000, 0xd8000.
.SS «Cards that don't Accept Boot Args"
parameters. In some cases, you can hard-wire values by directlyediting the driver itself, if required.
16xx, NCR5380 (generic), NCR53c7xx to NCR53c8xx, Qlogic, Ultrastor(incl. u?4f), Western Digital wd7000.
.SH «HARD DISKS"
.SS «IDE Disk/CD-ROM Driver Parameters"
geometry specifications, to support for broken controller chips. Drivespecific options are specified by using `hdX=' with X in `a'-`h'.
that using a drive specific prefix for a non-drive specific optionwill still work, and the option will just be applied as expected.
drive in the (a, ..., h) sequence. For the following discussions,the `hd=' option will be cited for brevity. See the file
.SS «The `hd=cyls,heads,sects[,wpcom[,irq]]' options"
values will be those used by fdisk. The write precompensation valueis ignored for IDE disks. The IRQ value specified will be the IRQused for the interface that the drive resides on, and is not really adrive specific parameter.
.SS «The `hd=serialize' option"
when drives on the secondary interface are used at the same time asdrives on the primary interface, it will corrupt your data. Using thisoption tells the driver to make sure that both interfaces are neverused at the same time.
.SS «The `hd=dtc2278' option"
second interface and to enable faster transfer modes.
.SS «The `hd=noprobe' option"
.IP
hdb=noprobe hdb=1166,7,17
.LP
would disable the probe, but still specify the drive geometry sothat it would be registered as a valid block device, and henceuseable.
.SS «The `hd=nowerr' option"
.SS «The `hd=cdrom' option"
attached in place of a normal IDE hard disk. In most cases the CD-ROMis identified automatically, but if it isn't then this may help.
.SS «Standard ST-506 Disk Driver Options (`hd=')"
similar to the IDE driver. Note however that it only expects threevalues (C/H/S) -- any more or any less and it will silently ignoreyou. Also, it only accepts `hd=' as an argument, i.e. `hda='and so on are not valid here. The format is as follows:.IP
hd=cyls,heads,sects
.LP
geometry parameters of the second disk.
.SS «XT Disk Driver Options (`xd=')"
that move data at a whopping 125kB/s then here is the scoop.
.IP
xd=type,irq,iobase,dma_chan
.LP
are as follows: 0=generic; 1=DTC; 2,3,4=Western Digital,5,6,7=Seagate; 8=OMTI. The only difference between multiple types fromthe same manufacturer is the BIOS string used for detection, which isnot used if the type is specified.
that you entered all four values. Don't disappoint it. Here is anexample usage for a WD1002 controller with the BIOS disabled/removed,using the `default' XT controller parameters:.IP
xd=2,5,0x320,3
.LP
.SH «CD-ROMs (Non-SCSI/ATAPI/IDE)"
.SS «The Aztech Interface"
.IP
aztcd=iobase[,magic_number]
.LP
anyway in the event of an unknown firmware version. All other valuesare ignored.
.SS «The CDU-31A and CDU-33A Sony Interface"
cards, and other Sony supplied interface cards. The syntax is asfollows:
.IP
cdu31a=iobase,[irq[,is_pas_card]]
.LP
interrupts aren't supported (as on some PAS cards). If your cardsupports interrupts, you should use them as it cuts down on the CPUusage of the driver.
.I is_pas_card
should be entered as `PAS' if using a Pro Audio Spectrum card,and otherwise it should not be specified at all.
.SS «The CDU-535 Sony Interface"
.IP
sonycd535=iobase[,irq]
.LP
to specify an IRQ value.
.SS «The GoldStar Interface"
.IP
gscd=iobase
.LP
.SS «The Mitsumi Standard Interface"
.IP
mcd=iobase,[irq[,wait_value]]
.LP
.I wait_value
is used as an internal timeout value for people who arehaving problems with their drive, and may or may not be implementeddepending on a compile time #define.
.SS «The Mitsumi XA/MultiSession Interface (`mcdx=')"
parameters are implemented yet (as of 1.3.15). This is for the samehardware as above, but the driver has extended features.
.SS «The Optics Storage Interface"
.IP
optcd=iobase
.LP
.SS «The Phillips CM206 Interface"
.IP
cm206=[iobase][,irq]
.LP
numbers between 0x300 and 0x370 are I/O ports, so you can specify one,or both numbers, in any order. It also accepts `cm206=auto' to enableautoprobing.
.SS «The Sanyo Interface"
.IP
sjcd=iobase[,irq[,dma_channel]]
.LP
.SS «The SoundBlaster Pro Interface"
.IP
sbpcd=iobase,type
.LP
where type is one of the following (case sensitive) strings:`SoundBlaster', `LaserMate', or `SPEA'. The I/O base is that of the
.SH «Ethernet Devices"
least share having an IRQ, an I/O port base value, and a name. In itsmost generic form, it looks something like this:.IP
ether=irq,iobase[,param_1[,param_2,...param_8]],name.LP
values (if applicable) usually have different meanings for eachdifferent card/driver. Typical param_n values are used to specifythings like shared memory address, interface selection, DMA channeland the like.
ethercard, as the default is to only probe for one. This can beaccomplished with a simple:
.IP
ether=0,0,eth1
.LP
example tell the driver(s) to autoprobe.
cards and on the card/driver specific implementationof the param_n values where used. Interested readers should refer tothe section in that document on their particular card.
.SH «The Floppy Disk Driver"
from that file.
.SS «floppy=mask,allowed_drive_mask"
and 1 of each floppy controller are allowed. This is done becausecertain non-standard hardware (ASUS PCI motherboards) mess up thekeyboard when accessing units 2 or 3. This option is somewhatobsoleted by the cmos option.
.SS «floppy=all_drives"
more than two drives connected to a floppy controller.
.SS «floppy=asus_pci"
.SS «floppy=daring"
controller. This allows more efficient and smoother operation, butmay fail on certain controllers. This may speed up certain operations.
.SS «floppy=0,daring"
with caution.
.SS «floppy=one_fdc"
.SS «floppy=two_fdc or floppy=address,two_fdc"
second floppy controller is assumed to be at address. If address isnot given, 0x370 is assumed.
.SS «floppy=thinkpad"
inverted convention for the disk change line.
.SS «floppy=0,thinkpad"
.SS «floppy=drive,type,cmos"
allowed in the bitmask. This is useful if you have more than twofloppy drives (only two can be described in the physical cmos), or ifyour BIOS uses non-standard CMOS types. Setting the CMOS to 0 for thefirst two drives (default) makes the floppy driver read the physicalcmos for those drives.
.SS «floppy=unexpected_interrupts"
(default behaviour)
.SS «floppy=no_unexpected_interrupts or floppy=L40SX"
is needed on IBM L40SX laptops in certain video modes. (There seems tobe an interaction between video and floppy. The unexpected interruptsonly affect performance, and can safely be ignored.)
.SH «The Sound Driver"
values. This is not recommended, as it is rather complex. It isdescribed in the Readme.Linux file, in linux/drivers/sound. It acceptsa boot arg of the form:
.IP
sound=device1[,device2[,device3...[,device11]]]
.LP
where each deviceN value is of the following format 0xTaaaId and thebytes are used as follows:
7=SB16-MPU401
aaa - I/O address in hex.
d - DMA channel.
in your own personal values as recommended. Using a boot arg of`sound=0' will disable the sound driver entirely.
.SH «The Bus Mouse Driver (`bmouse=')"
hardware IRQ value to be used.
.SH AUTHORS
.SH «SEE ALSO"
klogd(8), lilo.conf(5), lilo(8), mount(8), rdev(8)
(version 1.0.1) written by Paul Gortmaker. Slightly more