.\" $NetBSD: drvctl.8,v 1.20 2019/08/07 19:08:10 wiz Exp $ .\" .\" Copyright (c) 2004 .\" Matthias Drochner. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .Dd August 6, 2019 .Dt DRVCTL 8 .Os .Sh NAME .Nm drvctl .Nd tool to rescan busses and detach devices on user request .Sh SYNOPSIS .Nm .Fl r .Op Fl a Ar attribute .Ar busdevice .Op locator ... .Nm .Fl d .Ar device .Nm .Op Fl nt .Fl l .Op Ar device .Nm .Op Fl n .Fl p .Ar device .Op Ar property ... .Nm .Fl Q .Ar device .Nm .Fl R .Ar device .Nm .Fl S .Ar device .Sh DESCRIPTION The .Nm program works with the .Xr drvctl 4 pseudo-driver to allow the rescan of busses and to detach drivers from devices. .Pp The following options are available: .Bl -tag -width 123456 .It Fl a Give the interface attribute where children are to be attached to (and which defines the interpretation of the locator information). This will only be needed in rare cases where the bus has multiple attributes. If there are multiple attributes, and one is not specified, .Nm will return an Invalid argument. In such cases, the .Fl p option can be used to determine the available interface attributes. .It Fl d Detach the device driver from the device given by the .Ar device argument. .It Fl l List the children of the device specified by the .Ar device argument. If .Ar device is not specified, list roots of the device tree instead. Output comes in two columns. The first column is .Ar device , or .Dq root if .Ar device is not specified. The second column is the child. .It Fl n Suppress first column in .Fl l output. Suppress non-XML headers in .Fl p output. .It Fl p Get properties for the device specified by the .Ar device argument. If .Ar property is specified, the value of that property is printed, otherwise the properties are displayed as an XML property list. The property can be given as a path of dictionary keys and numeric array indexes separated by slashes. .It Fl Q Resume the ancestors of .Ar device , .Ar device itself, and all of its descendants. .It Fl R Resume both the ancestors of .Ar device and .Ar device itself. .It Fl r Rescan the bus given by the .Ar busdevice argument. The scan range can be restricted by an optional .Ar locator list. .It Fl S Suspend both the descendants of .Ar device and .Ar device itself. .It Fl t Print a tree of devices in .Fl l output. .El .Sh FILES .Pa /dev/drvctl .Sh EXAMPLES To scan for IDE/SATA/eSATA disks on .Pa atabus1 , which need to use the .Qq ata_hl attribute: .Bd -literal -offset indent # drvctl -r -a ata_hl atabus1 .Ed .Pp To scan for devices on a USB hub .Pa uhub3 , that have not been discovered by normal methods (or were detached with the .Fl d option for .Nm ) , need to use the .Qq usbifif or .Qq usbdevif attributes, try one or both of these: .Bd -literal -offset indent # drvctl -r -a usbifif uhub3 # drvctl -r -a usbdevif uhub3 .Ed .Sh SEE ALSO .Xr proplib 3 , .Xr drvctl 4 , .Xr autoconf 9 .Sh HISTORY A .Nm utility appeard in .Nx 4.0 . .Sh BUGS Currently, there is no good way to get information about locator lengths and default values (which is present at kernel configuration time) out of a running kernel. Thus the locator handling is less intelligent than it could be.