Рейтинг:2

Как использовать ускорение OpenGL/3D в virt-manager с Ubuntu?

флаг us

В настоящее время в Ubuntu 20.04 как в качестве хоста, так и в качестве гостя я следил за http://ryan.himmelwright.net/post/virtio-3d-vms/ и активировал 3D-ускорение на видео и OpenGL на dsplay, но при запуске виртуальной машины я получаю

Поддержка SPICE GL на данный момент только локальна и несовместима с -spice port/tls-port.

Как я могу заставить его работать?

ОБНОВИТЬ:

Я отключил тип прослушивания для None

как этовведите описание изображения здесь

но я получаю очень глючное изображение:

введите описание изображения здесь

Рейтинг:1
флаг us

Я также столкнулся с той же проблемой при работе с аппаратным ускорением на основе программного обеспечения, как указано: http://ryan.himmelwright.net/post/virtio-3d-vms/ . Я немного повозился и нашел простое решение, которое сработало для меня. Но я не могу гарантировать, что это сработает и для вас:

Я предполагаю, что вы изменили «Модель» с «QXL» на «Virtio» и включили «3D-ускорение» в разделе «Видеоустройство» вместе с настройками, указанными выше. Я также предполагаю, что средство визуализации, которое вы выбрали в раскрывающемся списке «OpenGL», является вашим выделенным графическим процессором.

Теперь просто закройте экземпляр virt-manager и перезапустите его из терминала, добавив DRI_PRIME=1 перед этим, т.е. запустить DRI_PRIME=1 виртуальный менеджер в терминале. Теперь запустите вашу виртуальную машину. Сначала я видел некоторые сбои экрана, но после того, как был открыт экран входа в систему, все пошло гладко. Я отслеживал использование AMD DGPU через радеонтоп и он работал нормально.

Примечание:

  1. То же решение работало с VirtualBox, когда он не использовал мой DGPU даже с включенным 3D-ускорением. Также я заметил, что 3D-ускорение в VirtualBox было более стабильным, чем в Virt-менеджере.

  2. Даже после успешного включения 3D-ускорения вы не получите полной производительности графического процессора и, вероятно, столкнетесь с проблемами драйверов в разных местах. Вы, вероятно, захотите использовать свой графический процессор непосредственно в виртуальной машине через сквозной переход к графическому процессору, чтобы преодолеть эти проблемы.

Редактировать 1:

Немного повозившись с аппаратным ускорением ВМ, я обнаружил, что для запуска ВМ с DGPU необходимо выполнить еще один шаг. Сначала нам нужно увеличить VRAM как минимум до 512 МБ в «Модели QXL» раздела «Видеоустройство», нажать «Применить», изменить «Модель» с «QXL» на «Virtio» с включенным «3D Acceleration» и затем запустите virt-manager с помощью DRI_PRIME=1.

Когда я попробовал это, Manjaro работал нормально, но производительность виртуальной машины Windows 10 была очень нестабильной.

флаг us
У меня глюков нет, но видео все равно занимает всего 1/4 экрана
Рейтинг:0
флаг de

OpenGL + 3D Rendering отлично работает с iommu, если у вас есть поддержка VT-D на вашей материнской плате + процессоре.

Добавлять intel_iommu=на iommu=pt к /etc/по умолчанию/жратва/, обновите grub и перезагрузитесь. (АМД amd_iommu=на)

Например.:

$ grep CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=на iommu=pt"

добавление загрузочных флагов iommu в файл /etc/default/grub

Для полноты я должен упомянуть /etc/по умолчанию/жратва/ необходимо отредактировать как root (используйте судо или же су).

Команда обновления:

обновление-личность

для Debian/Ubuntu/производных и:

grub2-mkconfig -o /boot/grub/grub.cfg

для большинства других дистрибутивов (в некоторых дистрибутивах grub2-mkconfig команда называется grub-mkconfig).

  1. Следует отметить, что это «слабый» сквозной (общий) режим, который не берет на себя управление всем устройством.«Настоящий» транзит полностью выводит устройство из-под контроля хоста. Это требует vfio-pci=vendId:devId заглушка либо в grub, либо /etc/modprobe.d (и перестроение initramfs). Для получения дополнительной информации о сквозной передаче, это хорошее место для начала: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF
  2. Есть еще более сложные способы обмена вашей графикой, у каждого поставщика есть своя версия. Например, Intel-GVT-g для Intel iGD: https://wiki.archlinux.org/title/Intel_GVT-g

Вот мой XML для рассматриваемых устройств:

Display Spice — примечание: при сквозной передаче вы не можете включить удаленный сервер:

<graphics type="spice">
  <listen type="none"/>
  <image compression="off"/>
  <gl enable="yes"/>
</graphics>

Показать прохождение Spice Server PCI с конфигурацией openGL

Видео Virtio (изменение с QXL):

<video>
  <model type="virtio" heads="1" primary="yes">
    <acceleration accel3d="yes"/>
  </model>
  <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>

переход с QXL на virtio для ускорения 3D

Независимо от этого, я использую блочное устройство zvol в конфигурации установщика Ubuntu ZFS. Эта опция доступна только в версии Ubuntu Desktop:

ZFS zvol для блочного устройства NTFS

zvols действительно круты, потому что вы можете переключаться между их использованием для квм-кему и [системный контейнер][5] (только linux, очевидно) - плюс снимки и их отправка/получение.

Но поскольку zvols имитирует обычный диск, они демонстрируют, что вы можете использовать выделенный диск для своей виртуальной машины, если у вас есть место для его установки.

Как только вы создадите zvol, придайте ему структуру разделов gpt, используя fdisk/sgdisk/{g}parted и т. д., как и любой другой диск. Как только я создал раздел gpt, я использовал Windows ISO для фактического разделения.

бтрфс имеет что-то подобное, что должно лучше поддерживаться systemd-nspawn, но я не уверен, что вы можете использовать их как блочное устройство в кему.

Последний совет: мне нужно было скопировать некоторые файлы с хоста на виртуальную машину. Вы не можете смонтировать папку из Linux --> Windows, но я смог смонтировать раздел (#3) Windows, созданный на zvol в хосте, как обычный раздел NTFS.

Итак, пока виртуальная машина была выключена, я смонтировал раздел 3 на /млн, скопировал нужную мне папку, размонтировать/мнт раздел и запустите резервную копию виртуальной машины.

Иногда немного сложно понять, что делать в такой ситуации, поэтому я решил добавить это. Люди в руководствах, которые я читал, также рекомендовали настроить общий доступ к Samba, если вам нужно что-то более частое, или я также удаленно подключаюсь к виртуальным машинам Windows с помощью OpenSSH-Server и PSRemoting, так что есть много вариантов (теперь в Windows даже есть SSHFS, если вы проверите Шоколадный).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.