The Linux BootPrompt−HowTo
The Linux BootPrompt−HowTo Table of Contents The Linux BootPrompt−HowTo........................................................................................................................1 by Paul Gortmaker...................................................................................................................................1 1. Introduction..........................................................................................................................................1 2.
The Linux BootPrompt−HowTo Table of Contents The Linux BootPrompt−HowTo 3.4 Other Misc. Kernel Boot Arguments...............................................................................................12 The `acpi=' Argument......................................................................................................................12 The `console=' Argument................................................................................................................12 The `debug' Argument.....
The Linux BootPrompt−HowTo Table of Contents The Linux BootPrompt−HowTo 4.7 The `pci=nopeer' Argument.............................................................................................................19 4.8 The `pci=nosort' Argument..............................................................................................................19 4.9 The `pci=off' Argument...................................................................................................................19 4.
The Linux BootPrompt−HowTo by Paul Gortmaker. v1.4, Mar 21, 2003 This is the BootPrompt−Howto, which is a compilation of all the possible boot time arguments that can be passed to the Linux kernel at boot time. A discussion of how the kernel sorts boot time arguments, along with an overview of some of the popular software used to boot Linux kernels is also included. 1. Introduction • 1.1 Intended Audience and Applicability • 1.2 Related Documentation • 1.3 New Versions of this Document 2.
The Linux BootPrompt−HowTo 5. Boot Arguments for Video Frame Buffer Drivers • 5.1 The `video=map:...' Argument • 5.2 The `video=scrollback:...' Argument • 5.3 The `video=vc:...' Argument 6. Boot Arguments for SCSI Peripherals. • 6.1 Arguments for Upper and Mid−level Drivers • 6.2 Arguments for SCSI Host Adapter Drivers 7. Hard Disks • 7.1 IDE Disk/CD−ROM Driver Parameters • 7.2 Old MFM/RLL/Standard ST−506 Disk Driver Options (`hd=') • 7.3 XT Disk Driver Options (`xd=', `xd_geo=') 8.
The Linux BootPrompt−HowTo 1. Introduction The kernel has the capability to accept information at boot in the form of a `command line', similar to an argument list you would give to a program. In general this is used to supply the kernel with information about hardware parameters that the kernel would not be able to determine on its own, or to avoid/override the values that the kernel would otherwise detect. It is the job of the boot loader (e.g.
The Linux BootPrompt−HowTo 1.2 Related Documentation For a while now, the kernel source has come with the file linux/Documentation/kernel−parameters.txt. This file contains a brief listing of all the boot time arguments that you can provide, along with quick pointers to where in the source you can find where the arguments are parsed. The idea is that this file gives developers a quick and easy place to add in a brief description of any new arguments that they add while working on the source.
The Linux BootPrompt−HowTo It is important to note that spaces should not be used in a boot argument, but only between separate arguments. A list of values that are for a single argument are to be separated with a comma between the values, and again without any spaces. See the following examples below.
The Linux BootPrompt−HowTo 2.3 The ``rdev'' utility There are a few of the kernel boot parameters that have their default values stored in various bytes in the kernel image itself. There is a utility called rdev that is installed on most systems that knows where these values are, and how to change them. It can also change things that have no kernel boot argument equivalent, such as the default video mode used. The rdev utility is usually also aliased to swapdev, ramsize, vidmode and rootflags.
The Linux BootPrompt−HowTo 2.6 Passing Arguments to the `init' program Any remaining arguments that were not picked up by the kernel and were not interpreted as environment variables are then passed onto process one, which is usually the init program. The most common argument that is passed to the init process is the word single which instructs init to boot the computer in single user mode, and not launch all the usual daemons.
The Linux BootPrompt−HowTo The `rootflags=' Argument This option allows you to give options pertaining to the mounting of the root filesystem just as you would to the mount program. An example could be giving the noatime option to an ext2 fs. The `rootfstype=' Argument This option allows you to give a comma separated list of fs types that will be tried for a match when trying to mount the root filesystem.
The Linux BootPrompt−HowTo The `ramdisk_start=' Argument To allow a kernel image to reside on a floppy disk along with a compressed ramdisk image, the `ramdisk_start=' command was added. The kernel can't be included into the compressed ramdisk filesystem image, because it needs to be stored starting at block zero so that the BIOS can load the bootsector and then the kernel can bootstrap itself to get going.
The Linux BootPrompt−HowTo The `ramdisk_blocksize=' Argument This can be tuned for better memory management behaviour. Quoting from the ramdisk driver rd.c: It would be very desirable to have a soft−blocksize (that in the case of the ramdisk driver is also the hardblocksize ;) of PAGE_SIZE because doing that we'll achieve a far better MM footprint. Using a rd_blocksize of BLOCK_SIZE in the worst case we'll make PAGE_SIZE/BLOCK_SIZE buffer−pages unfreeable.
The Linux BootPrompt−HowTo The `mem=' Argument This argument has several purposes: The original purpose was to specify the amount of installed memory (or a value less than that if you wanted to limit the amount of memory available to linux). The next (and hardly used) purpose is to specify mem=nopentium which tells the Linux kernel to not use the 4MB page table performance feature. If you want to use it for both purposes, use a separate mem= for each one.
The Linux BootPrompt−HowTo PAGE_INITIAL_AGE AGE_CLUSTER_FRACT AGE_CLUSTER_MIN PAGEOUT_WEIGHT BUFFEROUT_WEIGHT Interested hackers are advised to have a read of linux/mm/swap.c and also make note of the goodies in /proc/sys/vm. Kernels come with some useful documentation on this in the linux/Documentation/vm/ directory. The `buff=' Argument Similar to the `swap=' argument, this allows the user to tune some of the parameters related to buffer memory management.
The Linux BootPrompt−HowTo The threshold for what is and what isn't considered important is set by the console_loglevel variable. The default is to log anything more important than DEBUG (level 7) to the console. (These levels are defined in the include file kernel.h) Specifying debug as a boot argument will set the console loglevel to 10, so that all kernel messages appear on the console. The console loglevel can usually also be set at run time via an option to the klogd() program.
The Linux BootPrompt−HowTo The `isapnp_reserve_io=' Argument This takes the form of: isapnp_reserve_irq=io1,size1,io2,size2,...ioN,sizeN where ioX,sizeX are I/O start and length pairs of regions in I/O space that are not to be used by PnP. The `isapnp_reserve_irq=' Argument This takes the form of: isapnp_reserve_irq=n1,n2,n3,...nN where n1 ... nN are the interrupt numbers to not use for PnP. The `isapnp_reserve_mem=' Argument This takes the form of: isapnp_reserve_mem=mem1,size1,mem2,size2,...
The Linux BootPrompt−HowTo specified amount. The fault_level is only for raid−1 and sets the maximum fault number to the specified number. (Currently unsupported due to lack of boot support for raid1.) The dev0−devN are a comma separated list of the devices that make up the individual md device: e.g. /dev/hda1,/dev/hdc1,/dev/sda1 See also raid=. The `nmi_watchdog=' Argument Supplying a non−zero integer will enable the non maskable interrupt watchdog (assuming IO APIC support is compiled in).
The Linux BootPrompt−HowTo The `noisapnp' Argument If ISA PnP is built into the kernel, this will disable it. The `nomce' Argument Some newer processors have the ability to self−monitor and detect inconsistencies that should not regularly happen. If an inconsistency is detected, a Machine Check Exception will take place and the system will be halted (rather than plundering forward and corrupting your data).
The Linux BootPrompt−HowTo The `profile=' Argument Kernel developers can profile how and where the kernel is spending its CPU cycles in an effort to maximize efficiency and performance. This option lets you set the profile shift count at boot. Typically it is set to two. You need a tool such as readprofile.c that can make use of the /proc/profile output. The `quiet' Argument This is pretty much the opposite of the `debug' argument.
The Linux BootPrompt−HowTo often be used with some other boot argument. Hence if you specify a reserve region to protect a specific device, you must generally specify an explicit probe for that device. Most drivers ignore the port registration table if they are given an explicit address. For example, the boot line reserve=0x300,32 blah=0x300 keeps all device drivers except the driver for `blah' from probing 0x300−0x31f.
The Linux BootPrompt−HowTo default is to use the BIOS. 4.3 The `pci=conf1' and `pci=conf2' Arguments If PCI direct mode is enabled, the use of these enables either configuration Type 1 or Type 2. These implicitly clear the PCI BIOS probe flag (i.e. `pci=nobios') too. 4.4 The `pci=irqmask=' Argument This allows the user to supply an IRQ mask value, which is converted using strtol(). It will set a bit mask of IRQs allowed to be assigned automatically to PCI devices.
The Linux BootPrompt−HowTo 4.11 The `pci=rom' Argument This sets the ASSIGN_ROM flag during the probing phase. The kernel will assign address space to expansion ROMs. Use with caution as certain devices share address decoders between ROMs and other resources. 5. Boot Arguments for Video Frame Buffer Drivers The `video=' argument (not avail. in v2.0 kernels) is used when the frame buffer device abstraction layer is built into the kernel. If that sounds complicated, well it isn't really too bad.
The Linux BootPrompt−HowTo 5.3 The `video=vc:...' Argument A number, or a range of numbers (e.g. video=vc:2−5) will specify the first, or the first and last frame buffer virtual console(s). The use of this option also has the effect of setting the frame buffer console to not be the default console. 6. Boot Arguments for SCSI Peripherals. This section contains the descriptions of the boot args that are used for passing information about the installed SCSI host adapters, and SCSI devices. 6.
The Linux BootPrompt−HowTo The first two numbers are specified in units of kB. The default buf_size is 32kB, and the maximum size that can be specified is a ridiculous 16384kB. The write_threshold is the value at which the buffer is committed to tape, with a default value of 30kB. The maximum number of buffers varies with the number of drives detected, and has a default of two. An example usage would be: st=32,30,2 Full details can be found in the README.
The Linux BootPrompt−HowTo wd7000= Western Digital WD7000 cards 7. Hard Disks This section lists all the boot args associated with standard MFM/RLL, ST−506, XT, and IDE disk drive devices. Note that both the IDE and the generic ST−506 HD driver both accept the `hd=' option. 7.1 IDE Disk/CD−ROM Driver Parameters The IDE driver accepts a number of parameters, which range from disk geometry specifications, to support for advanced or broken controller chips.
The Linux BootPrompt−HowTo "ide0=umc8672" : probe/support umc8672 chipsets During the install of some PCMCIA systems, you may be able to get detection of your CD−ROM by using: "ide2=0x180,0x386" : probe typical PCMCIA IDE interface location Everything else is rejected with a "BAD OPTION" message. Also note that there is an implied ide0=0x1f0 ide1=0x170 in the absence of any other ide boot args. 7.
The Linux BootPrompt−HowTo 8. The Sound Drivers Note that there was a rewrite of a lot of the sound core and related drivers. The older stuff is generally called `OSS' and the newer is called `ALSA'. The intention is to drop the OSS stuff eventually. To avoid name conflict, the ALSA stuff generally has `snd−' as a prefix to all the boot parameters. Note that each driver has its own individual boot argument (very old kernels used a shared sound=). Also, generally no defaults are set at compile time (i.e.
The Linux BootPrompt−HowTo snd−gusextreme= Gus extreme snd−gusmax= Gus Max snd−interwave= Interwave snd−interwave−stb= Interwave snd−opl3sa2= Yamaha OPL3SA2 snd−opti93x= OPTi 82c93x based cards snd−opti92x−cs4231= OPTi 82c92x/CS4231 snd−opti92x−ad1848= OPTi 82c92x/AD1848 snd−es968= ESS AudioDrive ES968 snd−sb16= SoundBlaster 16 snd−sbawe= SoundBlaster 16 AWE snd−sb8= Old 8 bit SoundBlaster (1.0, 2.
The Linux BootPrompt−HowTo ALSA PCI Drivers snd−ali5451= ALi PCI audio M5451 snd−als4000= Avance Logic ALS4000 snd−cmipci= C−Media CMI8338 and 8738 snd−cs4281= Cirrus Logic CS4281 snd−cs46xx= Cirrus Logic Sound Fusion CS46XX snd−emu10k1= EMU10K1 (SB Live!) snd−ens1370= Ensoniq ES1370 AudioPCI snd−ens1371= Ensoniq ES1371 AudioPCI snd−es1938= ESS Solo−1 (ES1938, ES1946, ES1969) snd−es1968= ESS Maestro 1/2/2E snd−fm801= ForteMedia FM801 snd−intel8x0= Intel ICH (i8x0) chipsets snd−maestro3= ESS Maestro3/Allegr
The Linux BootPrompt−HowTo 9. CD−ROMs (Non−SCSI/ATAPI/IDE) This section lists all the possible boot args pertaining to these older CD−ROM devices on proprietary interface cards. Note that this does not include SCSI or IDE/ATAPI CD−ROMs. See the appropriate section(s) for those types of CD−ROMs. Note that most of these CD−ROMs have documentation files that you should read, and they are all in one handy place: linux/Documentation/cdrom. 9.
The Linux BootPrompt−HowTo 10.2 The Serial drivers Please see linux/Documentation/ and/or the README files in linux/drivers/char for the full details of all the options that the following support. digi= DigiBoard Driver riscom8= RISCom/8 Multiport Serial Driver baycom= Baycom Serial/Parallel Radio Modem 11. Other Hardware Devices Any other devices that didn't fit into any of the above categories got lumped together here. 11.
The Linux BootPrompt−HowTo floppy=0,daring Tells the floppy driver that your floppy controller should be used with caution (disables all daring operations). floppy=thinkpad Tells the floppy driver that you have a Thinkpad. Thinkpads use an inverted convention for the disk change line. floppy=nodma Tells the floppy driver not to use DMA for data transfers. This is needed on HP Omnibooks, which don't have a workable DMA channel for the floppy driver.
The Linux BootPrompt−HowTo to use. (Using N=0 will disable the plip driver.) 12. Copying, Translations, Closing, etc. Hey, you made it to the end! (Phew...) Now just the legal stuff. 12.1 Copyright and Disclaimer This document is Copyright (c) 1995−1999 by Paul Gortmaker.