LINUX.ORG.RU

KVM проброс видеокарты в гостевую ОС

 ,


6

1

Раньше, проброс видеокарты в гостевую ОС производился через некоторое количество малопонятных, для не продвинутого пользователя, скриптов и требовал вдумчивого чтения различных howto.
Возможно я отстал от жизни и всем это уже давно известно, но, тем не менее, опишу текущую ситуацию.
Хост - linux mint 18.1 (он же ubuntu 16.04.1 LTS).
Гость - windows 8.1 x64.
Для проброса видеокарты (в моём случае видео на хосте - встроенная в процессор intel видеокарта, видео в госте - radeon 7870, воткнутый в первый PCI-E)
1. Добавить в /etc/defaul/grub - GRUB_CMDLINE_LINUX_DEFAULT=«intel_iommu=on»
2. Запустить virt-manager, создать ВМ и добавить в гостя вторую видеокарту http://s-linux.ru/images/vga_pass.jpg
3. Устанавливаем виндовз, запускаем ВМ, ставим дрова на видео, всё работает.
4. vfio-bind (unbind) происходит корректно и автоматически через libvirt.

P.S. Ваш процессор, естественно, должен поддерживать vt-d.

★★★★★

Последнее исправление: King_Carlo (всего исправлений: 1)

Раньше, проброс видеокарты в гостевую ОС производился через запуск некоторых малопонятных для продвинутого пользователя монстроидальных мелкомягких поделок (libvirt/virt-manager) и требовал вдумчивого просмотра различных видеогайдов на youtube.
Возможно я отстал от жизни и всем это уже давно известно, но, тем не менее, опишу текущую ситуацию.
Хост - Gentoo 2.3
Гость - Windows 10
Для проброса видеокарты (в моём случае видео на хосте - встроенная в процессор intel видеокарта, видео в госте - GTX 970, воткнутый в первый PCI-E)
1. Добавить в /etc/defaul/grub - GRUB_CMDLINE_LINUX_DEFAULT=«vfio-pci.ids=10de:13c2,10de:0fbb,8086:1e26 intel_iommu=on,igfx_off»
2. Ни в коем случае не устанавливаем virt-manager, который ещё и на петоне (sic!). Вместо этого добавляем пару строчек -device vfio-pci... в простой и понятный продвинутому пользователю shell-скрипт.
3. Устанавливаем виндовз, запускаем ВМ, ставим дрова на видео, всё работает.
4. vfio-bind (unbind) происходит корректно и автоматически ещё на этапе инициализации ядра, костыли на петоне нам не нужны.

P.S. Ваша материнка, естественно, должна поддерживать vt-d (с процами проще, 97.5% поддерживают).
P.S/2. Пример простого и понятного скрипта:

#!/bin/sh

sudo QEMU_AUDIO_DRV=pa apulse qemu-system-x86_64 \
	-nodefaults \
	-nodefconfig \
	-nographic \
	-serial none \
	-parallel none \
	-name Windows10 \
	-machine q35,accel=kvm \
	-enable-kvm \
	-cpu host,kvm=off,check \
	-smp cpus=4,sockets=1,cores=4,threads=1 \
	-m 8G \
	-balloon virtio \
	-rtc base=localtime,clock=host \
	-drive if=pflash,format=raw,readonly,file=~/qemu/ovmf64/OVMF-pure-efi.fd \
	-drive if=pflash,format=raw,file=~/qemu/ovmf64/OVMF_VARS-pure-efi.fd \
	-soundhw hda \
	-net nic,vlan=0,model=virtio -net tap,vlan=0,ifname=tap0,script=no,downscript=no \
	-vga none \
	-device vfio-pci,host=01:00.0,multifunction=on \
	-device vfio-pci,host=01:00.1 \
	-device vfio-pci,host=00:1d.0 \
	-drive file=~/qemu/data/win10.img,if=virtio,format=raw,index=0,media=disk,cache=none,aio=native \
	-boot order=c \
	-monitor stdio \
	"$@"

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

P.S/2. Пример простого и понятного скрипта:

Ты забыл скрипт ещё vfio-bind (или pci-stub). Теперь можно вообще без скриптов, мышкой натыкать, о том и топик.

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

Ты забыл скрипт ещё vfio-bind (или pci-stub).

Зачем? Ядро сразу вешает vfio на нужные pci-ids (см мой GRUB_CMDLINE_LINUX_DEFAULT). Там у меня кроме видео еще и usb контроллер пробрасывется.

Теперь можно вообще без скриптов, мышкой натыкать, о том и топик.

Таким юзерам лучше подойдет windows в качестве основной и единственной OS.

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

Там у меня кроме видео еще и usb контроллер пробрасывется.

Через virt-manager usb-устройства пробрасываются на-лету, мышкой.

Таким юзерам лучше подойдет windows в качестве основной и единственной OS.

Элита?

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

Через virt-manager usb-устройства пробрасываются на-лету, мышкой.

Это и virtualbox умеет, но мне надо не usb-устройство, а целый контроллер.

Элита?

А то!

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

Это и virtualbox умеет

virtualbox не умеет vga-passthrough.

но мне надо не usb-устройство, а целый контроллер.

Какая разница?

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

Неразгоняемые умеют.

Даже некоторые разгоняемые умеют, например i7-4970K.

King_Carlo ★★★★★
() автор топика
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от daemonpnz

До скайлейков у меня руки ещё не дошли, жду ryzen.
Друзья мои, тема не о процессорах, а о том, что уже можно кидать железо в ВМ мышкой, при этом абсолютно не понимая как это работает и вообще не заморачиваясь манами и хауту. Здесь многие ратуют за увеличение количества пользователей десктопного линукса, так это огромный шаг им на встречу.

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

Современные почти все умеют, да даже не современные, а начиная с хасвелов.

Lavos ★★★★★
()
28 мая 2017 г.
Ответ на: комментарий от Hertz

Разгоняемые тоже давненько уже.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.