@Interface

В чем может быть проблема с пробросом видеокарты?

Добрый день!

Возникло желание сделать себе виртуальную машину с пробросом видеокарты (qemu + kvm).
Ориентирвался в основном на этот гайд: https://davidyat.es/2016/09/08/gpu-passthrough/

Имеется:
Железо

- cpu: Intel(R) Core(TM) i5-3470S CPU @ 2.90GHz
- одна (!) дискретная видеокарта: GeForce GTX 650 Ti
- материнская плата: Gigabyte Z77-D3H
Софт

- Хост ОС: xubuntu 17.04 (такая же картина была на 16.04)
- В dual-boot'е (grub) - Windows 7
- Qemu 2.8.0
- virsh 2.5.0
- virt-manager 1.3.2
Как готовится хост

Для проброса меняю 4 файла:
/etc/modprobe.d/blacklist.conf: (закоменчиваю / раскоменчиваю строки добавленные в конец файла)
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

/etc/modules: (закоменчиваю / раскоменчиваю строки добавленные в конец файла)
vfio
vfio_iommu_type1
vfio_pci
vhost-net

/etc/initramfs-tools/modules: (закоменчиваю / раскоменчиваю строки добавленные в конец файла)
pci-stub
/etc/default/grub: (меняется параметр GRUB_CMDLINE_LINUX_DEFAULT)
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on pci-stub.ids=10de:11c6,10de:0e0b"


После изменений:
update-initramfs -u
update-grub

и reboot

Система загружается, экран черный (после GRUB'а) доступна по SSH.
Вывод dmesg | grep pci-stub:
dmesg | grep pci-stub
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-32-generic root=UUID=584687ef-ebd7-4208-9e79-5ab3dfcf7266 ro quiet splash intel_iommu=on pci-stub.ids=10de:11c6,10de:0e0b vt.handoff=7
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-32-generic root=UUID=584687ef-ebd7-4208-9e79-5ab3dfcf7266 ro quiet splash intel_iommu=on pci-stub.ids=10de:11c6,10de:0e0b vt.handoff=7
[    1.640890] pci-stub: add 10DE:11C6 sub=FFFFFFFF:FFFFFFFF cls=00000000/00000000
[    1.640901] pci-stub 0000:01:00.0: claimed by stub
[    1.640908] pci-stub: add 10DE:0E0B sub=FFFFFFFF:FFFFFFFF cls=00000000/00000000
[    1.640912] pci-stub 0000:01:00.1: claimed by stub

что в силу наличия "claimed by stub" - вселяет надежду на то, что от хостовой системы карта отвязывается успешно.

Подготовка виртуалки

Виртуалку создавал через virt-manager (gui), из настроек:
- UEFI;
- Проброс PCI устройств 01:00.0 и 01:00.1 также через GUI;
- chipset: i440FX

Помимо этого через virsh edit было добавлено:
<features>
    ...
    <hyperv>
      <vendor_id state='on' value='whatever'/>
    </hyperv>
    <kvm>
      <hidden state='on'/>
    </kvm>
  </features>


В итоге после перезагрузки, захожу по SSH (нет второго монитора и второй дискретной карты :( ) на хост, запускаю там виртуалку через virsh start <name>, что приводит (насколько я могу судить) к crash'у системы (ssh в терминале перестает подавать признаки жизни, хост не пингуется, на хосте есть файлик /var/crash/_usr_bin_qemu-system-x86_64.64055.crash (в котором не могу увидеть причину проблемы)).

Кто может подсказать, что не так? Какие детали я упускаю? Где может быть лог с причиной фейла (и как ее понять из этого лога)?

UPDATE:
На момент написания вопроса еще не занимался встроенным GPU. (Он не завелся из коробки) В итоге после установки интеловских драйверов смог подключить монитор к встроенной видеокарте. Но возник ньюанс: с проброшенной дескретной видеокартой (когда строки раскоменчены) не работает встроенная. Методом тыка определил, что это связанно /etc/modprobe.d/blacklist.conf, если оставить его в первоначаальном виде - то встроенный GPU работает, но в dmesg | grep pci-stub остается только 01:00.1 (что я так понимаю звуковая в дискретной видеокарте).
Проброс в виртуалку все также не работает. При чем в этом случае когда я попытался запустить виртуалку я увидел как все сломалось: после ввода команды (virsh start), система повисла (откликался только курсор) - таким образом это несет не так много информации (учитывая, что конфигурация несколько отличается). Быть может не все нужные драйвера в черном списке?
  • Вопрос задан
  • 2195 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
С одной видеокартой почти у всех проблемы, причем даже когда система запускается, по завершению работы хост система повиснет окончательно (на самом деле от этого никто не застрахован и с двумя видеокартами)

найдите себе еще карту, хоть древнюю pci ;) реально все упростится
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы