Next Previous Contents

10. Other Hardware Devices

Any other devices that didn't fit into any of the above categories got lumped together here.

10.1 Ethernet Devices (`ether=')

Different drivers make use of different parameters, but they all at least share having an IRQ, an I/O port base value, and a name. In its most generic form, it looks something like this:


        ether=irq,iobase[,param_1[,param_2,...param_8]]],name

The first non-numeric argument is taken as the name. The param_n values (if applicable) usually have different meanings for each different card/driver. Typical param_n values are used to specify things like shared memory address, interface selection, DMA channel and the like.

The most common use of this parameter is to force probing for a second ethercard, as the default is to only probe for one. This can be accomplished with a simple:


        ether=0,0,eth1

Note that the values of zero for the IRQ and I/O base in the above example tell the driver(s) to autoprobe.

IMPORTANT NOTE TO MODULE USERS: The above will not force a probe for a second card if you are using the driver(s) as run time loadable modules (instead of having them complied into the kernel). Most Linux distributions use a bare bones kernel combined with a large selection of modular drivers. The ether= only applies to drivers compiled directly into the kernel.

The Ethernet-HowTo has complete and extensive documentation on using multiple cards and on the card/driver specific implementation of the param_n values where used. Interested readers should refer to the section in that document on their particular card for more complete information. Ethernet-HowTo

10.2 The Floppy Disk Driver (`floppy=')

There are many floppy driver options, and they are all listed in README.fd in linux/drivers/block. There are too many options in that file to list here. Instead, only those options that may be required to get a Linux install to proceed on less than normal hardware are reprinted here.

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. This option is also useful if you frequently get "Unable to allocate DMA memory" messages. Use of `nodma' is not recommended if you have a FDC without a FIFO (8272A or 82072). 82072A and later are OK). The FDC model is reported at boot. You also need at least a 486 to use nodma.

floppy=nofifo Disables the FIFO entirely. This is needed if you get `Bus master arbitration error' messages from your Ethernet card (or from other devices) while accessing the floppy.

floppy=broken_dcl Don't use the disk change line, but assume that the disk was changed whenever the device node is reopened. Needed on some boxes where the disk change line is broken or unsupported. This should be regarded as a stopgap measure, indeed it makes floppy operation less efficient due to unneeded cache flushings, and slightly more unreliable. Please verify your cable connection and jumper settings if you have any DCL problems. However, some older drives, and also some Laptops are known not to have a DCL.

floppy=debug Print (additional) debugging messages.

floppy=messages Print informational messages for some operations (disk change notifications, warnings about over and underruns, and about autodetection).

10.3 The Sound Driver (`sound=')

The sound driver can also accept boot args to override the compiled in values. This is not recommended, as it is rather complex and the documentation for it in the kernel mysteriously vanished (a hint). You are better off to use sound as a module, or compile in your own values.

If you choose to use it regardless, then processing of the argument takes place in the file dev_table.c in linux/drivers/sound. It accepts a boot arg of the form:


        sound=device1[,device2[,device3...[,device11]]]

where each deviceN value is of the following format 0xDTaaaId and the bytes are used as follows:

D - second DMA channel (zero if not applicable)

T - device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MIDI,... The listing of soundcard types up to 26 (don't forget to convert back to hex for command line use) are listed in the file linux/include/linux/soundcard.h and 27 to 999 (newer models) can be found in the file linux/drivers/sound/dev_table.h.

aaa - I/O address in hex.

I - interrupt line in hex (i.e 10=a, 11=b, ...)

d - First DMA channel.

As you can see it gets pretty messy, and you really are better off to use a modular driver or compile in your own personal values as recommended. Using a boot arg of `sound=0' will disable the sound driver entirely.

10.4 The Bus Mouse Driver (`bmouse=')

The busmouse driver only accepts one parameter, that being the hardware IRQ value to be used.

10.5 The MS Bus Mouse Driver (`msmouse=')

The MS mouse driver only accepts one parameter, that being the hardware IRQ value to be used.

10.6 The Printer Driver (`lp=')

With this boot argument you can tell the printer driver what ports to use and what ports not to use. The latter comes in handy if you don't want the printer driver to claim all available parallel ports, so that other drivers (e.g. PLIP, PPA) can use them instead.

The format of the argument is multiple i/o, IRQ pairs. For example, lp=0x3bc,0,0x378,7 would use the port at 0x3bc in IRQ-less (polling) mode, and use IRQ 7 for the port at 0x378. The port at 0x278 (if any) would not be probed, since autoprobing only takes place in the absence of a lp= argument. To disable the printer driver entirely, one can use lp=0.


Next Previous Contents