Guest User

Untitled

a guest
Sep 27th, 2024
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #!/bin/ash
  2.  
  3. vbios='/home/robert/qemu/NVIDIA Quadro M2000 GPU GM206 BIOS Version 84.06.62.00.07-patched.rom'
  4.  
  5. dvideo='0000:04:00.0'
  6.  
  7. daudio='0000:04:00.1'
  8.  
  9. dusbc='0000:00:14.0'
  10.  
  11. daudio2='0000:00:1b.0'
  12.  
  13. numthreads=6
  14.  
  15. ARGS_passthrough="-device vfio-pci,host=$dusbc,id=usb_controller \
  16.  
  17. -device vfio-pci,host=$daudio2,id=audiodev"
  18.  
  19. ARGS_passthrough+=" -vga none \
  20.  
  21. -nographic \
  22.  
  23. -device vfio-pci,host=$dvideo,id=M2000_video,x-vga=on,multifunction=on,romfile=\"$vbios\" \
  24.  
  25. -device vfio-pci,host=$daudio,id=M2000_audio"
  26.  
  27. ARGS_base="\
  28.  
  29. -name guest=win10,debug-threads=on \
  30.  
  31. -machine q35,accel=kvm \
  32.  
  33. -monitor stdio \
  34.  
  35. -serial none \
  36.  
  37. -cpu host,hv-vendor-id=whatever,kvm=off \
  38.  
  39. -enable-kvm \
  40.  
  41. -smp $numthreads,sockets=1,dies=1,threads=1 \
  42.  
  43. -m 32G \
  44.  
  45. -mem-prealloc \
  46.  
  47. -serial none \
  48.  
  49. -rtc clock=host,base=localtime \
  50.  
  51. -net nic,macaddr=00:50:56:a8:09:18 \
  52.  
  53. -drive file="/home/robert/qemu/Windows_10_21H1/drive1.qcow2",index=0,media=disk \
  54.  
  55. -drive file="/home/robert/qemu/Windows_10_21H1/drive2_data.qcow2",index=1,media=disk \
  56.  
  57. -usb"
  58.  
  59. doas /usr/local/bin/vfio.sh "$dusbc" unbind
  60.  
  61. doas /usr/local/bin/vfio.sh "$daudio2" unbind
  62.  
  63. doas /usr/local/bin/gpu_vfio.sh "$dvideo" "$daudio" unbind
  64.  
  65. cmd="qemu-system-x86_64 $ARGS_base"
  66.  
  67. cmd+=" $ARGS_passthrough"
  68.  
  69. echo "$cmd"
  70.  
  71. eval "$cmd" &
  72.  
  73. pid=$!
  74.  
  75. echo "QEMU PID $pid"
  76.  
  77. sleep 5
  78.  
  79. echo
  80.  
  81. hostcpu=(0 1 2 3 4 5 12 13 14 15 16 17)
  82.  
  83. for cpu in $(seq 0 $numthreads)
  84.  
  85. do
  86.  
  87. p="$(ps -T | \
  88.  
  89. grep -m1 "CPU $cpu/KVM" | \
  90.  
  91. grep -v grep | \
  92.  
  93. awk -F" " '{print $1}')"
  94.  
  95. if ! [ -z "$p" ]
  96.  
  97. then
  98.  
  99. if [ -z "${hostcpu[cpu]}" ]
  100.  
  101. then
  102.  
  103. echo "cpu$cpu pinning not set"
  104.  
  105. else
  106.  
  107. taskset -pc ${hostcpu[cpu]} $p
  108.  
  109. #sudo /usr/bin/renice -22 $p
  110.  
  111. fi
  112.  
  113. fi
  114.  
  115. done
  116.  
  117. grep -i huge /proc/meminfo
  118.  
  119. while kill -s 0 $pid
  120.  
  121. do
  122.  
  123. sleep 2
  124.  
  125. done
  126.  
  127. echo "qemu is done"
  128.  
  129. doas /usr/local/bin/gpu_vfio.sh "$dvideo" "$daudio" bind
  130.  
  131. doas /usr/local/bin/vfio.sh "$daudio2" bind
  132.  
  133. doas /usr/local/bin/vfio.sh "$dusbc" bind
Advertisement
Add Comment
Please, Sign In to add comment