feat: allow dynamic vfio device selection via shell scripts.

Create files $CONFIG/vfio-devices.sh and $CONFIG/vfio-devices-$VMNAME.sh.
This commit is contained in:
redxef 2025-02-05 18:00:29 +01:00
parent 798905294f
commit 9ffc23d421
Signed by: redxef
GPG key ID: 7DAC3AA211CBD921

View file

@ -37,7 +37,7 @@ NET_CONF_FILE="$NET_CONF_FILE" "$SUDO" --preserve-env=PATH,NET_CONF_FILE qemu-vm
# rebind devices
old_IFS="$IFS"
IFS=$'\n'
for device_override in $(cat "$CONFIG_PATH/vfio-devices.txt" || true) $(cat "$CONFIG_PATH/vfio-devices-$VMNAME.txt" || true); do
for device_override in $(cat "$CONFIG_PATH/vfio-devices.txt" || true) $(sh "$CONFIG_PATH/vfio-devices.sh") $(cat "$CONFIG_PATH/vfio-devices-$VMNAME.txt" || true) $(sh "$CONFIG_PATH/vfio-devices-$VMNAME.sh"); do
device_override="${device_override%%#*}"
device="$(awk '{print $1}' <<< "$device_override")"
override="$(awk '{print $2}' <<< "$device_override")"
@ -48,7 +48,7 @@ for device_override in $(cat "$CONFIG_PATH/vfio-devices.txt" || true) $(cat "$CO
$SUDO --preserve-env=SUDO,PATH qemu-vm-pci vfio_override_device "$device"
done
$SUDO modprobe vfio-pci
for device_override in $(cat "$CONFIG_PATH/vfio-devices.txt" || true) $(cat "$CONFIG_PATH/vfio-devices-$VMNAME.txt" || true); do
for device_override in $(cat "$CONFIG_PATH/vfio-devices.txt" || true) $(sh "$CONFIG_PATH/vfio-devices.sh") $(cat "$CONFIG_PATH/vfio-devices-$VMNAME.txt" || true) $(sh "$CONFIG_PATH/vfio-devices-$VMNAME.sh"); do
device_override="${device_override%%#*}"
device="$(awk '{print $1}' <<< "$device_override")"
override="$(awk '{print $2}' <<< "$device_override")"