KVM, PCI passthrough, рд▓реБрдХрд┐рдВрдЧ рдЧреНрд▓рд╛рд╕ рдФрд░ рдСрд▓-рдСрд▓-рдСрд▓

рд▓рд┐рдирдХреНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдлрд▓ рд╕рдВрдХреНрд░рдордг рдХреЗ рдмрд╛рдж, рд╡рд╣ рдХреНрд╖рдг рдЖрдпрд╛ рдЬрдм рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдореБрдЦреНрдп рдУрдПрд╕ рдХреЛ рднреА рдмрджрд▓ рджрд┐рдпрд╛ред рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдХреНрд░реЛ-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдХрд╛рд░рдг рдЪрд┐рдВрддрд╛рдПрдБ рдереАрдВред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╢рд░рд╛рдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреБрдЫ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╢рд░рд╛рдм рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред QEMU + KVM рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЪрд▓рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд░реНрдЪреБрдЕрд▓ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ 3 рдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдмрд╣реБрдд рдорд╛рдореВрд▓реА рд╣реИред рдореБрдЭреЗ рдЯреИрдореНрдмреЛрд░рд┐рди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдерд╛ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рддрд▓рд╛рд╢рдирд╛ рдерд╛ред

рдЕрддрд┐рдерд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ!


рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреИрдореНрдмреЛрд░рд┐рди рдХреЛ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рдЕрдЬреАрдм рдирд┐рдХрд▓рд╛ред рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░, рдЗрдВрдЯрд░рдиреЗрдЯ рд╡рд┐рднрд┐рдиреНрди рд╕рдордпреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╣реИред рдЖрд░реНрдХ рд▓рд┐рдирдХреНрд╕ рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд▓реЗрдЦ рд╣реИ [0] ред рдореИрдВ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрд╕реНрдХрд░рдг рджреВрдВрдЧрд╛ред

0. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ IOMMU рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ [рез] ред

1. рд╣рдо рдПрдХ рдХрд░реНрдиреЗрд▓ рдореЗрдВ IOMMU рдХрд╛ рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред


рдмрд┐рд▓реНрд▓реА / рдЖрджрд┐ / рдбрд┐рдлрд╝реЙрд▓реНрдЯ / рдЧреНрд░рдм
GRUB_CMDLINE_LINUX_DEFAULT = "рд╢рд╛рдВрдд рдЫрдк amd_iommu = рдкрд░"
рдпрд╛
GRUB_CMDLINE_LINUX_DEFAULT = "рд╢рд╛рдВрдд рдЫрдк Intel_iommu = рдкрд░"


sudo update-grub рдордд рднреВрд▓рдирд╛ред

2. рд╣рдо рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ


рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

lspci -nnk
04: 00.0 рд╡реАрдЬреАрдП рд╕рдВрдЧрдд рдирд┐рдпрдВрддреНрд░рдХ [0300]: рдПрдирд╡реАрдЖрдИрдбреАрдЖрдИрдП рдХреЙрд░реНрдкреЛрд░реЗрд╢рди GT218 [GeForce 210] [ 10de: 0a65 ] (Rev a2)
рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдЪрд╛рд▓рдХ: рдиреЛрд╡реНрдпреВ
рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓: nvidiafb, nouveau
04: 00.1 рдСрдбрд┐рдпреЛ рдбрд┐рд╡рд╛рдЗрд╕ [0403]: рдПрдирд╡реАрдЖрдИрдбреАрдЖрдИрдП рдХреЙрд░реНрдкреЛрд░реЗрд╢рди рд╣рд╛рдИ рдбреЗрдлрд┐рдирд┐рд╢рди рдСрдбрд┐рдпреЛ рдХрдВрдЯреНрд░реЛрд▓рд░ [ 10de: 0be3 ] (a1 рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ)
рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдЪрд╛рд▓рдХ: snd_hda_intel
рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓: snd_hda_intel


VFIO рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рд╡реЗ рдмреВрдЯ рд╕рдордп рдкрд░ рд▓реЛрдб рд╣реЛрдВред

рдмрд┐рд▓реНрд▓реА / рдЖрджрд┐ / рдореЙрдбреНрдпреВрд▓ | grep vfio
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd


рд╣рдо VFIO рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░реЗ, рдЬрд┐рд╕рд╕реЗ рдореБрдЦреНрдп рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдореБрдЦреНрдп рдЪрд╛рд▓рдХ рдХреЛ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

cat /etc/modprobe.d/vfio.conf
рд╡рд┐рдХрд▓реНрдк vfio-pci ids = 10de: 0a65,10de: 0be3
рдмреНрд▓реИрдХ рд▓рд┐рд╕реНрдЯреЗрдб рдиреЛрд╡реНрдпреВ


3. рд░рд┐рдмреВрдЯ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛


IOMMU рдЪрд╛рд▓реВ рд╣реБрдЖред

dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
DMAR: Intel┬о рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рдлреЙрд░ рдбрд╛рдпрд░реЗрдХреНрдЯреЗрдб I / O
рдпрд╛
AMD-Vi: 0000: 00: 00.2 рдХреИрдк 0x40 рдкрд░ IOMMU рдорд┐рд▓рд╛
AMD-Vi: рдЗрдВрдЯрд░рдкреНрдЯ рд░реАрдореИрдкрд┐рдВрдЧ рд╕рдХреНрд╖рдо
AMD-Vi: рдЖрд▓рд╕реА IO / TLB рдлреНрд▓рд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реИ


рд╕рдордЧреНрд░ рдЙрдкрдХрд░рдг рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдЧрд┐рд░ рдЧрдПред

рдХреЗ рд▓рд┐рдП / sys / рдХрд░реНрдиреЗрд▓ / iommu_groups / * рдореЗрдВ; $ -type l рдЦреЛрдЬреЗрдВ; рд╣реЛ рдЧрдпрд╛ | рд╕реЙрд░реНрдЯ --version- рд╕реЙрд░реНрдЯ
/sys/kernel/iommu_groups/15/devices/0000:01:00.0
/sys/kernel/iommu_groups/15/devices/0000:01:00.1
/sys/kernel/iommu_groups/16/devices/0000:02:00.0
/sys/kernel/iommu_groups/17/devices/0000:03:00.0
/sys/kernel/iommu_groups/18/devices/0000:04:00.0
/sys/kernel/iommu_groups/18/devices/0000:04:00.1


KVM рдФрд░ VFIO рдбреНрд░рд╛рдЗрд╡рд░ рд▓реЛрдб рдХрд┐рдП рдЧрдПред

lsmod | grep -e kvm -e vfio
 kvm_amd 94208 0
 ccp 90112 1 kvm_amd
 kvm 622592 1 kvm_amd
 vfio_pci 45056 0
 vfio_virqfd 16384 1 vfio_pci
 irqbypass 16384 2 vfio_pci, kvm
 vfio_iommu_type1 24576 0
 vfio 28672 2 vfio_iommu_type1, vfio_pci


VFIO рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝реЗ рдЧрдП рдЕрддрд┐рдерд┐ OS рдХреЗ рд▓рд┐рдП рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдбред

lspci -nnk
04: 00.0 рд╡реАрдЬреАрдП рд╕рдВрдЧрдд рдирд┐рдпрдВрддреНрд░рдХ [0300]: рдПрдирд╡реАрдЖрдИрдбреАрдЖрдИрдП рдХреЙрд░реНрдкреЛрд░реЗрд╢рди GT218 [GeForce 210] [ 10de: 0a65 ] (Rev a2)
рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдЪрд╛рд▓рдХ: vfio-pci
рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓: nvidiafb, nouveau
04: 00.1 рдСрдбрд┐рдпреЛ рдбрд┐рд╡рд╛рдЗрд╕ [0403]: рдПрдирд╡реАрдЖрдИрдбреАрдЖрдИрдП рдХреЙрд░реНрдкреЛрд░реЗрд╢рди рд╣рд╛рдИ рдбреЗрдлрд┐рдирд┐рд╢рди рдСрдбрд┐рдпреЛ рдХрдВрдЯреНрд░реЛрд▓рд░ [ 10de: 0be3 ] (a1 рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ)
рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдЪрд╛рд▓рдХ: vfio-pci
рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓: snd_hda_intel


4. QEMU рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдЕрддрд┐рдерд┐ OS рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ


рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ
sudo apt install qemu-kvm qemu-utils рд╕реАрдмрд┐рдпреЛрд╕ рдУрд╡рдордл рдЧреБрдг-рджрд░реНрд╢рдХ

рдПрдХ рдбрд┐рд╕реНрдХ рдмрдирд╛рдПрдВ рдЬрд╣рд╛рдВ рдЕрддрд┐рдерд┐ рдУрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
qemu-img create -f raw -o propllocation = рдкреВрд░реНрдг рдЕрддрд┐рдерд┐ редimg 50G
рдпрд╛
fallocate -l 50G guest.img

рд╣рдо рдЕрддрд┐рдерд┐ рдУрдПрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд▓реБрдХрд┐рдВрдЧ рдЧреНрд▓рд╛рд╕ рдкрд░ рдПрдХ рджреГрд╖реНрдЯрд┐ рд╣реИ, рдЕрддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ 10 рдЪреБрдирдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдирд╡реАрдирддрдо рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рдВрдбреЛрдЬ 8 / 8.1 рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИред

vga_qxl.sh
#! / рдмрд┐рди / рдмреИрд╢
рджреВрд░рд╕реНрде-рджрд░реНрд╢рдХ рдорд╕рд╛рд▓рд╛: //127.0.0.1: 5900 &
рд╕реБрдбреВ рдХреНрдпреВрдореБ-рд╕рд┐рд╕реНрдЯрдо-x86_64 \
-machine q35, рддреНрд╡рд░рдг = kvm \
-рдпреЛрдЧреНрдп- kvm \
-рдХрдВрдкреНрдЯреА рд╣реЛрд╕реНрдЯ, kvm = off, check \
-sp cpus = 2, рдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛ= 1, рдХреЛрд░ = 2, рдзрд╛рдЧреЗ = 1 \
-рдо 6G \ _
-rtc рдЖрдзрд╛рд░ = рд╕реНрдерд╛рдиреАрдп рд╕рдордп, рдШрдбрд╝реА = host \
-рджреЗрд╡рд┐рд╕ рдкреАрдЖрдИрдПрдХреНрд╕ 3-рдпреВрдПрд╕рдмреА-рдЙрд╢реА \ _
-рджреЗрд╡реА usb-tablet \ _
-Drive if = pflash, format = raw, readonly, file = / usr / share / OVMF / OVMF_CODE.fd \
-Drive рдлрд╝рд╛рдЗрд▓ = 'w10.iso', рдпрджрд┐ = ide, рд╕реНрд╡рд░реВрдк = рдХрдЪреНрдЪрд╛, рд╕реВрдЪрдХрд╛рдВрдХ = 2, рдореАрдбрд┐рдпрд╛ = cdrom, рдХреИрд╢ = рдХреЛрдИ рдирд╣реАрдВ
-drive рдлрд╝рд╛рдЗрд▓ = 'virtio-win-0.1.141_st.iso', рдЕрдЧрд░ = ide, рдлреЙрд░реНрдореЗрдЯ = рд░реЙ, рдЗрдВрдбреЗрдХреНрд╕ = 3, рдореАрдбрд┐рдпрд╛ = cdrom, рдХреИрд╢ = рдХреЛрдИ рдирд╣реАрдВ
-Drive рдлрд╝рд╛рдЗрд▓ = 'guest.img', if = ide, format = raw, index = 4, media = disk, cache =back =
-Vga qxl \
-рд╕реНрдкрд╛рдЗрд╕ рдкреЛрд░реНрдЯ = 5900, рдПрдбреНрд░ = 127.0.0.1, рдЕрдХреНрд╖рдо-рдЯрд┐рдХрдЯрд┐рдВрдЧ \
-рд╕рдВрд╕реНрдерд╛рдкрдХ stdio \
-рдиреЗрдЯрджреЗрд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЖрдИрдбреА = n1, ipv6 = off, smb = "/ media / user / data" \
-рджреЗрд╡реА e1000, netdev = n1, mac = 67: 77: 78: 88: 89: 99 \
"$ @"

5. рд╣рдо рдЕрддрд┐рдерд┐ рдУрдПрд╕ рдХреЛ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ


рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдмреВрдЯ рдХрд░реЗрдВред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд╛рд░реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЙрд╕ рдкрд░ рд░рдЦреЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

vga_qxl_pass.sh
#! / рдмрд┐рди / рдмреИрд╢
рджреВрд░рд╕реНрде-рджрд░реНрд╢рдХ рдорд╕рд╛рд▓рд╛: //127.0.0.1: 5900 &
рд╕реБрдбреВ рдХреНрдпреВрдореБ-рд╕рд┐рд╕реНрдЯрдо-x86_64 \
-machine q35, рддреНрд╡рд░рдг = kvm \
-рдпреЛрдЧреНрдп- kvm \
-рдХрдВрдкреНрдЯреА рд╣реЛрд╕реНрдЯ, kvm = off, check \
-sp cpus = 2, рдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛ= 1, рдХреЛрд░ = 2, рдзрд╛рдЧреЗ = 1 \
-рдо 6G \ _
-rtc рдЖрдзрд╛рд░ = рд╕реНрдерд╛рдиреАрдп рд╕рдордп, рдШрдбрд╝реА = host \
-рджреЗрд╡рд┐рд╕ рдкреАрдЖрдИрдПрдХреНрд╕ 3-рдпреВрдПрд╕рдмреА-рдЙрд╢реА \ _
-рджреЗрд╡реА usb-tablet \ _
-Drive if = pflash, format = raw, readonly, file = / usr / share / OVMF / OVMF_CODE.fd \
-drive рдлрд╝рд╛рдЗрд▓ = 'virtio-win-0.1.141_st.iso', рдЕрдЧрд░ = ide, рдлреЙрд░реНрдореЗрдЯ = рд░реЙ, рдЗрдВрдбреЗрдХреНрд╕ = 3, рдореАрдбрд┐рдпрд╛ = cdrom, рдХреИрд╢ = рдХреЛрдИ рдирд╣реАрдВ
-Drive рдлрд╝рд╛рдЗрд▓ = 'guest.img', if = ide, format = raw, index = 4, media = disk, cache =back =
-Vga qxl \
-рд╕реНрдкрд╛рдЗрд╕ рдкреЛрд░реНрдЯ = 5900, рдПрдбреНрд░ = 127.0.0.1, рдЕрдХреНрд╖рдо-рдЯрд┐рдХрдЯрд┐рдВрдЧ \
-рджреЗрд╡рд┐рд╕ ioh3420, рдмрд╕ = pcie.0, addr = 1c.0, рдмрд╣реБрдХреНрд░рд┐рдпрд╛ = рдЪрд╛рд▓реВ, рдмрдВрджрд░рдЧрд╛рд╣ = 1, рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬрд╝ = 1, рдЖрдИрдбреА = рд░реВрдЯ \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.0, рдмрд╕ = рд░реВрдЯ, addr = 00.0, рдорд▓реНрдЯреАрдлрд╝рдВрдХреНрд╢рди = on \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.1, рдмрд╕ = рд░реВрдЯ, addr = 00.1 \
-рд╕рдВрд╕реНрдерд╛рдкрдХ stdio \
-рдиреЗрдЯрджреЗрд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЖрдИрдбреА = n1, ipv6 = off, smb = "/ media / user / data" \
-рджреЗрд╡реА e1000, netdev = n1, mac = 67: 77: 78: 88: 89: 99 \
"$ @"

рдлреЙрд░рд╡рд░реНрдб рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдиреЗрдЬрд░ "рдбрд┐рд╡рд╛рдЗрд╕ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ" рд▓рд┐рдЦрддрд╛ рд╣реИ, рд╣рдо рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рдХреЗрд╡рд▓ рдлреЙрд░рд╡рд░реНрдб рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

vga_pass.sh
#! / рдмрд┐рди / рдмреИрд╢
рд╕реБрдбреВ рдХреНрдпреВрдореБ-рд╕рд┐рд╕реНрдЯрдо-x86_64 \
-machine q35, рддреНрд╡рд░рдг = kvm \
-рдпреЛрдЧреНрдп- kvm \
-рдХрдВрдкреНрдЯреА рд╣реЛрд╕реНрдЯ, kvm = off, check \
-sp cpus = 2, рдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛ= 1, рдХреЛрд░ = 2, рдзрд╛рдЧреЗ = 1 \
-рдо 6G \ _
-rtc рдЖрдзрд╛рд░ = рд╕реНрдерд╛рдиреАрдп рд╕рдордп, рдШрдбрд╝реА = host \
-рджреЗрд╡рд┐рд╕ рдкреАрдЖрдИрдПрдХреНрд╕ 3-рдпреВрдПрд╕рдмреА-рдЙрд╢реА \ _
-рджреЗрд╡реА usb-tablet \ _
-Drive if = pflash, format = raw, readonly, file = / usr / share / OVMF / OVMF_CODE.fd \
-drive рдлрд╝рд╛рдЗрд▓ = 'virtio-win-0.1.141_st.iso', рдЕрдЧрд░ = ide, рдлреЙрд░реНрдореЗрдЯ = рд░реЙ, рдЗрдВрдбреЗрдХреНрд╕ = 3, рдореАрдбрд┐рдпрд╛ = cdrom, рдХреИрд╢ = рдХреЛрдИ рдирд╣реАрдВ
-Drive рдлрд╝рд╛рдЗрд▓ = 'guest.img', if = ide, format = raw, index = 4, media = disk, cache =back =
-Vga рдХреЛрдИ рдирд╣реАрдВ
-рджреЗрд╡рд┐рд╕ ioh3420, рдмрд╕ = pcie.0, addr = 1c.0, рдмрд╣реБрдХреНрд░рд┐рдпрд╛ = рдЪрд╛рд▓реВ, рдмрдВрджрд░рдЧрд╛рд╣ = 1, рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬрд╝ = 1, рдЖрдИрдбреА = рд░реВрдЯ \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.0, рдмрд╕ = рд░реВрдЯ, addr = 00.0, рдорд▓реНрдЯреАрдлрд╝рдВрдХреНрд╢рди = on \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.1, рдмрд╕ = рд░реВрдЯ, addr = 00.1 \
-рд╕рдВрд╕реНрдерд╛рдкрдХ stdio \
-рдиреЗрдЯрджреЗрд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЖрдИрдбреА = n1, ipv6 = off, smb = "/ media / user / data" \
-рджреЗрд╡реА e1000, netdev = n1, mac = 67: 77: 78: 88: 89: 99 \
"$ @"

рд╣рдо рдЗрд╕реЗ рдПрдХ рдореЙрдирд┐рдЯрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрддрд┐рдерд┐ рдУрдПрд╕ рдХреА рдбреЗрд╕реНрдХрдЯреЙрдк рдЫрд╡рд┐ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред

рд╡рд╣ рд╕реНрдерд╛рди рдЬрд╣рд╛рдБ рд╕рд╛рдзрд╛рд░рдг рдирд┐рд░реНрдгрдп рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ


рдФрд░ рдлрд┐рд░ рдордЬрд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдХреЛрдИ рд╣реИ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдЪрд┐рддреНрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдЫрд╡рд┐ рдХреА рдХрдореА рдХреЗ рд╕реНрддрд░ рдкрд░ рджреЛ рдмрд╛рд░ рдареЛрдХрд░ рдЦрд╛ рдЧрдпрд╛ред рдкрд╣рд▓реА рдмрд╛рд░ рдЗрдВрдЯреЗрд▓ 6700T HD 530 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдПрдХреАрдХреГрдд рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рдЦрд╛рд▓реА рдереЗ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдкреНрд▓рдЧ-рдЗрди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реА рдмрд╛рд░ рдмрд╛рд╣рд░реА рдПрдирд╡реАрдбрд┐рдпрд╛ GF210 рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд░реАрджрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рдФрд░ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред рдЧреИрд░ рдИрдПрдлрдЖрдИ рдореЛрдб рдореЗрдВ, рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЖрдЧреЗ рдмрдврд╝рд╛ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рддрд╕реНрд╡реАрд░ рднреА рджрд┐рдЦрд╛рдИ рдЧрдИ, рд▓реЗрдХрд┐рди рдЕрддрд┐рдерд┐ рдУрдПрд╕ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред

рдмрд╛рдж рдореЗрдВ рдЕрдЧреНрд░реЗрд╖рдг рдХреЗрд╡рд▓ рд╣реЛрд╕реНрдЯ рдХреЛ рд▓рдЯрдХрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреА рдЖрд╕рд╛рди рдЧреБрдЧрд▓реА рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЛ рдлреНрд░реАрдЬрд╝ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛рдлреА рдЖрдо рд╣реИред рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдЧрд▓рдд рд╢рдЯрдбрд╛рдЙрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдореМрдХреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╣реА рд╢рдЯрдбрд╛рдЙрди рднреАред рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕реЗ EFI рдореЛрдб рдореЗрдВ рдлреЙрд░рд╡рд░реНрдб рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди VBIOS Nvidia GF210 рдИрдПрдлрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ ...

рд╕рд┐рд▓рд╛рдИ рдХрд░рдирд╛ рдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛, рдпрд╣реА рд╕рд╡рд╛рд▓ рд╣реИ


рд╕рд┐рд▓рд╛рдИ рдордд рдХрд░реЛред рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп QEMU VBIOS рд╕реНрдкреВрдлрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрднреА рднреА VBIOS рдХреЛ EFI рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЬрд╛рдБрдЪрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ [2] ред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХреЛ рдЬреЛ рд╣реИ, рдЙрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдИрдПрдлрдЖрдИ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдирдП рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреА рддрд▓рд╛рд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ VBIOS рдХреЛ рдкреИрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред VBIOS рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЧрдП рд╕рднреА рдСрдкрд░реЗрд╢рди рдЖрдкрдХреЗ рдЬреЛрдЦрд┐рдо рдкрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рд╕реЗ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рдФрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ [3] ред VBIOS рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ gt210.rom , рдкреИрдЪ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ gt210_uefi.rom ред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЛ рдкрд░реНрдЪреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

vga_pass_rom.sh
#! / рдмрд┐рди / рдмреИрд╢
рд╕реБрдбреВ рдХреНрдпреВрдореБ-рд╕рд┐рд╕реНрдЯрдо-x86_64 \
-machine q35, рддреНрд╡рд░рдг = kvm \
-рдпреЛрдЧреНрдп- kvm \
-рдХрдВрдкреНрдЯреА рд╣реЛрд╕реНрдЯ, kvm = off, check \
-sp cpus = 2, рдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛ= 1, рдХреЛрд░ = 2, рдзрд╛рдЧреЗ = 1 \
-рдо 6G \ _
-rtc рдЖрдзрд╛рд░ = рд╕реНрдерд╛рдиреАрдп рд╕рдордп, рдШрдбрд╝реА = host \
-рджреЗрд╡рд┐рд╕ рдкреАрдЖрдИрдПрдХреНрд╕ 3-рдпреВрдПрд╕рдмреА-рдЙрд╢реА \ _
-рджреЗрд╡реА usb-tablet \ _
-Drive if = pflash, format = raw, readonly, file = / usr / share / OVMF / OVMF_CODE.fd \
-drive рдлрд╝рд╛рдЗрд▓ = 'virtio-win-0.1.141_st.iso', рдЕрдЧрд░ = ide, рдлреЙрд░реНрдореЗрдЯ = рд░реЙ, рдЗрдВрдбреЗрдХреНрд╕ = 3, рдореАрдбрд┐рдпрд╛ = cdrom, рдХреИрд╢ = рдХреЛрдИ рдирд╣реАрдВ
-Drive рдлрд╝рд╛рдЗрд▓ = 'guest.img', if = ide, format = raw, index = 4, media = disk, cache =back =
-Vga рдХреЛрдИ рдирд╣реАрдВ
-рджреЗрд╡рд┐рд╕ ioh3420, рдмрд╕ = pcie.0, addr = 1c.0, рдмрд╣реБрдХреНрд░рд┐рдпрд╛ = рдЪрд╛рд▓реВ, рдмрдВрджрд░рдЧрд╛рд╣ = 1, рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬрд╝ = 1, рдЖрдИрдбреА = рд░реВрдЯ \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.0, рдмрд╕ = рд░реВрдЯ, addr = 00.0, рдмрд╣реБрдХреНрд░рд┐рдпрд╛ = рдкрд░, romfile = gt210_uefi.rom \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.1, рдмрд╕ = рд░реВрдЯ, addr = 00.1 \
-рд╕рдВрд╕реНрдерд╛рдкрдХ stdio \
-рдиреЗрдЯрджреЗрд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЖрдИрдбреА = n1, ipv6 = off, smb = "/ media / user / data" \
-рджреЗрд╡реА e1000, netdev = n1, mac = 67: 77: 78: 88: 89: 99 \
"$ @"

рд╣рдо рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВред

рдЕрдВрдзреЗрд░рд╛


рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рдЪрдордХ рдЧрдПред рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдиреИрддрд┐рдХрддрд╛ рдиреЗ рдЕрд╕рдлрд▓рддрд╛ рдХреА рдкрд░реАрдХреНрд╖рд╛ рдкрд╛рд╕ рдХреАред рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЕрддрд┐рдерд┐ OS рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЙрдЧ, рдореБрдЭреЗ рдЙрд╕рдХреЗ рд▓реЙрдЧ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, vga_qxl.sh ред рд╣рдо рдкрд┐рдЫрд▓реЗ рд▓реЙрдиреНрдЪ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдФрд░ рд╡рд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рднреЛрдЬрди рддреЗрдЬреА рд╕реЗ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдЖрд░рдбреАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдФрд░ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡реАрдПрдирд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддрдВрдЧ [4] ред рд╣рдо рд╡реАрдПрдирд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдкреЛрд░реНрдЯ 5600 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣реЛрд╕реНрдЯ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреЛрд░реНрдЯ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

vga_vnc_pass_rom.sh
#! / рдмрд┐рди / рдмреИрд╢
рд╕реБрдбреВ рдХреНрдпреВрдореБ-рд╕рд┐рд╕реНрдЯрдо-x86_64 \
-machine q35, рддреНрд╡рд░рдг = kvm \
-рдпреЛрдЧреНрдп- kvm \
-рдХрдВрдкреНрдЯреА рд╣реЛрд╕реНрдЯ, kvm = off, check \
-sp cpus = 2, рдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛ= 1, рдХреЛрд░ = 2, рдзрд╛рдЧреЗ = 1 \
-рдо 6G \ _
-rtc рдЖрдзрд╛рд░ = рд╕реНрдерд╛рдиреАрдп рд╕рдордп, рдШрдбрд╝реА = host \
-рджреЗрд╡рд┐рд╕ рдкреАрдЖрдИрдПрдХреНрд╕ 3-рдпреВрдПрд╕рдмреА-рдЙрд╢реА \ _
-рджреЗрд╡реА usb-tablet \ _
-Drive if = pflash, format = raw, readonly, file = / usr / share / OVMF / OVMF_CODE.fd \
-drive рдлрд╝рд╛рдЗрд▓ = 'virtio-win-0.1.141_st.iso', рдЕрдЧрд░ = ide, рдлреЙрд░реНрдореЗрдЯ = рд░реЙ, рдЗрдВрдбреЗрдХреНрд╕ = 3, рдореАрдбрд┐рдпрд╛ = cdrom, рдХреИрд╢ = рдХреЛрдИ рдирд╣реАрдВ
-Drive рдлрд╝рд╛рдЗрд▓ = 'guest.img', if = ide, format = raw, index = 4, media = disk, cache =back =
-Vga рдХреЛрдИ рдирд╣реАрдВ
-рджреЗрд╡рд┐рд╕ ioh3420, рдмрд╕ = pcie.0, addr = 1c.0, рдмрд╣реБрдХреНрд░рд┐рдпрд╛ = рдЪрд╛рд▓реВ, рдмрдВрджрд░рдЧрд╛рд╣ = 1, рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬрд╝ = 1, рдЖрдИрдбреА = рд░реВрдЯ \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.0, рдмрд╕ = рд░реВрдЯ, addr = 00.0, рдмрд╣реБрдХреНрд░рд┐рдпрд╛ = рдкрд░, romfile = gt210_uefi.rom \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.1, рдмрд╕ = рд░реВрдЯ, addr = 00.1 \
-рд╕рдВрд╕реНрдерд╛рдкрдХ stdio \
-рдиреЗрдЯрджреЗрд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, id = n1, hostfwd = tcp: 127.0.0.1: 5600-: 5600, ipv6 = off, smb = "/ media / user / data" \
-рджреЗрд╡реА e1000, netdev = n1, mac = 67: 77: 78: 88: 89: 99 \
"$ @"

рд╣рдо рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрди рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдореЙрдирд┐рдЯрд░ рдореЗрдВ рдПрдХ рдЕрдЬреАрдм рдЬреЗрдиреЗрд░рд┐рдХ рдиреЙрди-рдкреАрдПрдирдкреА рдореЙрдирд┐рдЯрд░ рд╣реИ (рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдореЙрдирд┐рдЯрд░ рдкреАрдПрдирдкреА рдирд╣реАрдВ рд╣реИ)ред рдПрдХ рддрд╕реНрд╡реАрд░ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд▓реБрдХрд┐рдВрдЧ рдЧреНрд▓рд╛рд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд╛рдВрдЪ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ


рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рддрдХрдиреАрдХ OpenGL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди gl рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд▓ рдкрд░ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ [5] рдХреЛ рдкрдврд╝реЗрдВред рдЕрддрд┐рдерд┐ OS рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди - рдХреИрдкреНрдЪрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реБрдХрд┐рдВрдЧ-рдЧреНрд▓рд╛рд╕-host.exe [6] рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ Microsoft Visual C ++ 2015 Redistributable [7] рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ , IVSHMEM рдбрд┐рд╡рд╛рдЗрд╕ [8] рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред

build_looking_glass_a12.sh
#! / рдмрд┐рди / рдмреИрд╢
sudo apt-get install cmake libsdl2-dev libsdl2-ttf-dev nettle-dev рдмрд┐рдЫреБрдЖ-рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рджреЗрд╡ libfontconfig1-dev libx11-dev рдлрд╝реЙрдиреНрдЯреНрд╕
wget github.com/gnif/LookingGlass/archive/a12.tar.gz
tar -xf a12.tar.gz
рд╕реАрдбреА рд▓реБрдХрдЧреНрд▓рд╛рд╕ -12
mkdir рдХреНрд▓рд╛рдЗрдВрдЯ / рдмрд┐рд▓реНрдб
рд╕реАрдбреА рдЧреНрд░рд╛рд╣рдХ / рдирд┐рд░реНрдорд╛рдг
cmake ../
рдореЗрдХрдЕрдк

рд╣рдо рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ IVSHMEM рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред 32Mb рдореЗрдореЛрд░реА рд╕рд╛рдЗрдЬрд╝ 1920x1080 рдХреЗ рд░реЗрдЬреЛрд▓реНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред

vga_vnc_lg_pass_rom.sh
#! / рдмрд┐рди / рдмреИрд╢
рдЕрдЧрд░ [! -рдПрдл / рджреЗрд╡ / рд╢рдо / рддрд▓рд╛рд╢-рдЧрд┐рд▓рд╛рд╕]; рддреЛ
рд╕реНрдкрд░реНрд╢ / рджреЗрд╡ / рд╢рдо / рддрд▓рд╛рд╢-рдЧрд┐рд▓рд╛рд╕
chown `whoami`: kvm / dev / shm / looking-glass
chmod 660 / dev / shm / рд▓реБрдХрд┐рдВрдЧ-рдЧреНрд▓рд╛рд╕
рдлрд╛рдИ
рд╕реБрдбреВ рдХреНрдпреВрдореБ-рд╕рд┐рд╕реНрдЯрдо-x86_64 \
-machine q35, рддреНрд╡рд░рдг = kvm \
-рдпреЛрдЧреНрдп- kvm \
-рдХрдВрдкреНрдЯреА рд╣реЛрд╕реНрдЯ, kvm = off, check \
-sp cpus = 2, рдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛ= 1, рдХреЛрд░ = 2, рдзрд╛рдЧреЗ = 1 \
-рдо 6G \ _
-rtc рдЖрдзрд╛рд░ = рд╕реНрдерд╛рдиреАрдп рд╕рдордп, рдШрдбрд╝реА = host \
-рджреЗрд╡рд┐рд╕ рдкреАрдЖрдИрдПрдХреНрд╕ 3-рдпреВрдПрд╕рдмреА-рдЙрд╢реА \ _
-рджреЗрд╡реА usb-tablet \ _
-Drive if = pflash, format = raw, readonly, file = / usr / share / OVMF / OVMF_CODE.fd \
-drive рдлрд╝рд╛рдЗрд▓ = 'virtio-win-0.1.141_st.iso', рдЕрдЧрд░ = ide, рдлреЙрд░реНрдореЗрдЯ = рд░реЙ, рдЗрдВрдбреЗрдХреНрд╕ = 3, рдореАрдбрд┐рдпрд╛ = cdrom, рдХреИрд╢ = рдХреЛрдИ рдирд╣реАрдВ
-Drive рдлрд╝рд╛рдЗрд▓ = 'guest.img', if = ide, format = raw, index = 4, media = disk, cache =back =
-Vga рдХреЛрдИ рдирд╣реАрдВ
-рджреЗрд╡рд┐рд╕ ioh3420, рдмрд╕ = pcie.0, addr = 1c.0, рдмрд╣реБрдХреНрд░рд┐рдпрд╛ = рдЪрд╛рд▓реВ, рдмрдВрджрд░рдЧрд╛рд╣ = 1, рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬрд╝ = 1, рдЖрдИрдбреА = рд░реВрдЯ \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.0, рдмрд╕ = рд░реВрдЯ, addr = 00.0, рдмрд╣реБрдХреНрд░рд┐рдпрд╛ = рдкрд░, romfile = gt210_uefi.rom \
-рджреЗрд╡рд┐рд╕ vfio-pci, рд╣реЛрд╕реНрдЯ = 04: 00.1, рдмрд╕ = рд░реВрдЯ, addr = 00.1 \
-рджреЗрд╡рд┐рд╕ ivshmem- рд╕рд╛рджрд╛, рдореЗрдорджреЗрд╡ = ivshemem, рдмрд╕ = pcie.0 \ _
рдореЗрдореЛрд░реА-рдмреИрдХрдПрдВрдб-рдлрд╛рдЗрд▓, рдЖрдИрдбреА = ivshmem, рд╢реЗрдпрд░ = рдСрди, рдореЗрдо-рдкрд╛рде = / рджреЗрд╡ / рд╢рдо / рд▓реБрдХрд┐рдВрдЧ-рдЧреНрд▓рд╛рд╕, рд╕рд╛рдЗрдЬ = 32M \ _
-рд╕рдВрд╕реНрдерд╛рдкрдХ stdio \
-рдиреЗрдЯрджреЗрд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, id = n1, hostfwd = tcp: 127.0.0.1: 5600-: 5600, ipv6 = off, smb = "/ media / user / data" \
-рджреЗрд╡реА e1000, netdev = n1, mac = 67: 77: 78: 88: 89: 99 \
"$ @"

рд╣рдо рд╡реАрдПрдирд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, IVSHMEM рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж "рд╕рд┐рд╕реНрдЯрдо рдбрд┐рд╡рд╛рдЗрд╕реЗрд╕" рдореЗрдВ рд╕реНрдерд┐рдд рдЗрд╕ рдкрд░ рдПрдХ рдорд╛рдирдХ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЧреНрд▓рд╛рд╕-host.exe рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ред рд╣реЛрд╕реНрдЯ рдкрд░, рдЪрд▓рд╛рдПрдБ ./LookingGlass-a12/client/build/looking-glass-client ред

рдЗрд╕ рдкрд░, NVidia GF210 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЙрд╕реА рд░рд╛рд╕реНрддреЗ рд╕реЗ Intel HD530 рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╕реНрдХреНрд░реАрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛ рдереА, рдПрдХ рджреБрд░реНрд▓рдн рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 2048x1152, рдореБрдЭреЗ рдХрд╕реНрдЯрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдпреВрдЯрд┐рд▓рд┐рдЯреА [9] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред

рдПрдХ рдФрд░ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░, рдЬрдм рдСрдЯреЛрд▓реИрдб рдореЗрдВ рд▓реБрдХрд┐рдВрдЧ-рдЧреНрд▓рд╛рд╕-host.exe рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ , рддреЛ рдЖрдкрдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрддрд┐рдерд┐ рдУрдПрд╕ рд▓реЙрдЧрд┐рди рд╕реНрдХреНрд░реАрди рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдЕрдВрддрднрд╛рд╖рдг


рдпрджрд┐ рдЖрдк рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рднреМрддрд┐рдХ рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдПрдХ рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рддреЛ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╢рд╛рд░реАрд░рд┐рдХ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдФрд░ рдЙрддреНрддрд░рджрд╛рдпреА рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЖрднрд╛рд╕реА рдорд╢реАрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдкреНрд░рдмрдВрдзрди рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдВрдбреЛ рдпрд╛ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЗрдВ рд╣реЛрд╕реНрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВред

рдкреНрд░рджрд░реНрд╢рди ред рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рд╕рдВрд╕рд╛рдзрди рдФрд░ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдЕрддрд┐рдерд┐ рдУрдПрд╕ рдЖрдкрдХреЛ рдХрдордЬреЛрд░ рдФрд░ рдордзреНрдпрдо-рдХрдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдЖрд░рд╛рдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 6-8 рдХреЛрд░ рдХреЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░реЛрд╕реЗрд╕рд░, рдЕрддрд┐рдерд┐ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб, 16 рдЬреАрдмреА + рд░реИрдо, рдкреНрд░рддреНрдпреЗрдХ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 8 рдЬреАрдмреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рд▓реЛрд╣реЗ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдЦрд░реЗ рдХреЗ рд╕рд╛рде рдиреГрддреНрдпред
рдзреИрд░реНрдп ред рдпрджрд┐ рдпрд╣ рддреБрд░рдВрдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рдордп рдФрд░ рд╕рдордп рдХреЛ рд╢рд╛рд▓реАрдирддрд╛ рд╕реЗ рдмрд┐рддрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЦреЛрдЬреЗрдВ, рдкрдврд╝реЗрдВ, рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдлрд┐рд░ рд╕реЗ рджреЗрдЦреЗрдВ, рдкрдврд╝реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореИрдВ рдХреБрдЫ рдФрд░ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛, рдЬреЛ рдореИрдВ рднрд░ рдЖрдпрд╛ рдерд╛, рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред [резреж] [резрез] [резреи]

рд╕рдВрджрд░реНрдн

рд╕рд╛рд╡рдзрд╛рдиреА, рд▓рд┐рдВрдХ рдЗрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреБрд▓рддреЗ рд╣реИрдВред

0. https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF
1. https://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware
2. https://www.techpowerup.com/vgabios/
3. https://www.win-raid.com/t892f16-AMD-and-Nvidia-GOP-update-No-requests-DIY.html
4. https://www.tightvnc.com/download.php
5. https://looking-glass.hostfission.com/quickstart
6. https://github.com/gnif/LookingGlass/releases
7. https://www.microsoft.com/en-us/download/details.aspx?id=48145
8. https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/upstream-irtio/
9. https://www.monitortests.com/forum/Thread-Custom-Resolution-Utility-CRU
10. https://heiko-sieger.info/running-windows-10-on-linux-use-kvm-with-vga-passthrough
11. https://ycnrg.org/vga-passthrough-with-ovmf-vfio/
12. https://www.reddit.com/r/VFIO/comments/8h352p/guide_running_windows_via_qemukvm_and_intel_gvtg/

Source: https://habr.com/ru/post/hi433878/


All Articles