LINUX.ORG.RU

Проброс nvidia gpu в kvm, ubuntu, vfio

 , , ,


2

2

Здрасти.

Пробрасывал видимокарточку из линукс хоста в квм виртуальную машину, вот по этому гайду, в общих чертах: https://bbs.archlinux.org/viewtopic.php?id=162768&p=1

Ну, правда, в убунте. И, правда, системд пока неосилил, обошелся строкой в рцлокал.

А так, вфио, все как там.

Но эта зараза... Ну короче:

root@gt-station:~# qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host -smp 6,sockets=1,cores=6,threads=1 -bios /usr/share/qemu/bios.bin -vga none -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 -device vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on -device vfio-pci,host=05:00.1,bus=root.1,addr=00.1 
qemu-system-x86_64: -device vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: vfio: Device does not support requested feature x-vga
qemu-system-x86_64: -device vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: vfio: failed to get device 0000:05:00.0
qemu-system-x86_64: -device vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: Device initialization failed.
qemu-system-x86_64: -device vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: Device 'vfio-pci' could not be initialized  
root@gt-station:~# cat /boot/config-3.13.0-24-generic| grep VFIO
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO=m
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
CONFIG_KVM_VFIO=y
root@gt-station:~# lsmod |grep vfio
vfio_pci               36474  0 
vfio_iommu_type1       17636  0 
vfio                   24873  2 vfio_iommu_type1,vfio_pci
Вот. Мозк взорвал, куды копать?

PS первыйпост, привет Рики и Тазу.

А если отключить опцию x-vga=on и включить эмулируемую карточку, тогда nvidia нормально работает?

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

Проверял. Но вы навели меня на мысель, процесс продвинулся! Говорит, что неправильный нврам, и шлет нафиг. Лечится добавлением romfile=/root/my-gpu.rom. Тогда говорит

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host -smp 6,sockets=1,cores=6,threads=1 -bios /usr/share/qemu/bios.bin -vga none -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 -device vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,romfile=/root/Gigabyte.GTX590.1536.110223.rom -device vfio-pci,host=05:00.1,bus=root.1,addr=00.1 
dma: command 78 not supported
dma: command 78 not supported

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

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

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

Я пробовал пробросить hd6970 в wheezy с qemu 2.0 из backports, но данная версия qemu сыпала ошибками и ни черта не получилось, хотя на 1.7 и работала. Разбираться не стал и свалил на федору, ибо в дебьяне, вдобавок к этим траблам, поддержки основной моей карточки hd7970 нет и не предвидится. В федоре на qemu 1.6 проброс работает.

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

что значит нормально? вон лсмод грит, что лоадед. А нормально - это как? Хост на радеон хд2600, кажется. Радеон ископаемое, короче. Стаб не использую, тупо блеклист новеау.

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

железо точно проброс умеет? какая мать и проц? действительно попробуй пробросить hd2600

у меня hd2400 нормально пробрасывалась, ну точнее биос показывала, большего от неё пробовал

так же через vfio пробрасывал gt220 и gtx660, все успешно, но у меня гента, qemu так же версии 2.0.0

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

эээээ.... Оччень нехочется. Ну то есть он пробрасывался, но вешал комп, ибо я его не отвязывал от хоста...

Мать 79 интел, камень 2011 сокет, не k, все вроде поддерживается.

Сейчас приключаюсь с вирт-менеджером. Виртуалку поставил, но при попытке пробросить в нее средствами вирт-манагера все не работает. Ну дык он vfio не умеет. При попытке поковырять хмл, он похеривает изменения. Причем как если его ковырять вручную, так и если ковырять через virsh edit.

У меня получилась такая добавка в хмл:

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,romfile=/root/Gigabyte.GTX590.1536.110418.rom,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=05:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=06:00.0,bus=root.1,addr=00.0,multifunction=on,romfile=/root/Gigabyte.GTX590.1536.110418.rom,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=06:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-bios'/>
    <qemu:arg value='/usr/share/qemu/bios.bin'/>
  </qemu:commandline>
Как ее вкрячить?

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

генту не хочется чуть меньше чем федору.

я раньше пойду вмварь плеер ковырять.

мне нужен уютный десктоп с дуал-ос, а не доказательство возможности...

Какбе no offence, просто гента и федора меня не так радуют.

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

у меня биос показывается только если патчи применить их.

можно попробовать fedora rawhide, чтобы проверить, что железо годное

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

У меня не получилось. virsh херит эти строки после сохранения. Это была ещё одна причина ухода с дебьяна.

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

Ага! Это победил. http://libvirt.org/drvqemu.html Вкратце, аргументы для qemu не могут быть при типе домена kvm. По крайней мере в дебиане/убунте. поэтому надо поправить

<domain type='kvm'>
на
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

тогда оно нормально сохраняет раздел <qemu:commandline>

очень надеюсь, что оно не тянет схему через инет

очень надеюсь, что не превратил kvm в тыкву qemu

gutleib ()

твоюжежмать, картман!

гугл начал выдавать на мои запросы эту страницу

лицорука носболь

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

Не-а, данную строчку добавлял. После сохранения конфигурации данные строчки волшебным образом исчезали. Это в дебьяне с libvirt из backports.

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