quickpassthrough/vfio-setup
2022-02-27 00:10:21 +01:00

66 lines
No EOL
2.3 KiB
Bash
Executable file

#!/bin/bash
# Get the scripts directory
SCRIPTDIR=$(dirname `which $0`)
cd $SCRIPTDIR
# Clear the screen
clear
# Show the user a warning before we start
printf "Welcome to the VFIO enabler script!
The setup done by this script is quite complex and is prone to human error or hardware incompatibilities.
It is HIGHLY RECOMMENDED to make a backup/snapshot of your system using something like timeshift or snapper before starting.
Once everything is configured, your 2nd graphic card will hopefully be dedicated for use inside a virtual machine.
Press ENTER to continue once you have made a backup of your system.
"
read ENTER
clear
printf "This script assumes a few things:
* You have already enabled IOMMU, VT-d and/or AMD-v inside your UEFI/BIOS advanced settings.
* You are comfortable with navigating and changing settings in your UEFI/BIOS.
* You know how edit your bootloader configuration.
* Your Linux distribution is an EFI installation (important to get VFIO working).
NOTE: If your computer no longer fully shut down after enabling IOMMU, then there is possibly a bug
with your motherboard and a piece of hardware in your system, it only prevents you from using
the system in a headless mode with working shutdown and is otherwise just an annoying
quirk with IOMMU on some boards.
This is a list of prerequisites you will be needing before starting with VFIO:
* 2 GPUs (iGPU/APU included)
* A \"ghost display\" dummy plug for your second graphic card (or having it hooked to a separate input on your monitor).
* If you are planning to use the inegrated GPU on your CPU, make sure your monitor is connected to it before continuing.
* Preferably a motherboard verified to work with IOMMU and with good IOMMU groups.
https://reddit.com/r/vfio is a good resource for this info.
(If you are unsure, you will find out while using this script)
Press ENTER to start creating your config.
"
read ENTER
clear
"$SCRIPTDIR/utils/ls-iommu"
printf "
If the above list has everything inside just 1 IOMMU group the please enable
IOMMU, VT-d or AMD-v inside your UEFI/BIOS and re-run this script!
"
read -p "Is there more than 1 group in the output above? [y/N]:" YESNO
case "${YESNO}" in
[Yy]*)
clear
;;
[Nn]*)
exit 1
;;
*)
exit 1
;;
esac
"$SCRIPTDIR/lib/get_GPU.sh"