Перейти к содержимому

Virtio-Venus

  • 3D-ускорение, близкое к нативному

В операционных системах, использующих libvulkan, таких как Linux, BSD и Android, вы можете достичь производительности, близкой к нативной, преобразуя вызовы из виртуальной машины в Vulkan, а затем напрямую на ваш GPU и обратно, без необходимости передавать их через виртуальную машину.

К сожалению, Virtio-Venus отсутствует в VMM, и поэтому вам потребуется использовать qemu-cli. Вам нужно будет запомнить имя, которое вы дали своей виртуальной машине, и её расположение.

После установки любой подходящей виртуальной машины вы можете открыть терминал и создать команду qemu-cli для вашей виртуальной машины. Вот пример для моей ВМ с CachyOS:

Terminal window
qemu-system-x86_64 \
-enable-kvm \
-M q35 \
-smp 6 \
-m 12G \
-cpu host \
-net nic,model=virtio \
-net user,hostfwd=tcp::2222-:22 \
-device virtio-sound-pci,audiodev=my_audiodev -audiodev pipewire,id=my_audiodev \
-device virtio-vga-gl,hostmem=4G,blob=true,venus=true \
-vga none \
-display gtk,gl=on,show-cursor=on \
-usb -device usb-tablet \
-object memory-backend-memfd,id=mem1,size=12G \
-machine memory-backend=mem1 \
-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd \
-drive if=pflash,format=raw,file=.config/libvirt/qemu/nvram/archlinux_VARS.fd \
-drive file=.local/share/libvirt/images/archlinux.qcow2
  • -smp 6 означает 6 ядер ЦП
  • -m 12G означает 12 ГБ ОЗУ
  • -net user,hostfwd=tcp::2222-:22 означает, что порт 22 с хоста пробрасывается в ВМ как порт 2222, таким образом, если вы хотите подключиться к ВМ по ssh с какого-либо устройства, вы должны выполнить:
Terminal window
ssh -p 2222 имя_пользователя_вм@ip_адрес_вм
  • -device virtio-vga-gl,hostmem=4G,blob=true,venus=true — это драйвер Venus, который, к сожалению, пока не включен в virt-manager. Как только это произойдет, весь этот раздел, за исключением пользовательского режима, устареет.
  • -hostmem=4G означает, что я позволяю ВМ использовать до 4 ГБ моей видеопамяти (VRAM) с моей видеокарты.
  • -object memory-backend-memfd,id=mem1,size=12G в этом разделе size — это объем ОЗУ, который вы выделили, то есть 12 ГБ в моем случае.
  • -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd — это файл прошивки для ВМ, здесь просто указан путь к нему.
  • -drive if=pflash,format=raw,file=.config/libvirt/qemu/nvram/archlinux_VARS.fd — это nvram ВМ. Без этого файла или если он будет установлен в режим только для чтения, ВМ не запустится.
  • -drive file=.local/share/libvirt/images/archlinux.qcow2 — это путь к файлу .qcow2 (хранилище ВМ).
    (Вы можете заметить, что мое аудиоустройство в данном случае не ich9, а pipewire, но это не имеет значения.)