aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAwnrt <roman.levikoff@gmail.com>2024-04-30 00:24:08 +0300
committerAwnrt <roman.levikoff@gmail.com>2024-04-30 00:24:08 +0300
commitd35d66a53af7d55b3f0ef86c42a910e968f754da (patch)
tree95c2268cc15125134efb92e387ec48bc897d077d
parentbad1ffed05c49b452da3d120687e4d47dbf36dbe (diff)
upload
-rw-r--r--Hooks/qemu34
-rwxr-xr-xHooks/revert.sh6
-rwxr-xr-xHooks/start.sh6
-rwxr-xr-xgpu_pass.sh80
4 files changed, 72 insertions, 54 deletions
diff --git a/Hooks/qemu b/Hooks/qemu
new file mode 100644
index 0000000..79203c7
--- /dev/null
+++ b/Hooks/qemu
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+#
+# Author: SharkWipf
+#
+# Copy this file to /etc/libvirt/hooks, make sure it's called "qemu".
+# After this file is installed, restart libvirt.
+# From now on, you can easily add per-guest qemu hooks.
+# Add your hooks in /etc/libvirt/hooks/qemu.d/vm_name/hook_name/state_name.
+# For a list of available hooks, please refer to https://www.libvirt.org/hooks.html
+#
+
+GUEST_NAME="$1"
+HOOK_NAME="$2"
+STATE_NAME="$3"
+MISC="${@:4}"
+
+BASEDIR="$(dirname $0)"
+
+HOOKPATH="$BASEDIR/qemu.d/$GUEST_NAME/$HOOK_NAME/$STATE_NAME"
+
+set -e # If a script exits with an error, we should as well.
+
+# check if it's a non-empty executable file
+if [ -f "$HOOKPATH" ] && [ -s "$HOOKPATH" ] && [ -x "$HOOKPATH" ]; then
+ eval \"$HOOKPATH\" "$@"
+elif [ -d "$HOOKPATH" ]; then
+ while read file; do
+ # check for null string
+ if [ ! -z "$file" ]; then
+ eval \"$file\" "$@"
+ fi
+ done <<< "$(find -L "$HOOKPATH" -maxdepth 1 -type f -executable -print;)"
+fi
+
diff --git a/Hooks/revert.sh b/Hooks/revert.sh
index 7d15dfa..eb2b179 100755
--- a/Hooks/revert.sh
+++ b/Hooks/revert.sh
@@ -23,7 +23,7 @@ modprobe nvidia
modprobe drm
modprobe nvidia_uvm
-systemctl start sddm.service
+#systemctl start sddm.service
-echo 0000:00:14.0 > /sys/bus/pci/drivers/vfio-pci/unbind
-echo 0000:00:14.0 > /sys/bus/pci/drivers/xhci_hcd/bind
+#echo 0000:00:14.0 > /sys/bus/pci/drivers/vfio-pci/unbind
+#echo 0000:00:14.0 > /sys/bus/pci/drivers/xhci_hcd/bind
diff --git a/Hooks/start.sh b/Hooks/start.sh
index be360ac..b20bb55 100755
--- a/Hooks/start.sh
+++ b/Hooks/start.sh
@@ -3,7 +3,9 @@ set -x
source "/etc/libvirt/hooks/kvm.conf"
-systemctl stop sddm.service
+#systemctl stop sddm.service
+killall dwl
+
echo 0 > /sys/class/vtconsole/vtcon0/bind
echo 0 > /sys/class/vtconsole/vtcon1/bind
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
@@ -23,4 +25,4 @@ modprobe vfio
modprobe vfio_pci
modprobe vfio_iommu_type1
-./usr/share/UnbindUSB/vfio-usb.sh 0000:00:14.0
+#./usr/share/UnbindUSB/vfio-usb.sh 0000:00:14.0
diff --git a/gpu_pass.sh b/gpu_pass.sh
index 1f9e383..3bb2059 100755
--- a/gpu_pass.sh
+++ b/gpu_pass.sh
@@ -1,59 +1,41 @@
-LIGHTGREEN='\033[1;32m'
-LIGHTRED='\033[1;91m'
-WHITE='\033[1;97m'
-MAGENTA='\033[1;35m'
-CYAN='\033[1;96m'
-NoColor='\033[0m'
+WORKDIRECTORY=$PWD
+PERMUSER="awy"
-sudo mkdir /usr/share/vgabios
-sudo cp Hooks/patch.rom /usr/share/vgabios
-sudo mkdir /usr/share/UnbindUSB
-sudo cp Hooks/vfio-usb.sh /usr/share/UnbindUSB
+if [ "$EUID" -ne 0 ]
+ then printf "The script has to be run as root.\n"
+ exit
+fi
-printf ${MAGENTA}"Installing QEMU...\n"
-printf ${LIGHTGREEN}""
+sudo -u $PERMUSER mkdir -p /home/$PERMUSER/.local/share/vgabios
+sudo -u $PERMUSER cp $WORKDIRECTORY/Hooks/patch.rom /home/$PERMUSER/.local/share/vgabios
-sudo pacman -S qemu libvirt edk2-ovmf virt-manager ebtables dnsmasq wget qemu-ui-sdl qemu-ui-gtk
-sudo systemctl enable libvirtd.service
-sudo systemctl start libvirtd.service
-sudo systemctl enable virtlogd.socket
-sudo systemctl start virtlogd.socket
-sudo virsh net-autostart default
-sudo virsh net-start default
+# FOR ARCH LINUX vvvv
+#pacman -S qemu libvirt edk2-ovmf virt-manager ebtables dnsmasq wget qemu-ui-sdl qemu-ui-gtk
+#systemctl enable libvirtd.service
+#systemctl start libvirtd.service
+#systemctl enable virtlogd.socket
+#systemctl start virtlogd.socket
+#virsh net-autostart default
+#virsh net-start default
-clear
+# ARTIX LINUX + DINIT
+pacman -Sy --noconfirm
+pacman -S qemu-full libvirt libvirt-dinit edk2-ovmf virt-manager dnsmasq wget
-printf ${MAGENTA}"Installing hooks manager...\n"
-printf ${LIGHTGREEN}""
+mkdir /etc/libvirt/hooks
-sudo mkdir /etc/libvirt/hooks
+#wget 'https://raw.githubusercontent.com/PassthroughPOST/VFIO-Tools/master/libvirt_hooks/qemu' \
+# -O /etc/libvirt/hooks/qemu
+cp $WORKDIRECTORY/Hooks/qemu /etc/libvirt/hooks/
-sudo wget 'https://raw.githubusercontent.com/PassthroughPOST/VFIO-Tools/master/libvirt_hooks/qemu' \
- -O /etc/libvirt/hooks/qemu
+chmod +x /etc/libvirt/hooks/qemu
-sudo chmod +x /etc/libvirt/hooks/qemu
+mkdir -p /etc/libvirt/hooks/qemu.d/win10-hidden-pt/prepare/begin
+mkdir -p /etc/libvirt/hooks/qemu.d/win10-hidden-pt/release/end
-clear
+cp $WORKDIRECTORY/Hooks/start.sh /etc/libvirt/hooks/qemu.d/win10-hidden-pt/prepare/begin/
+#sudo cp Hooks/isolstart.sh /etc/libvirt/hooks/qemu.d/win10/prepare/begin/
+cp $WORKDIRECTORY/Hooks/revert.sh /etc/libvirt/hooks/qemu.d/win10-hidden-pt/release/end/
+#sudo cp Hooks/isocpurevert.sh /etc/libvirt/hooks/qemu.d/win10/release/end/
+cp Hooks/kvm.conf /etc/libvirt/hooks/
-printf ${MAGENTA}"Copying hooks into root directory...\n"
-printf ${LIGHTGREEN}""
-
-sudo mkdir /etc/libvirt/hooks/qemu.d
-sudo mkdir /etc/libvirt/hooks/qemu.d/win10
-sudo mkdir /etc/libvirt/hooks/qemu.d/win10/prepare
-sudo mkdir /etc/libvirt/hooks/qemu.d/win10/prepare/begin
-sudo mkdir /etc/libvirt/hooks/qemu.d/win10/release
-sudo mkdir /etc/libvirt/hooks/qemu.d/win10/release/end
-
-sudo cp Hooks/start.sh /etc/libvirt/hooks/qemu.d/win10/prepare/begin/
-sudo cp Hooks/isolstart.sh /etc/libvirt/hooks/qemu.d/win10/prepare/begin/
-sudo cp Hooks/revert.sh /etc/libvirt/hooks/qemu.d/win10/release/end/
-sudo cp Hooks/isocpurevert.sh /etc/libvirt/hooks/qemu.d/win10/release/end/
-
-printf ${MAGENTA}"Configuring kvm.conf...\n"
-printf ${LIGHTGREEN}""
-
-sudo cp Hooks/kvm.conf /etc/libvirt/hooks/
-
-printf ${LIGHTGREEN}"\nYou are done!\n"
-printf ${LIGHTGREEN}""