66 lines
No EOL
2.3 KiB
Bash
Executable file
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" |