---
name: "discover"
section: "8"
platform: "linux"
package: "discover1"
version: "1.7.19"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/discover/8"
---

# discover(8)

hardware detection utility

## NAME

discover - hardware detection utility

## SYNOPSIS

**discover** \[*options*\] \[*devices*\]

## DESCRIPTION

**discover** is a command-line hardware detection utility.

## OPTIONS

In each of the following options, BUSES is a comma-separated list of bus types to probe, and DEVICES is a blank-separated list of device types. The following bus types are current recognized: pci, isa, pcmcia, usb, ide, scsi, parallel, and serial.  The following device types are currently recognized: bridge, cdrom, disk, ide, scsi, usb, ethernet, modem, sound, and video.  The word ‘all’ may be given as a device type to specify each of the possible devices.

- **-f FORMAT**, **--format=FORMAT**

  Print results in the specified format.  The format string FORMAT is parsed in the style of a [**printf**(3)](/printf/3.md) format string, with %V expanding to the vendor name, %M expanding to the model name, %m expanding to the module name, %d expanding to the device file path, %S expanding to the name of the X server, %D expanding to the name of the X driver (for the XFree86 4.x X server), and %i expanding to the device ID. This option is useful for those who want to process the output of **discover**, since only one of the vendor, model, module, device, xserver and xdriver options can be specified.  Do not forget that a ‘\\n’ must be specified at the end of the format string if a trailing newline is desired.

- **--enable=BUSES**

  Enable detection of devices on the bus types BUSES.

- **--enable-all**

  Enable detection of devices on all supported bus types.

- **--disable=BUSES**

  Disable detection of devices on the bus types BUSES.

- **--disable-all**

  Disable detection of devices on all supported bus types.

- **--vendor**

  Print the vendor name(s) of the devices (e.g., ‘3Com Corporation’).

- **--model**

  Print the model name(s) of the devices (e.g., ‘3c905C-TX \[Fast Etherlink\]’).

- **--device**

  Print the device path(s) of the devices (e.g., ‘/dev/hdc’).

- **--module**

  Print the module name(s) of the devices (e.g., ‘3c59x’).

- **--xserver**

  Print the X server name(s) of the devices (e.g., ‘XFree86’).

- **--xdriver**

  Print the X driver name(s) of the devices (e.g., ‘ati’).

- **-h**, **--help**

  Show summary of options.

- **-v**, **--version**

  Show version of program.

## HOW TO ADD NEW INFORMATION TO THE HARDWARE DATABASE

In version 1.x of **discover**, there is no supported mechanism for the individual site administrator to add data about hardware that **discover** does not already recognize.  The unsupported method is to edit the *.lst* files in */usr/share/discover*, however this approach has obvious limitations as */usr* may be a read-only mounted filesystem, and any upgrade of the **discover-data** package will overwrite the hardware list files unless special steps are taken by the administrator.

It is, however, possible to report information to the authors for inclusion in a subsequent release of the **discover-data** package.  The Debian utilities [**bug**(1)](/bug/1.md) and [**reportbug**(1)](/reportbug/1.md) are the best ways to make such a report.  By far the most common requests are for unrecognized PCI and AGP devices.  For such devices, please include the following information in your report:

- PCI vendor ID

  This information can be retrieved via the [**lspci**(8)](/lspci/8.md) utility.  Take note of **lspci**'s **-n** flag, which reports the numerical value.  Both the numeric ID and the string (if available) are required.

- PCI model ID

  As PCI vendor ID, above.

- PCI device class

  As PCI vendor ID, above.

- name of corresponding kernel 2.4.26 module, if any

  This is the name of the kernel module you would load with, e.g., [**modprobe**(8)](/modprobe/8.md) to support the device.  If the device is a VGA-compatible display controller (PCI class 0300), report the XFree86 server information instead (see below).

- name of X server binary, if any

  If the device is a VGA-compatible display controller (PCI class 0300), report the name of the XFree86 server used with it.  In most cases, this is the **XFree86**(1) X server, but it could be one of the version 3.x X servers such as **XF86\_SVGA**(1) or **XF86\_S3**(1).

- name of X server driver module, if any

  If the device is a VGA-compatible display controller (PCI class 0300), and the X server is **XFree86**(1), report the name of the video driver module used to drive the card, such as *ati* or *nv.*

Finally, include any notes or remarks you have about the hardware.  The full output of ‘/sbin/lspci’ and ‘/sbin/lspci -n’ is always appreciated.

## SEE ALSO

[**discover.conf**(5)](/discover.conf/5.md),[**lspci**(8)](/lspci/8.md).

## AUTHORS

Eric Gillespie, Jeff Licquia, Ian Murdock, and Branden Robinson for Progeny Linux Systems, Inc. and Debian GNU/Linux.

Based on **detect** by MandrakeSoft SA.  Original authors include: Alexandre Dussart, Bernhard Rosenkraenzer, Felipe Rivera Marquez, Jamie Fifield, Philippe Chauvat, Andrew Post, Stefan Siegel, Dan Helfman, Balazs Scheidler, Christophe Romain, Eric Dumas, Michael Vogt, Pablo Saratxaga, and Martin Mares.
