Merge pull request #3 from philclifford/small-suggestions

Small bash suggestions, looks good 😄
This commit is contained in:
HikariKnight 2022-03-04 16:12:07 +01:00 committed by GitHub
commit cfde379c5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 50 additions and 46 deletions

View file

@ -33,8 +33,8 @@ DO NOT use any of the files from $SCRIPTDIR/config !
}
function main () {
SCRIPTDIR=$(dirname `which $0` | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
SCRIPTDIR=$(dirname "$(which $0)" | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
get_GPU
}

View file

@ -45,7 +45,7 @@ USB_CTL_ID=()
# Get the GPU ROM
"$SCRIPTDIR/lib/get_GPU_ROM.sh" "$ROM_PCI_ID"
# Start setting up modules
exec "$SCRIPTDIR/lib/set_MODULES.sh" $GPU_DEVID
;;
@ -56,8 +56,8 @@ USB_CTL_ID=()
}
function main () {
SCRIPTDIR=$(dirname `which $0` | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
SCRIPTDIR=$(dirname "$(which $0)" | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
get_GROUP $1
}

View file

@ -5,7 +5,7 @@ function get_GPU_ROM () {
# Get the config paths
source "$SCRIPTDIR/lib/paths.sh"
VBIOS_PATH=$(find /sys/devices -name rom | grep $1)
VBIOS_PATH=$(find /sys/devices -name rom | grep "$1")
printf "We will now attempt to dump the vbios of your selected GPU.
Passing a VBIOS rom to the card used for passthrough is required for some cards, but not all.
Some cards also requires you to patch your VBIOS romfile, check online if this is neccessary for your card.
@ -20,14 +20,14 @@ echo 0 | sudo tee $VBIOS_PATH
read -p "Do you want to dump the VBIOS, choosing N will skip this step [y/N]: " YESNO
case "${YESNO}" in
[Yy]*)
echo 1 | sudo tee $VBIOS_PATH
sudo cat $VBIOS_PATH > "$SCRIPTDIR/$QUICKEMU/vfio_card.rom"
sudo md5sum $VBIOS_PATH | cut -d " " -f 1 > "$SCRIPTDIR/$QUICKEMU/vfio_card.rom.md5"
local ROM_MD5=$(sudo md5sum $VBIOS_PATH | cut -d " " -f 1)
echo 0 | sudo tee $VBIOS_PATH
echo 1 | sudo tee "$VBIOS_PATH"
sudo cat "$VBIOS_PATH" > "$SCRIPTDIR/$QUICKEMU/vfio_card.rom"
sudo md5sum "$VBIOS_PATH" | cut -d " " -f 1 > "$SCRIPTDIR/$QUICKEMU/vfio_card.rom.md5"
local ROM_MD5=$(sudo md5sum "$VBIOS_PATH" | cut -d " " -f 1)
echo 0 | sudo tee "$VBIOS_PATH"
local ROMFILE_MD5=$(md5sum "$SCRIPTDIR/$QUICKEMU/vfio_card.rom" | cut -d " " -f 1)
if [ -f $SCRIPTDIR/$QUICKEMU/vfio_card.rom ];
if [ -f "$SCRIPTDIR"/$QUICKEMU/vfio_card.rom ];
then
if [ "$ROM_MD5" == "$ROMFILE_MD5" ];
then
@ -59,8 +59,8 @@ echo 0 | sudo tee $VBIOS_PATH
function main () {
SCRIPTDIR=$(dirname `which $0` | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
SCRIPTDIR=$(dirname "$(which $0)" | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
get_GPU_ROM $1
}

View file

@ -10,7 +10,7 @@ is only needed if you intend to use other devices than just mouse and keyboard w
"
echo "#------------------------------------------#"
exec "$SCRIPTDIR/utils/ls-iommu" | grep -i "usb controller" | cut -d " " -f 1-4,8-
echo "#------------------------------------------#"
echo "#------------------------------------------#"
printf "
Press q to quit
"
@ -31,7 +31,7 @@ Press q to quit
}
function main () {
SCRIPTDIR=$(dirname `which $0` | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
SCRIPTDIR=$(dirname "$(which $0)" | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
get_USB_CTL
}

View file

@ -14,7 +14,7 @@ if you do not know what you are doing.
echo "#------------------------------------------#"
exec "$SCRIPTDIR/utils/ls-iommu" | grep -i "group $1" | cut -d " " -f 1-4,8- | perl -pe "s/\[[0-9a-f]{4}\]: //"
echo "#------------------------------------------#"
printf "
To use any of the devices shown for passthrough, all of them have to be passed through
@ -26,7 +26,7 @@ To return to the previous page just press ENTER.
[Yy]*)
# 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$//")
# 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"
@ -38,8 +38,8 @@ To return to the previous page just press ENTER.
}
function main () {
SCRIPTDIR=$(dirname `which $0` | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
SCRIPTDIR=$(dirname "$(which $0)" | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
get_USB_CTL_GROUP $1
}

View file

@ -3,9 +3,9 @@
function set_CMDLINE () {
clear
# Get the config paths
source "$SCRIPTDIR/lib/paths.sh"
source "${SCRIPTDIR}/lib/paths.sh"
local CMDLINE=$(cat "$SCRIPTDIR/config/kernel_args")
local CMDLINE=$(cat "${SCRIPTDIR}/config/kernel_args")
printf "Configuration is now complete, however no changes have been done to your system.
The files needed have just been written to $SCRIPTDIR/config/etc
@ -33,8 +33,8 @@ the required information that the QuickEMU project can hook into and use to add
######################################################################
#### In the future, when I have enough confirmation that this script works for other people.
#### This page will get replaced with a prompt asking if you want to apply the changes and make backups
#### of your current system config.
#### This page will get replaced with a prompt asking if you want to apply the changes and make backups
#### of your current system config.
######################################################################
"
@ -42,7 +42,7 @@ the required information that the QuickEMU project can hook into and use to add
function main () {
SCRIPTDIR=$(dirname `which $0` | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
SCRIPTDIR=$(dirname "$(which $0)" | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
set_CMDLINE
}

View file

@ -5,14 +5,18 @@ function set_MODULES () {
source "$SCRIPTDIR/lib/paths.sh"
# Write "/etc/modules"
printf "vfio
printf "
# Generated by vfio-setup
vfio
vfio_iommu_type1
vfio_pci ids=$1
vfio_pci ids=%s
vfio_virqfd
" >> "$SCRIPTDIR/$MODULES"
" "$1" >> "$SCRIPTDIR/$MODULES"
# Write "/etc/initramfs-tools/modules"
printf "vfio
printf "
# Generated by vfio-setup
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
@ -23,42 +27,42 @@ vfio_virqfd
# Update the kernel_args file
CMDLINE=$(cat "$SCRIPTDIR/config/kernel_args")
echo "$CMDLINE vfio_pci.ids=$GPU_DEVID" > "$SCRIPTDIR/config/kernel_args"
echo "${CMDLINE} vfio_pci.ids=$GPU_DEVID" > "$SCRIPTDIR/config/kernel_args"
# Ask if we shall disable video output on this card
read -p "Do you want to force disable video output in linux on this card? [Y/n]: " DISABLE_VGA
case "${DISABLE_VGA}" in
[Yy]*)
GPU_DEVID="$GPU_DEVID disable_vga=1"
GPU_DEVID="${GPU_DEVID} disable_vga=1"
;;
[Nn]*)
echo ""
;;
*)
GPU_DEVID="$GPU_DEVID disable_vga=1"
GPU_DEVID="${GPU_DEVID} disable_vga=1"
;;
esac
# Write the vfio modprobe config
printf "# This is an autogenerated file that stubs your graphic card for use with vfio
# This file should be placed inside /etc/modprobe.d/
options vfio_pci ids=$GPU_DEVID
options vfio_pci ids=%s
# Make sure vfio_pci is loaded before these modules: nvidia, nouveau, amdgpu and radeon
softdep nvidia pre: vfio vfio_pci
softdep nouveau pre: vfio vfio_pci
softdep amdgpu pre: vfio vfio_pci
softdep radeon pre: vfio vfio_pci
" > "$SCRIPTDIR/$MODPROBE/vfio.conf"
" "${GPU_DEVID}" > "$SCRIPTDIR/$MODPROBE/vfio.conf"
exec "$SCRIPTDIR/lib/get_USB_CTL.sh"
}
function main () {
SCRIPTDIR=$(dirname `which $0` | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
set_MODULES $1
SCRIPTDIR=$(dirname "$(which $0)" | perl -pe "s/\/\.\.\/lib//" | perl -pe "s/\/lib$//")
set_MODULES "$1"
}
main $1
main "$1"

View file

@ -1,8 +1,8 @@
#!/bin/bash
# Get the scripts directory
SCRIPTDIR=$(dirname `which $0`)
cd $SCRIPTDIR
SCRIPTDIR=$(dirname "$(which $0)")
cd "$SCRIPTDIR"
# Get the config paths
source "$SCRIPTDIR/lib/paths.sh"
@ -41,11 +41,11 @@ A full documentation for debian/ubuntu systems can be found here: https://github
Press ENTER to continue once you have made a backup of your system.
"
read ENTER
clear
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 have already added \"$CMDLINE\" to your
* You have already added \"$CMDLINE\" to your
kernel boot arguments and booted your system with these kernel arguments active.
* You are comfortable with navigating and changing settings in your UEFI/BIOS.
* You know how edit your bootloader configuration and kernel arguments.
@ -113,7 +113,7 @@ then
else
touch "$SCRIPTDIR/$INITRAMFS"
fi
# Run ls-iommu so we can verify that IOMMU properly working
LS_IOMMU=$($SCRIPTDIR/utils/ls-iommu)

View file

@ -1,7 +1,7 @@
#!/bin/bash
# Get the scripts directory
SCRIPTDIR=$(dirname `which $0`)
SCRIPTDIR=$(dirname "$(which $0)")
cd $SCRIPTDIR
# If there is a config generated, then $SCRIPTDIR/config/kernel_args
@ -25,4 +25,4 @@ else
# Tell user to run the setup first if the kernel_args file is not found
echo "Please run \"$SCRIPTDIR/vfio-setup\" first!"
fi
fi