Search
Write a publication
Pull to refresh

Comments 37

Вот только толку от таких «пробросов»… В нормальные игры всё равно придётся в нативном режиме играть.
Не совсем понимаю, что вы имеете ввиду под «нормальными играми», но при пробросе GPU и USB хост-контроллера в виртуальную машину нормальные AAA-тайтлы работают без проблем.
Проблемы могут возникать, разве что с «анти-чит» системами в некоторых случаях.
Собственно, об этом и речь. Я боюсь, что и Denuvo может возникать, если у нее есть механизм обнаружения виртуализации.
«Анти-чит» и DRM системы могут создавать проблемы.
Однако, уже много лет как пользователи игровых VM научились прятать наличие виртуализации, чтобы обманывать GPU GeForce и драйверы NVidia. Несмотря на то, что теперь в этой функциональности нет столь острой необходимости, отключать ее не советую, именно из-за DRM и «анти-чит» систем.
А где можно найти инфу по этому поводу? Есть очень горячая проблема — нужно И пробросить видеокарту в виртуалку И настроить виртуалку так чтобы античит не поимал что это виртуалка
Гайдов в сети полно, но, преимущественно, на английском. На Хабре тоже что-то есть, но мало.

Надо сначала искать гайды про обычный проброс. Часто он специфичен для конкретной серии GPU и может отличаться. Может быть специфичность для вашего процессора/чипсета. Для полного сокрытия нужно удалить из системы виртуальный видеоадаптер. Многие гайды описывают процесс проброса в качестве «второй видеокарты». Он немного проще. И, работает не хуже в 99% случаев. Но, для полного сокрытия этот вариант не подойдет.

Потом гайды про базовое сокрытие виртуализации от гостевой ОС. Пошаманить с настройками гипервизора и флагами CPU.

Потом гуглить гайды про дополнительные шаги для конкретных анти-чит систем. Тут надо будет шаманить с образами BIOS, OEM идентификаторами, реестром. Надо будет пробросить реальный USB контроллер, удалить устройства ввода-вывода виртуальные, и использовать настоящую клавиатуру/мышь для VM или KVM-переключатель. Отказаться от паравиртуализации (virtio).

Часто эти гайды перемешаны. Например, раньше чтобы пробросить NVidia GPU надо было делать «частичное сокрытие виртуализации» сразу, чтобы обмануть драйвер NVidia. Но, у NVidia проверки не супер строгие, достаточно убрать CPU флаги и сменить OEM идентификатор. Для анти-чит систем этого может оказаться недостаточно.

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

Гуглить по «headless GPU passthrough».

Возможно, после обновления, сделать это станет «немного проще».
Добавлю еще, что при наличии встроенной (в ЦП или материнскую плату) и дискретной графики одновременно, дискретная пробрасывается достаточно просто. Там вроде нигде не написано, что видеокарта для хоста должна быть от NVidia.
Я вполне успешно обхожусь IPMI/VGA видеоадаптером встроенным в серверную материнскую плату.
у меня ryzen без встроенного видео

У меня на интеловской серверной материнке встроенное видео наотрез отказывается работать в паре с любой внешней видеокартой, приходится ее в биосе отключать

Да. Было такое с предыдущим моим Intel-овским железом. Приходилось отключать дискретную графику в BIOS хоста. Пробрасывать эту графику в ВМ это не мешает, а наоборот, — помогает, т.к. с инициализацией дискретной графики вполне успешно справится BIOS виртуальной машины, а, делать это дважды нельзя.
Вообще это характерная особенность Intel-овской встроенной графики. Она по-умолчанию при инициализации VGA BIOS дискретной графики деинициализируется/выключается.
Не получится если хотите сразу 2 системы выводить. Если нужна только гостевая то всё будет работать. Для двух систем нужны 2 карты, причём даже разных моделей, иначе обе будут заблокированы драйвером
Интересно, а какой в этом смысл? Чем это отличается от перезагрузки? Ведь пока запущена VM, основной системой не получится пользоваться. И что будет с графическими приложениями GNU/Linux? Мне кажется отобрать все видеокарты у X11-сервера/Wayland-композитора не получится без его перезапуска.
Например, в моем случае, помимо игровой ВМ на Linux-хосте запущена еще огромная куча другого софта и виртуальных машин. Для Windows-гостя полностью виртуализирована сеть (прозрачный L2 VPN) и дисковая подсистема, настроены прозрачные бэкапы. Средствами Linux-хоста и других VM реализованы фаерволл, «домашний роутер» с кастомными маршрутами для «обхода блокировок», и, даже программная точка доступа, которая раздает домашний WiFi.
Все это не требует графической среды.

Очень странная новость. Фактически, такая возможность была всегда, но внутри драйвера был фрагмент кода, делающий что-то вроде:
if gpuFamily!=GPU_FAMILY_TESLA && gpuFamily!=GPU_FAMILY_QUADDRO
Abort();
И были возможности это обойти, и тогда виртуализация с пробросом девайса целиком работала.


Сделано это было с той же целью, что и запрет на установку GeForce в датацентрах, и программная порезка 64 битной производительности. А именно, из-за жадности, чтобы бизнес клиенты не позволяли себе решать свои задачи дешево. Почему приступ жадности временно прошёл, — очень странно.

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

… решать свои задачи дешево. Почему приступ жадности временно прошёл, — очень странно.
Вы видели цены на видеокарты?

Видел. И датацентровое решение для ИИ собирал. И цены на карты для бизнеса, которые без вопросов встанут в энтерпрайз железо, тоже видел, вот, например, https://www.ebay.com/itm/nVIDIA-Tesla-V100-GPU-Accelerator-Card-16GB-PCI-e-Machine-Learning-AI-HPC-Volta/153223723116?hash=item23acd8786c:g:L0QAAOSwVx5byKpm

Ждем когда будет наоборот: проброс GPU из windows в WSL, тогда с CUDA будет одни удобства.

Судя по описанию, это не совсем проброс GPU, а, скорее, проброс API CUDA по аналогии с пробросом API OpenGL, который реализован в QEMU.
Да похоже так и есть. Просто очень существенная часть тех кто хочет GPU в WSL хотят ее именно из-за CUDA.
Это понятно. У такого подхода даже есть свои плюсы в данном юзкейзе.
В конце концов не ради же Linux native игр люди ставят WSL ).
Вопрос около темы — в какой системе виртуализации проброс устройства (в данном случае pci) осуществляется без танцев с бубном (предпочтительно Windows хост)?
Знаю, что VirtualBox поддерживает vt-d в Linux версии, ожидал обещанного появления в Windows версии, но похоже разработчики забыли реализовать.
Скажу сразу, что если речь идет про видеокарты, то наибольшая вероятность успеха будет с Linux/KVM, где это работает почти из коробки.
Это работает благодаря огромному количеству патчей которые есть в ядре специально под проброс конкретных видеокарт, которые пишут энтузиасты.
Шансы получить такие патчи в проприетарных ОС/гипервизорах близки к нулю.
Там свой слот pci для общения с железом, к тому же неполноценный, он не оформлен как устройство, никак не инициализируется, просто отвечает на определённые порты. Сейчас работает под DOS.
Уж очень странная у вас конфигурация. Совсем не обратил внимание что у вас PCI, а не PCI-E.
Про что-то такое думал я, когда хотел древнее железо в ВМ запустить используя вот это:
eshop.sintech.cn/pcie-express-x1-to-dual-pci-riser-extender-card-usb30-cable-p-977.html
Если я правильно понял, как оно работает, то, чисто теоретически, пробросить можно целиком PCI — PCI-E мост, и, тогда все устройства на PCI шине будут «работать» внутри VM. Наверно, стоит пробовать qemu/kvm.
Все это только в теории.
Всё равно спасибо за идею проброса всего моста.
Используется сейчас материнская плата формата mini-itx с pci-портом, старая, т.к. на всех современных pci уже реализуется также за счёт чипа моста pci-pcie, как и на переходнике.
Что нужно для проброса? Есть мобильная Quadro на ядре Kepler, но без поддержки UEFI, вшить таковую сторонними инструментами оказалось невозможно.
Про Quadro в сообщении NVidia говорится что ничего не изменилось. По идее и раньше как-то поддерживалось.
If you want to enable multiple virtual machines to have direct access to a single GPU or want the GPU to be able to assign virtual functions to multiple virtual machines, you will need to use NVIDIA Tesla, Quadro, or RTX enterprise GPUs

Про отсутствие UEFI, — это проблема. У меня один из пробрасываемых GPU имеет подобную проблему. К сожалению, под Windows 10 версии 19** и выше у меня запустить его не получилось. Что-то поломали в Windows при загрузке в BIOS режиме. В OVMF (UEFI BIOS для QEMU) нет поддержки CSM коробки, которая нужна, чтобы старые видеокарты работали.
Я пока использую старый адаптер (у меня 2 дискретные графики + 1 встроенная) для проброса в Linux-VM но, планирую менять при первой возможности.
Ну, еще в Windows 8.1 оно вполне успешно работает без UEFI и официальной поддержки.
Всем привет.
Более 7 лет пользуем Proxmox VE в кач-ве гипервизора.
Опенсурс, удобно (веб-управление), надежно (zfs — аппаратный raid не требуется), кластеризация из коробки (ceph, glusterfs).
Автобэкапы по расписанию в комплекте (сжатие zstd). Можно прикрутить Proxmox Backup Server с инкрементными бэкапами.

Проброс pci(e)-устройств делается в вебке 2-3 кликами мыши. При поддержке вашим железом этого дела, ес-но (intel vt-d или amd iommu).

Кому интересно, вот forum.netgate.com/topic/120102/proxmox-ceph-zfs-pfsense-%D0%B8-%D0%B2%D1%81%D0%B5-%D0%B2%D1%81%D0%B5-%D0%B2%D1%81%D0%B5

Зы. Также пользуем Proxmox Mail Gateway как почтовый шлюз. Недавно зарелизился 6.4

ну не в пару кликов все же осуществляется проброс, т.к. сам гипервизор нужно настроить через консоль, организовав правку конфигурационных файлов и даже grub, как для включения поддержки iommu, так и для обходп ошибки 43.
Ранее я уже выкладывал статью о пробросе в Proxmox на Хабрахабре
https://m.habr.com/ru/post/437598/

Ес-но, нужна поддержка vt-d\iommu железом и настройка конфигов Прокса.
Как это сделать — есть в оф. вики. После этого достаточно нес-ко кликов мышкой в вебке для проброса.

Касаемо решения Нвидиа.
Теперь не нужно больше воевать с nvidia code 43. Как минимум для настольных систем в виртуалках. С серверными может быть иначе.
Sign up to leave a comment.

Other news