The kernel has a limited 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.
However, if you just copy a kernel image directly to a floppy,
(e.g. cp zImage /dev/fd0
) then
you are not given a chance to specify any arguments to that
kernel. So most Linux users will use software like LILO
or loadlin that takes care of handing these arguments
to the kernel, and then booting it.
This present revision covers kernels up to and including v2.4.9.
The BootPrompt-Howto is by:
Paul Gortmaker, p_gortmaker@yahoo.com
This document is Copyright (c) 1995-2001 by Paul Gortmaker. Please see the Disclaimer and Copying information at the end of this document ( copyright) for information about redistribution of this document and the usual `we are not responsible for what you manage to break...' type legal stuff.
Most Linux users should never have to even look at this document. Linux does an exceptionally good job at detecting most hardware and picking reasonable default settings for most parameters. The information in this document is aimed at users who might want to change some of the default settings to optimize the kernel to their particular machine, or to a user who has `rolled their own' kernel to support a not so common piece of hardware for which automatic detection is currently not available (e.g. some old ISA devices).
IMPORTANT NOTE: Driver related boot prompt arguments
only apply to hardware drivers that are compiled directly into the
kernel. They have no effect on drivers that are loaded
as modules. Most Linux distributions come with a basic `bare-bones'
kernel, and the drivers are small modules that are loaded after
the kernel has initialized.
If you are unsure if you are using modules then try lsmod
,
look at man depmod
and man modprobe
along with the
contents of your /etc/modules.conf
.
The most up-to-date documentation will always be the kernel
source itself. Hold on! Don't get scared. You don't need to
know any programming to read the comments in the source files.
For example, if you were looking for what arguments could be
passed to the AHA1542 SCSI driver, then you would go to the
linux/drivers/scsi
directory, and look in the
file aha1542.c
for __setup(... , ...)
. The
first thing in brackets is the argument you provide at boot,
and the second thing is the name of the function that processes your
argument. Usually near the top of this function or at the
top of the source file you will find a description of the boot
time arguments that the driver accepts.
The linux
directory is usually found in /usr/src/
for most distributions. All references in this document
to files that come with the kernel will have their pathname
abbreviated to start with linux
- you will have to add the
/usr/src/
or whatever is appropriate for your system.
(If you can't find the file in question, then make use of
the find
and locate
commands.)
The next best thing will be any documentation files that are
distributed with the kernel itself. There are now quite a
few of these, and most of them can be found in the directory
linux/Documentation
and subdirectories from there.
Sometimes there will be README.foo
files that can be found
in the related driver directory (e.g. linux/drivers/???/
,
where examples of ???
could be scsi
, char
, or net
).
If you have figured out what boot-args you intend to use, and now want to know how to get that information to the kernel, then look at the documentation that comes with the software that you use to boot the kernel (e.g. LILO or loadlin). A brief overview is given below, but it is no substitute for the documentation that comes with the booting software.
If you have questions about passing boot arguments to the kernel, please check this document first. If this and the related documentation mentioned above does not answer your question(s) then you can try the Linux newsgroups. General questions on how to configure your system should be directed to the comp.os.linux.setup newsgroup. We ask that you please respect this general guideline for content, and don't cross-post your request to other groups.
Of course you should try checking the group before blindly
posting your question, as it may even be a Frequently Asked
Question (a FAQ).
A quick browse of the Linux FAQ before posting is a good
idea. You should be able to find the FAQ somewhere close to
where you found this document. If it is not a FAQ then
use newsgroup archives, such as those
at http://www.dejanews.com
to quickly search years
worth of postings for your topic. Chances are someone
else has already asked (and another person answered!) the question
that you now have.
New versions of this document can be retrieved via anonymous
FTP from most Linux FTP sites in the directory
/pub/Linux/docs/HOWTO/
. Updates will be made as new
information and/or drivers becomes available. If this copy that
you are presently reading is more than six months old, then
you should probably check to see if a newer copy exists.
I would recommend viewing this via a WWW browser or in the
Postscript/dvi format. Both of these contain cross-references
that are lost in a simple plain text version.
If you want to get the official copy, here is URL.