Provided by: driverctl_0.115-1_all bug

NAME

       driverctl - Device driver control utility.

SYNOPSIS

       driverctl [OPTIONS] COMMAND [DEVICE [DRIVER]]

DESCRIPTION

       driverctl may be used to manipulate and inspect the system device driver choices.

       Devices  are  normally  assigned  to  their  sole  designated  kernel  driver by default. However in some
       situations it may be desireable to override that default, for example to try  an  older  driver  to  work
       around  a regression in a driver or to try an experimental alternative driver. Another common use-case is
       pass-through drivers and driver stubs to allow userspace  to  drive  the  device,  such  as  in  case  of
       virtualization.

       driverctl  integrates  with  udev  to  support  overriding driver selection for both cold- and hotplugged
       devices from the moment of discovery, but can also change already assigned drivers, assuming they are not
       in use by the system. The driver overrides created by driverctl are persistent across system  reboots  by
       default.

OPTIONS

       The following options are understood:

       -b|--bus <BUS>
           Operate  on  devices on a given bus, such as pci or usb.  Available options depend on system hardware
           and kernel, for example as of kernel 4.6.7 the USB subsystem does not  yet  support  driver_override.
           By default pci bus is used.

       --debug|--verbose|-v
           Verbose mode, output more detailed information during operation.

       -h|--help
           Output usage information.

       --noprobe
           Do not (re)probe the device after changing the driver. Applies to the *-override commands.

       --nosave
           Do not set/unset permanently. Applies to set-override and unset-override commands.

COMMANDS

       The following commands are understood:

       set-override <DEVICE> <DRIVER>
           Set a driver override for a device. By default the current driver is unbound from the device, the new
           driver is loaded into kernel, bound and the override is saved permanently.

           As  a special case, specifying "none" as the driver will prevent any driver to be bound to the device
           until the override is removed.

       unset-override <DEVICE>
           Unset a driver override for a device. By default the current driver is unbound from the  device,  the
           default driver of the device is bound and the override is permanently removed.

       load-override <DEVICE>
           Load  a  previously  set driver override for device from disk. There's usually no need to invoke this
           manually, the command exists mostly for udev interaction.

       list-devices [DEVICETYPE]
           List currently plugged, overridable system devices on a bus (pci by default) along with their current
           drivers. Any overridden drivers are marked with [*]. With -v options, additional  device  description
           from  udev  database is shown to help identify devices.  It is possible to limit displayed devices by
           specifying a device type as an optional argument, for example "network" to list only network devices.

       list-overrides [DEVICETYPE]
           List currently overridden devices on a bus (pci  by  default)  With  -v  options,  additional  device
           description  from udev database is shown to help identify devices.  It is possible to limit displayed
           devices by specifying a device type as an optional argument,  for  example  "network"  to  list  only
           network devices.

       list-persisted
           List  devices with currently persisted overrides on a bus (pci by default) along with their driver to
           be bound on the next boot.

EXIT STATUS

       On success, 0 is returned, a non-zero failure code otherwise.

EXAMPLES

       Find devices currently driven by ixgbe driver:

       # driverctl -v list-devices | grep ixgbe
       0000:01:00.0 ixgbe (Ethernet 10G 4P X520/I350 rNDC)
       0000:01:00.1 ixgbe (Ethernet 10G 4P X520/I350 rNDC)

       Change them to use the vfio-pci driver:
       # driverctl set-override 0000:01:00.0 vfio-pci
       # driverctl set-override 0000:01:00.1 vfio-pci

       Find devices with driver overrides:
       # driverctl -v list-overrides
       0000:01:00.0 vfio-pci (Ethernet 10G 4P X520/I350 rNDC)
       0000:01:00.1 vfio-pci (Ethernet 10G 4P X520/I350 rNDC)

       Find network devices:
       # driverctl list-devices network
       0000:01:00.0 ixgbe
       0000:01:00.1 ixgbe
       0000:06:00.0 igb
       0000:06:00.1 igb

       Remove the override from slot 0000:01:00.1:
       # driverctl unset-override 0000:01:00.1

       Transiently remove the override from slot 0000:01:00.0:
       # driverctl --nosave unset-override 0000:01:00.0

       Find devices with persisted driver overrides:
       # driverctl list-persisted
       0000:01:00.0 vfio-pci

FILES

       /etc/driverctl.d/*

SEE ALSO

       udev(7) udevadm(8) lspci(8) lsusb(8)

                                                                                                    driverctl(8)