This script takes one or two parameters in any order:
Domain:Bus:Device.Functionwere provided, validate that the requested
Vendor:Devicewas provided, determine the current
Domain:Bus:Device.Functionfor that device.
Domain:Bus:Device.Functionwas provided, use it.
Unbinds all devices that are in the same iommu group as the supplied device from their current driver (except PCIe bridges).
Binds to vfio-pci:
- The supplied device.
- All devices that are in the same iommu group.
Transfers ownership of the respective iommu group inside /dev/vfio to $SUDO_USER
If you have a single piece of hardware with a given
Vendor:Device, you can call the script like this:
The script will target that device regardless of how the PCI address might change due to the addition or removal of other hardware.
If you have multiple pieces of hardware with the same
Vendor:Devicecode, you need to pass the PCI address as well:
vfio-pci-bind.sh Vendor:Device Domain:Bus:Device.Function
This will ensure the correct instance of the hardware is bound to vfio-pci.
Note: If the PCI address for this device changes as a result of adding or removing hardware, you will need to update the PCI address in this call.
For backwards compatibility you can also specify just the PCI address:
Note: If you add or remove hardware, the device associated with that PCI address can change resulting in the wrong device being bound to vfio-pci. Consider passing the
Script must be executed via sudo!
See supplied LICENSE file.