some changes
This commit is contained in:
parent
2d25c605b7
commit
825f05c50a
45 changed files with 1826 additions and 1586 deletions
|
|
@ -8,6 +8,104 @@
|
|||
with lib;
|
||||
with lib.custom; let
|
||||
cfg = config.hardware.gpu-passthru;
|
||||
|
||||
startScript = ''
|
||||
#!/run/current-system/sw/bin/bash
|
||||
|
||||
# Debugging
|
||||
exec 19>/home/zoey/Desktop/startlogfile
|
||||
BASH_XTRACEFD=19
|
||||
set -x
|
||||
|
||||
# Load variables we defined
|
||||
source "/etc/libvirt/hooks/kvm.conf"
|
||||
|
||||
# Change to performance governor
|
||||
echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
|
||||
# Isolate host to core 0
|
||||
systemctl set-property --runtime -- user.slice AllowedCPUs=0-8
|
||||
systemctl set-property --runtime -- system.slice AllowedCPUs=0-8
|
||||
systemctl set-property --runtime -- init.scope AllowedCPUs=0-8
|
||||
|
||||
# disable vpn
|
||||
mullvad disconnect -w
|
||||
|
||||
# Logout
|
||||
# source "/home/owner/Desktop/Sync/Files/Tools/logout.sh"
|
||||
|
||||
# Stop display manager
|
||||
systemctl stop display-manager.service
|
||||
killall gdm-wayland-session
|
||||
killall niri
|
||||
killall niri-session
|
||||
|
||||
# Unbind VTconsoles
|
||||
echo 0 > /sys/class/vtconsole/vtcon0/bind
|
||||
echo 0 > /sys/class/vtconsole/vtcon1/bind
|
||||
|
||||
# Unbind EFI Framebuffer
|
||||
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
|
||||
|
||||
# Avoid race condition
|
||||
sleep 5
|
||||
|
||||
# Unload NVIDIA kernel modules
|
||||
modprobe -r nvidia_drm nvidia_modeset nvidia_uvm nvidia
|
||||
|
||||
# Detach GPU devices from host
|
||||
virsh nodedev-detach $VIRSH_GPU_VIDEO
|
||||
virsh nodedev-detach $VIRSH_GPU_AUDIO
|
||||
|
||||
# Load vfio module
|
||||
modprobe vfio-pci
|
||||
'';
|
||||
|
||||
stopScript = ''
|
||||
#!/run/current-system/sw/bin/bash
|
||||
|
||||
# Debugging
|
||||
exec 19>/home/zoey/Desktop/stoplogfile
|
||||
BASH_XTRACEFD=19
|
||||
set -x
|
||||
|
||||
# Load variables we defined
|
||||
source "/etc/libvirt/hooks/kvm.conf"
|
||||
|
||||
# Unload vfio module
|
||||
modprobe -r vfio-pci
|
||||
|
||||
# Attach GPU devices from host
|
||||
virsh nodedev-reattach $VIRSH_GPU_VIDEO
|
||||
virsh nodedev-reattach $VIRSH_GPU_AUDIO
|
||||
|
||||
# Read nvidia x config
|
||||
nvidia-xconfig --query-gpu-info > /dev/null 2>&1
|
||||
|
||||
# Load NVIDIA kernel modules
|
||||
modprobe nvidia_drm nvidia_modeset nvidia_uvm nvidia
|
||||
|
||||
# Avoid race condition
|
||||
sleep 5
|
||||
|
||||
# Bind EFI Framebuffer
|
||||
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/bind
|
||||
|
||||
# Bind VTconsoles
|
||||
echo 1 > /sys/class/vtconsole/vtcon0/bind
|
||||
echo 1 > /sys/class/vtconsole/vtcon1/bind
|
||||
|
||||
# Start display manager
|
||||
systemctl start display-manager.service
|
||||
|
||||
# Return host to all cores
|
||||
systemctl set-property --runtime -- user.slice AllowedCPUs=0-31
|
||||
systemctl set-property --runtime -- system.slice AllowedCPUs=0-31
|
||||
systemctl set-property --runtime -- init.scope AllowedCPUs=0-31
|
||||
|
||||
# Change to powersave governor
|
||||
echo powersave | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
'';
|
||||
in {
|
||||
options.hardware.gpu-passthru = with types; {
|
||||
enable = mkBoolOpt false "Enable support for single gpu-passthru";
|
||||
|
|
@ -113,106 +211,22 @@ in {
|
|||
};
|
||||
|
||||
"libvirt/hooks/qemu.d/win10/prepare/begin/start.sh" = {
|
||||
text = ''
|
||||
#!/run/current-system/sw/bin/bash
|
||||
|
||||
# Debugging
|
||||
exec 19>/home/zoey/Desktop/startlogfile
|
||||
BASH_XTRACEFD=19
|
||||
set -x
|
||||
|
||||
# Load variables we defined
|
||||
source "/etc/libvirt/hooks/kvm.conf"
|
||||
|
||||
# Change to performance governor
|
||||
echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
|
||||
# Isolate host to core 0
|
||||
systemctl set-property --runtime -- user.slice AllowedCPUs=0-8
|
||||
systemctl set-property --runtime -- system.slice AllowedCPUs=0-8
|
||||
systemctl set-property --runtime -- init.scope AllowedCPUs=0-8
|
||||
|
||||
# disable vpn
|
||||
mullvad disconnect -w
|
||||
|
||||
# Logout
|
||||
# source "/home/owner/Desktop/Sync/Files/Tools/logout.sh"
|
||||
|
||||
# Stop display manager
|
||||
systemctl stop display-manager.service
|
||||
killall gdm-wayland-session
|
||||
killall niri
|
||||
killall niri-session
|
||||
|
||||
# Unbind VTconsoles
|
||||
echo 0 > /sys/class/vtconsole/vtcon0/bind
|
||||
echo 0 > /sys/class/vtconsole/vtcon1/bind
|
||||
|
||||
# Unbind EFI Framebuffer
|
||||
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
|
||||
|
||||
# Avoid race condition
|
||||
sleep 5
|
||||
|
||||
# Unload NVIDIA kernel modules
|
||||
modprobe -r nvidia_drm nvidia_modeset nvidia_uvm nvidia
|
||||
|
||||
# Detach GPU devices from host
|
||||
virsh nodedev-detach $VIRSH_GPU_VIDEO
|
||||
virsh nodedev-detach $VIRSH_GPU_AUDIO
|
||||
|
||||
# Load vfio module
|
||||
modprobe vfio-pci
|
||||
'';
|
||||
text = startScript;
|
||||
mode = "0755";
|
||||
};
|
||||
|
||||
"libvirt/hooks/qemu.d/win10/release/end/stop.sh" = {
|
||||
text = ''
|
||||
#!/run/current-system/sw/bin/bash
|
||||
text = stopScript;
|
||||
mode = "0755";
|
||||
};
|
||||
|
||||
# Debugging
|
||||
exec 19>/home/zoey/Desktop/stoplogfile
|
||||
BASH_XTRACEFD=19
|
||||
set -x
|
||||
"libvirt/hooks/qemu.d/bazzite/prepare/begin/start.sh" = {
|
||||
text = startScript;
|
||||
mode = "0755";
|
||||
};
|
||||
|
||||
# Load variables we defined
|
||||
source "/etc/libvirt/hooks/kvm.conf"
|
||||
|
||||
# Unload vfio module
|
||||
modprobe -r vfio-pci
|
||||
|
||||
# Attach GPU devices from host
|
||||
virsh nodedev-reattach $VIRSH_GPU_VIDEO
|
||||
virsh nodedev-reattach $VIRSH_GPU_AUDIO
|
||||
|
||||
# Read nvidia x config
|
||||
nvidia-xconfig --query-gpu-info > /dev/null 2>&1
|
||||
|
||||
# Load NVIDIA kernel modules
|
||||
modprobe nvidia_drm nvidia_modeset nvidia_uvm nvidia
|
||||
|
||||
# Avoid race condition
|
||||
sleep 5
|
||||
|
||||
# Bind EFI Framebuffer
|
||||
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/bind
|
||||
|
||||
# Bind VTconsoles
|
||||
echo 1 > /sys/class/vtconsole/vtcon0/bind
|
||||
echo 1 > /sys/class/vtconsole/vtcon1/bind
|
||||
|
||||
# Start display manager
|
||||
systemctl start display-manager.service
|
||||
|
||||
# Return host to all cores
|
||||
systemctl set-property --runtime -- user.slice AllowedCPUs=0-31
|
||||
systemctl set-property --runtime -- system.slice AllowedCPUs=0-31
|
||||
systemctl set-property --runtime -- init.scope AllowedCPUs=0-31
|
||||
|
||||
# Change to powersave governor
|
||||
echo powersave | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
'';
|
||||
"libvirt/hooks/qemu.d/bazzite/release/end/stop.sh" = {
|
||||
text = stopScript;
|
||||
mode = "0755";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue