Advertisement
SpiderLordCoder1st

Untitled

Apr 18th, 2024
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. { pkgs, lib, ... }:
  2. {
  3. boot = {
  4. kernelParams = [
  5. "iommu=pt"
  6. "intel_iommu=on"
  7. "vfio_iommu_type1.allow_unsafe_interrupts=1"
  8. "kvm.ignore_msrs=1"
  9. ];
  10. };
  11. virtualisation = {
  12. libvirtd = {
  13. enable = true;
  14. qemu = {
  15. runAsRoot = true;
  16. ovmf.enable = true;
  17. verbatimConfig = ''
  18. user = "spiderunderurbed"
  19. group = "users"
  20. namespaces = []
  21. '';
  22. };
  23. };
  24. };
  25. environment = {
  26. systemPackages = [ pkgs.dmidecode ];
  27. shellAliases = {
  28. vm-start = "virsh start win11";
  29. vm-stop = "virsh shutdown win11";
  30. };
  31. };
  32.  
  33. programs.virt-manager.enable = true;
  34.  
  35. virtualisation.libvirtd.hooks.qemu = {
  36. "AAA" = lib.getExe (
  37. pkgs.writeShellApplication {
  38. name = "qemu-hook";
  39.  
  40. runtimeInputs = [
  41. pkgs.libvirt
  42. pkgs.systemd
  43. pkgs.kmod
  44. ];
  45.  
  46. text = ''
  47. GUEST_NAME="$1"
  48. OPERATION="$2"
  49.  
  50. echo "$1"
  51. echo "$2"
  52.  
  53. if [ "$GUEST_NAME" != "win11" ]; then
  54. exit 0
  55. fi
  56.  
  57. if [ "$OPERATION" == "prepare" ]; then
  58. systemctl stop display-manager.service
  59. modprobe -r -a nvidia_uvm nvidia_drm nvidia nvidia_modeset
  60. virsh nodedev-detach pci_0000_01_00_0
  61. virsh nodedev-detach pci_0000_01_00_1
  62. #fix me
  63. #systemctl set-property --runtime -- user.slice AllowedCPUs=8-15,24-31
  64. #systemctl set-property --runtime -- system.slice AllowedCPUs=8-15,24-31
  65. #systemctl set-property --runtime -- init.scope AllowedCPUs=8-15,24-31
  66. systemctl start display-manager.service
  67. fi
  68.  
  69. if [ "$OPERATION" == "release" ]; then
  70. systemctl stop display-manager.service
  71. #fix me
  72. #systemctl set-property --runtime -- user.slice AllowedCPUs=0-31
  73. #systemctl set-property --runtime -- system.slice AllowedCPUs=0-31
  74. #systemctl set-property --runtime -- init.scope AllowedCPUs=0-31
  75. virsh nodedev-reattach pci_0000_01_00_0
  76. virsh nodedev-reattach pci_0000_01_00_1
  77. modprobe -a nvidia_uvm nvidia_drm nvidia nvidia_modeset
  78. systemctl start display-manager.service
  79. fi
  80.  
  81. '';
  82. }
  83. );
  84. };
  85. }
  86.  
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement