1.\" 2.\" Copyright (c) 2017 Netflix, Inc. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR 14.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 15.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 16.\" IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, 17.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 19.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 20.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23.\" 24.\" $FreeBSD$ 25.\" 26.Dd August 13, 2023 27.Dt DEVMATCH 8 28.Os 29.Sh NAME 30.Nm devmatch 31.Nd print information about unattached devices 32.Sh SYNOPSIS 33.Nm 34.Op Fl a | -all 35.Op Fl d | -dump 36.Op Oo Fl h | -hints Oc Ar file 37.Op Oo Fl p | -nomatch Oc Ar event 38.Op Fl q | -quiet 39.Op Fl u | -unbound 40.Op Fl v | -verbose 41.Sh DESCRIPTION 42The 43.Nm 44utility, without any arguments, prints all the kernel modules it has 45found for all the unattached, enabled devices in the system. 46.Bl -tag -width 20m 47.It Fl a Fl -all 48Include all devices, not just the ones that are unattached. 49.It Fl d Fl -dump 50Produce a human readable dump of the 51.Pa linker.hints 52file. 53.It Fl h Fl -hints Ar file 54Use the named 55.Ar file 56instead of 57.Pa linker.hints 58guessed from the current module load path. 59.It Fl p Fl -nomatch Ar event 60Parse and use a standard NOMATCH event from 61.Xr devd 8 62for matching instead of searching the device tree. 63.It Fl q Fl -quiet 64Suppress some error messages and simply return a non-zero exit code. 65This is helpful to avoid an endless list of warnings during bootup if 66no hints are available. 67.It Fl u Fl -unbound 68Attempt to produce a list of those drivers with PNP info whose driver 69tables with that PNP info cannot be found. 70.It Fl v Fl -verbose 71Produce more verbose output. 72.El 73.Sh SEE ALSO 74.Xr rc.conf 5 , 75.Xr devinfo 8 , 76.Xr MODULE_PNP_INFO 9 77.Sh HISTORY 78.Nm 79first appeared in 80.Fx 12.0 . 81.Sh AUTHORS 82.An Warner Losh Aq Mt imp@FreeBSD.org 83.Sh BUGS 84The kernel has hints in it, but we exclude it from the list of modules 85to suggest for unmatched devices. 86We exclude it when suggesting drivers, but include it when looking for 87unbound devices or producing a full dump of 88.Pa linker.hints . 89This can be confusing. 90.Pp 91Some modules are hard links in 92.Pa /boot/kernel 93and will be reported twice. 94.Pp 95The PNP string's attributes are evaluated once per PNP entry on that 96bus rather than once. 97.Pp 98The term PNP is overloaded in 99.Fx . 100It means, generically, the identifying data the bus provides about a 101device. 102While this include old ISA PNP identifiers, it also includes the 103logical equivalent in USB, PCI, and others. 104.Pp 105Many drivers currently lack proper PNP table decorations and need to 106be updated. 107