See hwinfo man page for general usage instructions.

This document describes some legacy features and the "hwprobe" environment variable.


1. Legacy
=========

***  Note: please do not do this, this is only kept to assist debugging.  ***

Legacy mode is activated when no option starting with "--" is given. In this case hwinfo
works as follows:

  hwinfo [debug=deb_flag] [log=log_file] [list[+]=hw_item] [[+|-]probe_option1] [[+|-]probe_option2] ...

Examples:

  hwinfo
    - probes for nearly everything

  hwinfo +all
    - probes for everything

  hwinfo log=hw_log
    - default probing, output is written to hw_log
      *** Please don't use "hwinfo >some_log 2>&1" to store the output into a
      log file! ***

  hwinfo -all +pci +int
    - probe for pci devices

Note that "int" should almost always be active.

Some probing flags do not stand for complete modules but enable additional
features; e.g. "bios.vesa" or "block.cdrom".

Example:
  hwinfo -all +block +int
  gives a list of all block devs

  hwinfo -all +block.cdrom +int
  additionally reads the iso9660 info

The list of supported flags varies from version to version. To get a list of
the actual set of probing flags, call "hwinfo -all" and look at the top of
the log.


2. Environment variable/kernel cmdline parameter
================================================

You can control the hardware probing using the environment variable
"hwprobe" and the kernel cmdline parameter "hwprobe".

If "hwprobe" is set on the kernel cmdline, the environment variable
"hwprobe" is ignored. Otherwise, the meaning of both is exactly the same.

  hwprobe
    - Controls which probing flags should *always* be set/cleared. (These
      settings *cannot* be overridden by command line switches.)

      Examples:
        hwprobe=-isapnp
          o *never* do any isapnp probing

        hwprobe=-braille,-modem
          o don't look for braille displays & modems

    - Allows you to add and remove hardware from the probing results. In this case
      the syntax is (-: remove, +: add at end of list, <nothing>: add at begin of
      list):
        hwprobe=[+-]<device_class>:<vendor_id>:<device_id>[:<unix_device_file>]

      <device_class>, <vendor_id> and <device_id> are device ids as used by libhd.
      See the output of hwinfo for examples. In connection with "-", you can use
      "*" as a placeholder that matches every id.

      Note: <unix_device_file> is optional.

      Note2: you cannot usefully *add* hardware that needs more info than that
      given by the hwprobe entry. Disks & floppies are notable examples.
      (But you can *remove* them.)

      Here is a typical hwinfo output for a mouse, with the relevant ids
      underlined (<device_class> is the combined base_class & sub_class),
      [see 1st example below]:

        14: PS/2 00.0: 10500 PS/2 Mouse
                       ^^^^^ -->	<device_class>
          [Created at mouse.110]
          Vendor: s0200 "Unknown"
                  ^^^^^  -->		<vendor_id>
          Model: 0002 "Generic PS/2 Mouse"
                 ^^^^  -->		<device_id>
          Device File: /dev/psaux
                       ^^^^^^^^^^ -->	<unix_device_file>
          Driver Info #0:
            XFree86 Protocol: ps/2
            GPM Protocol: ps2
          Attached to: #8 (PS/2 Controller)


      Examples:
        hwprobe=+10500:s200:2:/dev/psaux
          o add a ps/2 mouse [at the end of the hardware list]

        hwprobe=10500:s200:2:/dev/psaux
          o add a ps/2 mouse [at the start of the hardware list, so it
            is our default mouse]

        hwprobe=+10b00:s5001:0:/dev/ttyS0
          o add a braille display connected to /dev/ttyS0

        hwprobe=-10500:s200:2:/dev/psaux
          o remove ps/2 mice attached to /dev/psaux

        hwprobe=-10500:s200:2
          o remove all ps/2 mice

        hwprobe=-10500:*:*
          o remove all ps/2 mice

        hwprobe=-*:*:*:/dev/hdc
          o remove /dev/hdc

        hwprobe=+401:1274:5000
          o add an ensoniq sound card

      Grafics cards are are slightly trickier:

        hwprobe=+300:1014:b7
          o add a Fire GL1 card
            Note: this way you'll get a multihead config. You'll probably
            rather want the following example.

        hwprobe=-300:*:*,+300:1014:b7
          o remove all graphics cards; then add a Fire GL1 card

        hwprobe=+400:121a:1
          o add a 3fx voodoo card (Note the class "400", not "300"!)

    - for more ids, see "src/ids/names.*" and "src/ids/drivers.*"

