LINUX.ORG.RU

virt-manager и вывод графики

 , , , ,


2

2

Возможно ли заставить virt-manager отображать графику также шустро как при kvm -display gtk,gl=on --device virtio-vga-gl?

Уточню в virt-manager настроено ускорение и на госте glxinfo -B показывает что всё хорошо, всё ускорено, устройство virgl OpenGL 4.2, также как и при -display gtk,gl=on запуске виртуалки из терминала, а не через virt-manager, разница именно что я так понимаю в выводе итоговом изображении.

Я глубоко не вникал, но при запуске в ручном режиме можно спокойно внутри в 3D шутеры гонять, но неудобно манипуляции всякие делать типа подключить/отключить CD на горячую. Через virt-manager наоборот можно мышевозить, гасить одно, запускать другое и прочее, но вывод лагает :(

А я с 3D работаю и на гостях тестирую.


Заранее отвечу проброс карты невозможен, материнка M4A88TD-M/USB3 не умеет.
Да и не нужно, virgl выдаёт на глаз нативное ускорение, но только при выводе через gtk/sdl

Я гуглил, но информации много, порой противоречивой, мне главное узнать можно ли то что я хочу или нет

★★★★★

Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

отчасти можно, особенно в варианте который обозвали session mode , но там свои ограничения
Можно и для системного использовать gtk/sdl, но тогда придется править права на доступ к сокетам xorg/wayland и pipewire/pa. Если используется apparmor, то его конфиги так же надо будет поправить. И, по моему, поправить cgroup_device_acl в конфиге libvirt, хотя это может зависеть от дистрибутива и версии libvirt
Если используется venus, то придется выключить песочницу, т.к. там требуется запуск вспомогательного процесса

xgatron
()
Ответ на: комментарий от xgatron

Понял, спасибо, посмотрел примерно о чём речь, ну такое себе, это если делать основательно и на долго, на специальной тачке которую держать нетронутой в последствии аля чисто гипервизор. Для домашних дел надёжнее, проще и эффективнее видимо всё руками запускать. Хотя не велика беда, пришло время написать себе свой мини вирт манагер, который будет просто пускать тачки через набор готовых параметров запуска под ситуацию =)

LINUX-ORG-RU ★★★★★
() автор топика

Я вот так запускаю QEMU

qemu-system-x86_64 -enable-kvm -rtc base=localtime -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -smp 2,sockets=1,cores=2,threads=1 -m 2G -netdev user,id=mynet0 -device virtio-net-pci,netdev=mynet0 -device virtio-vga-gl -device virtio-serial-pci -device virtio-balloon -spice unix=on,gl=on,addr=/tmp/vm_spice.socket,disable-ticketing=on,playback-compression=off -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 -chardev spicevmc,id=spicechannel0,name=vdagent -audiodev spice,id=snd0 -device ich9-intel-hda -device hda-output,audiodev=snd0 -cdrom /mnt/samba/ubuntu-24.04.2-desktop-amd64.iso -drive file=/home/curufinwe/vms/ubuntu2404.img,format=raw -boot c -monitor stdio

Подключаюсь remote-viewer к spice+unix:///tmp/vm_spice.socket и у меня все летает. У себя я не вижу разницы с -display gtk,gl=on

P. S. virt-manager нинужна, есть remote-viewer.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

Там для SPICE: включен GL, звук через SPICE, автоподстройка разрешения под окно. Если надо USB флешки на горячую подключать, надо немного добавить опций, если надо могу дать пример.

James_Holden ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Вот с usb девайсами, создается три слота, по идее можно три устройства одновременно воткнуть.

qemu-system-x86_64 -enable-kvm -rtc base=localtime -S -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -smp 2,sockets=1,cores=2,threads=1 -m 2G -netdev user,id=mynet0 -device virtio-net-pci,netdev=mynet0 -device virtio-vga-gl -device virtio-serial-pci -device virtio-balloon -spice unix=on,gl=on,addr=/tmp/vm_spice.socket,disable-ticketing=on,playback-compression=off -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 -chardev spicevmc,id=spicechannel0,name=vdagent -audiodev spice,id=snd0 -device ich9-intel-hda -device hda-output,audiodev=snd0 -device ich9-usb-ehci1,id=usb -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,multifunction=on -device ich9-usb-uhci2,masterbus=usb.0,firstport=2 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4 -chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 -chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 -chardev spicevmc,name=usbredir,id=usbredirchardev3 -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 -cdrom /mnt/samba/ubuntu-24.04.2-desktop-amd64.iso -drive file=/home/curufinwe/vms/ubuntu2404.img,format=raw -boot c -monitor stdio

James_Holden ★★★★★
()
Ответ на: комментарий от MirandaUser2

Так вот и смысл в том чтобы проверить будет ли так же быстро, меня пока виртуалка в работе, сборку делает, как закончит будут пробовать. Есть вероятность того что у James_Holden машина настолько быстрая что он просто не видит разницы, у меня феном и радеон 12 летней давности.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от MirandaUser2

Разобраться как в нем натыкать именно такие опции для меня будет дольше, чем вот так запустить и все. У меня скрипты, я просто там меняю имя файла образа и они используются годами. Никакой проблемы в этом нет абсолютно. Создать виртуалку это несколько секунд.

Я не вижу никакого смысла использовать монстро-прослойки и решать их проблемы, вместо того чтобы один раз потратить час и составить эту команду, а потом использовать ее 5 лет в таком виде.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

Я годами вот таким пользуюсь

Покрывает 99% требований

UDP: ахахаха в ней же James_Holden ругался )))

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Да, там ты очень хорошо заметил вот что

так как нужно читать man virsh и ещё кучи и тонны документации для тривиальных вещей

О чем я и говорю постоянно, что эти прослойки по сути ничего не дают, а для их использования нужно читать тонны всего, и потом еще с ними бороться, пытаясь понять как вот эти опции для QEMU (которые просто из документации на него взяты) реализуются через XML конфиги вирша. Ну его в пень.

Я всецело сторонник твоего подхода запускать напрямую. Просто тут такая фишка, что даже со spice все может работать просто напрямую без прослоек.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

Репортую, да, так чуть быстрее выходит. Но всё также несравнимо с прямым выводом через sdl/gtk по скорости ну на глаз 60fps vs 25fps, это не метрика, а ощущения, видимо у меня просто железо не вывозит какой то из механизмов spice, ну железо старенькое, ожидаемо.

Но в целом нативная отзывчивость нужна не всегда, а иногда нужно держать в фоне и просто подключаться/отключаться, так что сделаю себе просто в .bashrc kvm-run и kvm-run-spice и всё, первое для максимальной отзывчивости и динамических тестов, здесь и сейчас, второе когда надо запустить виртуалку в долгую и иногда к ней подключаться. Вполне себе удобно будет.

Спасибо ещё раз

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Но всё также несравнимо с прямым выводом через sdl/gtk по скорости ну на глаз 60fps vs 25fps, это не метрика, а ощущения, видимо у меня просто железо не вывозит какой то из механизмов spice, ну железо старенькое, ожидаемо.

Ага, понятно. Подозреваю что все-таки сам spice тормозит. Я не использую тяжелое 3D, эффекты рабочего стола для меня работают приемлемо через spice, поэтому я не сильно обращал внимание. Буду знать.

James_Holden ★★★★★
()