---
name: "devmatch"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/devmatch"
---

# devmatch(8)

print information about unattached devices

## NAME

**devmatch** – print information about unattached devices

## SYNOPSIS

**devmatch** \[**-a** \| **--all**\] \[**-d** \| **--dump**\] \[\[**-h** \| **--hints**\] *file*\] \[\[**-p** \| **--nomatch**\] *event*\] \[**-q** \| **--quiet**\] \[**-u** \| **--unbound**\] \[**-v** \| **--verbose**\]

## DESCRIPTION

The **devmatch** utility, without any arguments, prints all the kernel modules it has found for all the unattached, enabled devices in the system.

- **-a** **--all**

  Include all devices, not just the ones that are unattached.

- **-d** **--dump**

  Produce a human readable dump of the *linker.hints* file.

- **-h** **--hints** *file*

  Use the named *file* instead of *linker.hints* guessed from the current module load path.

- **-p** **--nomatch** *event*

  Parse and use a standard NOMATCH event from [devd(8)](/devd/8.md) for matching instead of searching the device tree.

- **-q** **--quiet**

  Suppress some error messages and simply return a non-zero exit code. This is helpful to avoid an endless list of warnings during bootup if no hints are available.

- **-u** **--unbound**

  Attempt to produce a list of those drivers with PNP info whose driver tables with that PNP info cannot be found.

- **-v** **--verbose**

  Produce more verbose output.

## SEE ALSO

[rc.conf(5)](/rc.conf/5.md), [devinfo(8)](/devinfo/8.md), [MODULE\_PNP\_INFO(9)](/MODULE_PNP_INFO/9.md)

## HISTORY

**devmatch** first appeared in FreeBSD 12.0.

## AUTHORS

Warner Losh ⟨*imp@FreeBSD.org*⟩

## BUGS

The kernel has hints in it, but we exclude it from the list of modules to suggest for unmatched devices. We exclude it when suggesting drivers, but include it when looking for unbound devices or producing a full dump of *linker.hints*. This can be confusing.

Some modules are hard links in */boot/kernel* and will be reported twice.

The PNP string's attributes are evaluated once per PNP entry on that bus rather than once.

The term PNP is overloaded in FreeBSD. It means, generically, the identifying data the bus provides about a device. While this includes old ISA PNP identifiers, it also includes the logical equivalent in USB, PCI, and others.

Many drivers currently lack proper PNP table decorations and need to be updated.
