#!/bin/bash set -euo pipefail BASE_PATH=/sys/bus/pci/ # sanitize variables if [[ "${BASE_PATH: -1}" = '/' ]]; then BASE_PATH="${BASE_PATH::${#BASE_PATH}-1}" fi _="${SUDO:=sudo}" vfio_override_device() { local pci_id pci_id="$1" if [[ -e "$BASE_PATH/devices/$pci_id" ]]; then echo "vfio-pci" | $SUDO tee \ "$BASE_PATH/devices/$pci_id/driver_override" > /dev/null fi } vfio_rebind_device() { local pci_id pci_id="$1" if [[ -e "$BASE_PATH/devices/$pci_id" ]]; then [[ -e "$BASE_PATH/devices/$pci_id/driver/unbind" ]] \ && echo "$pci_id" | $SUDO tee \ "$BASE_PATH/devices/$pci_id/driver/unbind" >/dev/null echo "$pci_id" | $SUDO tee \ "$BASE_PATH/drivers/vfio-pci/bind" > /dev/null fi } "$@"