Previous Next Contents

7. Other Hardware Devices

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

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

Note that 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.

7.2 The Floppy Disk Driver (`floppy=')

There are many floppy driver options, and they are all listed in README.fd in linux/drivers/block. This information is taken directly from that file.

floppy=mask,allowed_drive_mask

Sets the bitmask of allowed drives to mask. By default, only units 0 and 1 of each floppy controller are allowed. This is done because certain non-standard hardware (ASUS PCI motherboards) mess up the keyboard when accessing units 2 or 3. This option is somewhat obsoleted by the cmos option.

floppy=all_drives

Sets the bitmask of allowed drives to all drives. Use this if you have more than two drives connected to a floppy controller.

floppy=asus_pci

Sets the bitmask to allow only units 0 and 1. (The default)

floppy=daring

Tells the floppy driver that you have a well behaved floppy controller. This allows more efficient and smoother operation, but may fail on certain controllers. This may speed up certain operations.

floppy=0,daring

Tells the floppy driver that your floppy controller should be used with caution.

floppy=one_fdc

Tells the floppy driver that you have only floppy controller (default)

floppy=two_fdc or floppy=address,two_fdc

Tells the floppy driver that you have two floppy controllers. The second floppy controller is assumed to be at address. If address is not given, 0x370 is assumed.

floppy=thinkpad

Tells the floppy driver that you have a Thinkpad. Thinkpads use an inverted convention for the disk change line.

floppy=0,thinkpad

Tells the floppy driver that you don't have a Thinkpad.

floppy=drive,type,cmos

Sets the cmos type of drive to type. Additionally, this drive is allowed in the bitmask. This is useful if you have more than two floppy drives (only two can be described in the physical cmos), or if your BIOS uses non-standard CMOS types. Setting the CMOS to 0 for the first two drives (default) makes the floppy driver read the physical cmos for those drives.

floppy=unexpected_interrupts

Print a warning message when an unexpected interrupt is received (default behaviour)

floppy=no_unexpected_interrupts or floppy=L40SX

Don't print a message when an unexpected interrupt is received. This is needed on IBM L40SX laptops in certain video modes. (There seems to be an interaction between video and floppy. The unexpected interrupts only affect performance, and can safely be ignored.)

7.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. It is described in the Readme.Linux file, 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 0xTaaaId and the bytes are used as follows:

T - device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401

aaa - I/O address in hex.

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

d - DMA channel.

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

7.4 The Bus Mouse Driver (`bmouse=')

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

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

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

7.6 The Printer Driver (`lp=')

As of kernels newer than 1.3.75, 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.

7.7 The ICN ISDN driver (`icn=')

This ISDN driver expects a boot argument of the form:


        icn=iobase,membase,icn_id1,icn_id2

where iobase is the i/o port address of the card, membase is the shared memory base address of the card, and the two icn_id are unique ASCII string identifiers.

7.8 The PCBIT ISDN driver (`pcbit=')

This boot argument takes integer pair arguments of the form:


        pcbit=membase1,irq1[,membase2,irq2]

where membaseN is the shared memory base of the N'th card, and irqN is the interrupt setting of the N'th card. The default is IRQ 5 and membase 0xD0000.

7.9 The Teles ISDN driver (`teles=')

This ISDN driver expects a boot argument of the form:


        teles=iobase,irq,membase,protocol,teles_id

where iobase is the i/o port address of the card, membase is the shared memory base address of the card, irq is the interrupt channel the card uses, and teles_id is the unique ASCII string identifier.

7.10 The DigiBoard Driver (`digi=')

The DigiBoard driver accepts a string of six comma separated identifiers or integers. The 6 values in order are:

        Enable/Disable this card
        Type of card: PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)
        Enable/Disable alternate pin arrangement
        Number of ports on this card
        I/O Port where card is configured (in HEX if using string identifiers)
        Base of memory window (in HEX if using string identifiers)

An example of a correct boot prompt argument (in both identifier and integer form) is:


        digi=E,PC/Xi,D,16,200,D0000
        digi=1,0,0,16,512,851968

Note that the driver defaults to an i/o of 0x200 and a shared memory base of 0xD0000 in the absence of a digi= boot argument. There is no autoprobing performed. More details can be found in the file linux/Documentation/digiboard.txt.

7.11 The RISCom/8 Multiport Serial Driver (`riscom8=')

Up to four boards can be supported by supplying four unique i/o port values for each individual board installed. Other details can be found in the file linux/Documentation/riscom8.txt.

7.12 The Baycom Serial/Parallel Radio Modem (`baycom=')

The format of the boot argument for these devices is:


        baycom=modem,io,irq,options[,modem,io,irq,options]

Using modem=1 means you have the ser12 device, modem=2 means you have the par96 device. Using options=0 means use hardware DCD, and options=1 means use software DCD. The io and irq are the i/o port base and interrupt settings as usual. There is more details in the file README.baycom which is currently in the /linux/drivers/char/ directory.


Previous Next Contents