From 55ed77c9a3cc97e7f0b9096d97570c888ad82c86 Mon Sep 17 00:00:00 2001 From: redxef Date: Fri, 21 Jan 2022 10:17:17 +0100 Subject: [PATCH] Add driver_override possibility in pci script. --- pci | 19 ++++++++++++++----- start | 9 +++++++-- vfio_devices.txt | 8 ++++---- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/pci b/pci index 54e6900..7deb17f 100755 --- a/pci +++ b/pci @@ -11,13 +11,22 @@ fi vfio_rebind_device() { local pci_id - + local override pci_id="$1" + override="$2" + if [[ "$override" != 'true' ]]; then + override=false + fi if [[ -e "$BASE_PATH/devices/$pci_id" ]]; then - 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 + if "$override"; then + echo "vfio-pci" | sudo tee \ + "$BASE_PATH/devices/$pci_id/driver_override" > /dev/null + fi + [[ -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 } diff --git a/start b/start index a581834..061858c 100755 --- a/start +++ b/start @@ -49,9 +49,14 @@ NET_CONF_FILE="$NET_CONF_FILE" $DEBUG $SUDO --preserve-env=NET_CONF_FILE \ ./net create # rebind devices -for device in $(< vfio_devices.txt); do - $DEBUG $SUDO ./pci vfio_rebind_device "$device" +old_IFS="$IFS" +IFS=$'\n' +for device_override in $(< vfio_devices.txt); do + device="$(echo "$device_override" | awk '{print $1}')" + override="$(echo "$device_override" | awk '{print $2}')" + $DEBUG $SUDO ./pci vfio_rebind_device "$device" "$override" done +IFS="$old_IFS" # efi variables EFI_VARS="$(mktemp)" diff --git a/vfio_devices.txt b/vfio_devices.txt index 4be96e3..c0d6229 100644 --- a/vfio_devices.txt +++ b/vfio_devices.txt @@ -1,4 +1,4 @@ -0000:02:00.0 -0000:07:00.0 -0000:65:00.0 -0000:65:00.1 +0000:02:00.0 false +0000:07:00.0 false +0000:65:00.0 false +0000:65:00.1 false