Linux Command Line Parameters

In this article Jeff looks at a useful and perhaps little known feature of Linux—the ability to pass command line parameters to the kernel during system startup.

Device-Driver-Specific Parameters

The next group of options are specific to individual kernel
device drivers. I won't describe each of them in detail, because
some of them are rather specialized and are documented
elsewhere.

ether=a,b,c,d,e

This option is for setting up Ethernet interfaces. It allows
setting parameters such as the interrupt request number and base
address. The meaning of the parameters varies somewhat depending on
the type of interface card. The Ethernet HOWTO document describes
these in detail.

max_scsi_luns=number

This option sets the highest Logical Unit Number to be used for
SCSI devices. Valid values are 1 through S. This may be needed if
autoprobing of the SCSI bus causes problems on your system.

hd=cylinders, heads, sectors

This option sets the hard disk geometry for SCSI or IDE disks.
Normally Linux obtains these from the BIOS; the command line option
can be used to override those if they are not correct.

st=buffer size,write_threshold,tape_buffers

This option is for setting SCSI tape driver parameters. The file
drivers/scsi/README.st describes these in
detail.

bmouse=irq

This option sets the interrupt request line to be used for the bus
mouse driver.

These are all options for setting up the various SCSI host adaptors
supported by the Linux kernel. See the SCSI HOWTO for more
information.

xd=type, irq,i/o base_address,dma_channel

This option sets the XT hard disk driver parameters. See the
comments in the file drivers/block/xd.c for more
information.

mcd=port, irq, workaround_bug

This sets up the Mitsumi CD-ROM interface. The first two parameters
are the base I/O address for the controller and the interrupt
request. The third option sets a delay value used to work around
problems with some Mitsumi drives.

sound=parml, parm2,...

These options set up the sound driver. The parameter encoding is
explained in the file
drivers/sound/Readme.linux.

sbpcd=address, type

e.g., stpod=Ox230,SoundBlaster

This command sets the parameters for the
SoundBlaster/Panasonic CD-ROM driver. See the file
drivers/block/README.stpod for details.

Parameters to init

Any other options are passed on to init in its argv array and
as environment variables. For example, LILO passes the argument
“auto” if the system was booted without a manually entered command
line. The command “single” will instruct init to boot up Linux in
single-user mode.

Here is how to see what options were passed to
init:

% ps -awww | grep init
1 con S 0:03 init auto

The proc filesystem also lets you look at the environment
passed to init, which always has process ID
number 1:

% cat /proc/l/environ | tr t'\O'' "\n"
HOME=/
TERM=conl32x30

Final Comments

A colleague suggested a kernel option that is missing:
“help”. While this is not implemented yet, hopefully this article
has convinced you that there are many other useful options worth
exploring.

(Jeff.Tranter@Software.Mitel.com)
is a software designer for a telecommunications
company in Ottawa, Canada. He has been using Linux for more than two
years and is the author of the Linux Sound and CD-ROMs, and several Linux utilities.

Trending Topics

Webinar: 8 Signs You’re Beyond Cron

Scheduling Crontabs With an Enterprise Scheduler
11am CDT, April 29th

Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.