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.


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.


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/ describes these in detail.


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"
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.

( 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.