change to case switches

This commit is contained in:
HikariKnight 2022-02-28 20:30:08 +01:00
parent 8faf631c96
commit 73739548a3
No known key found for this signature in database
GPG key ID: E8B239063B022F5A
2 changed files with 36 additions and 34 deletions

View file

@ -20,38 +20,39 @@ Optionally it may also include:
exec "$SCRIPTDIR/utils/ls-iommu" | grep -i "group $1" | cut -d " " -f 1-4,8- | perl -pe "s/\[[0-9a-f]{4}\]: //" exec "$SCRIPTDIR/utils/ls-iommu" | grep -i "group $1" | cut -d " " -f 1-4,8- | perl -pe "s/\[[0-9a-f]{4}\]: //"
echo "#------------------------------------------#" echo "#------------------------------------------#"
printf " printf "
To use any of these devices for passthrough ALL of them has to be passed through to the VMs\ To use any of these devices for passthrough ALL of them has to be passed through to the VMs\
To return to the previous page just press ENTER without typing in anything. To return to the previous page just press ENTER without typing in anything.
" "
read -p "Do you want to use these devices for passthrough? [y/N]: " YESNO read -p "Do you want to use these devices for passthrough? [y/N]: " YESNO
if [[ ${YESNO} =~ [Yy]* ]]; case "${YESNO}" in
then [Yy]*)
# Get the hardware ids from the selected group # Get the hardware ids from the selected group
local GPU_DEVID=$($SCRIPTDIR/utils/ls-iommu | grep -i "group $1" | perl -pe "s/.+\[([0-9a-f]{4}:[0-9a-f]{4})\].+/\1/" | perl -pe "s/\n/,/" | perl -pe "s/,$/\n/") local GPU_DEVID=$($SCRIPTDIR/utils/ls-iommu | grep -i "group $1" | perl -pe "s/.+\[([0-9a-f]{4}:[0-9a-f]{4})\].+/\1/" | perl -pe "s/\n/,/" | perl -pe "s/,$/\n/")
# Get the PCI ids # Get the PCI ids
local PCI_ID=$($SCRIPTDIR/utils/ls-iommu | grep -i "group $1" | cut -d " " -f 4 | perl -pe "s/\n/ /" | perl -pe "s/\s$//") local PCI_ID=$($SCRIPTDIR/utils/ls-iommu | grep -i "group $1" | cut -d " " -f 4 | perl -pe "s/\n/ /" | perl -pe "s/\s$//")
# Write the GPU_PCI_IDs to the config that quickemu might make use of in the future # Write the GPU_PCI_IDs to the config that quickemu might make use of in the future
printf "GPU_PCI_ID=($PCI_ID) printf "GPU_PCI_ID=($PCI_ID)
USB_CTL_ID=() USB_CTL_ID=()
" > "$SCRIPTDIR/$QUICKEMU/qemu-vfio_vars.conf" " > "$SCRIPTDIR/$QUICKEMU/qemu-vfio_vars.conf"
# Get the PCI_ID # Get the PCI_ID
local ROM_PCI_ID=$($SCRIPTDIR/utils/ls-iommu | grep -i "vga" | grep -i "group $1" | cut -d " " -f 4) local ROM_PCI_ID=$($SCRIPTDIR/utils/ls-iommu | grep -i "vga" | grep -i "group $1" | cut -d " " -f 4)
# Get the GPU ROM # Get the GPU ROM
"$SCRIPTDIR/lib/get_GPU_ROM.sh" "$ROM_PCI_ID" "$SCRIPTDIR/lib/get_GPU_ROM.sh" "$ROM_PCI_ID"
# Start setting up modules
exec "$SCRIPTDIR/lib/set_MODULES.sh" $GPU_DEVID
else
exec "$SCRIPTDIR/lib/get_GPU.sh"
fi
# Start setting up modules
exec "$SCRIPTDIR/lib/set_MODULES.sh" $GPU_DEVID
;;
*)
exec "$SCRIPTDIR/lib/get_GPU.sh"
;;
esac
} }
function main () { function main () {

View file

@ -20,20 +20,21 @@ To use any of the devices shown for passthrough, all of them have to be passed t
To return to the previous page just press ENTER. To return to the previous page just press ENTER.
" "
read -p "Do you want to use the displayed devices for passthrough? [y/N]: " YESNO read -p "Do you want to use the displayed devices for passthrough? [y/N]: " YESNO
if [[ ${YESNO} =~ [Yy]* ]]; case "${YESNO}" in
then [Yy]*)
# Get the PCI ids # Get the PCI ids
local PCI_ID=$($SCRIPTDIR/utils/ls-iommu | grep -i "group $1" | cut -d " " -f 4 | perl -pe "s/\n/ /" | perl -pe "s/\s$//") local PCI_ID=$($SCRIPTDIR/utils/ls-iommu | grep -i "group $1" | cut -d " " -f 4 | perl -pe "s/\n/ /" | perl -pe "s/\s$//")
# Replace the blank USB_CTL_ID with the PCI_ID for the usb controller the user wants to pass through
perl -pi -e "s/USB_CTL_ID=\(\)/USB_CTL_ID=\($PCI_ID\)/" "$SCRIPTDIR/$QUICKEMU/qemu-vfio_vars.conf"
exec "$SCRIPTDIR/lib/set_CMDLINE.sh"
else
exec "$SCRIPTDIR/lib/get_USB_CTL.sh"
fi
# Replace the blank USB_CTL_ID with the PCI_ID for the usb controller the user wants to pass through
perl -pi -e "s/USB_CTL_ID=\(\)/USB_CTL_ID=\($PCI_ID\)/" "$SCRIPTDIR/$QUICKEMU/qemu-vfio_vars.conf"
exec "$SCRIPTDIR/lib/set_CMDLINE.sh"
;;
*)
exec "$SCRIPTDIR/lib/get_USB_CTL.sh"
;;
esac
} }
function main () { function main () {