You are not logged in.

#201 2013-07-03 14:04:15

teekay
Member
Registered: 2011-10-26
Posts: 270

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

andy123 wrote:

Hi,
I use a setup with KVM switch and it's not that complicated, assuming you have multiple usb controllers on your mainboard (are there boards that don't?). You simply have to pass one through to the guest as a PCI device. The host will ignore the input on those, since it doesn't load a driver for it and it'll appear as a normal usb controller to the guest.
I don't thik I get what you mean by "usual KVM VNC window", so no idea about that one.
I hope this helps…

With the KVM VNC window stuff I mean the classical way of having a window with the VM running in it, and switching the input between host and guest by moving the mouse over the window border, or pressing ctrl+alt - something like that.
But forget about it. A KVM switch is the way to go I guess.

Your idea of picking one of the motherboard's USB controllers is great, just a matter of finding out if the 8 ports on the backpanel all use the same controller or multiple
Thanks!

Offline

#202 2013-07-03 14:14:00

andy123
Member
Registered: 2011-11-04
Posts: 169
Website

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

teekay wrote:
andy123 wrote:

Hi,
I use a setup with KVM switch and it's not that complicated, assuming you have multiple usb controllers on your mainboard (are there boards that don't?). You simply have to pass one through to the guest as a PCI device. The host will ignore the input on those, since it doesn't load a driver for it and it'll appear as a normal usb controller to the guest.
I don't thik I get what you mean by "usual KVM VNC window", so no idea about that one.
I hope this helps…

With the KVM VNC window stuff I mean the classical way of having a window with the VM running in it, and switching the input between host and guest by moving the mouse over the window border, or pressing ctrl+alt - something like that.
But forget about it. A KVM switch is the way to go I guess.

Your idea of picking one of the motherboard's USB controllers is great, just a matter of finding out if the 8 ports on the backpanel all use the same controller or multiple
Thanks!

Ah, now I get it. I did that first, trying to get this set up. I still had the emulated graphics card enabled, but the other one takes over at some point and there is this black window you can click into and use ctrl+alt to get out of. I can't really tell what's more "elegant" or better in general. I'm not a qemu expert, so this may be possible without an emulated graphics card.
KVM switches aren't cheap though and I know I wouldn't have bought one for this.


i'm sorry for my poor english wirting skills…

Offline

#203 2013-07-04 00:37:14

rabcor
Member
Registered: 2013-02-09
Posts: 495

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

alphaniner wrote:

@rabcor

You still have a rogue space after the first -device vfio-pci.

# qemu-system-x86_64 ... -device vfio-pci, host=01:00.0,...

I put a space in a working command and got a "could not open disk image" error, so that could be it.

i'm  pretty sure this should be correct, but it doesn't seem to be starting up sad

qemu-system-x86_64 -enable-kvm -M q35 -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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \ -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

tidied up version

qemu-system-x86_64 -enable-kvm -M q35 -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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
 -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

This stuff is driving me nuts!

it gives this

qemu-system-x86_64: -cpu host: could not open disk image  -smp: No such file or directory

if i move the backslashes (\) it gives me different results, for example "-cpu host \-smp 6..."

qemu-system-x86_64: -smp 6,sockets=1,cores=6,threads=1: could not open disk image  -bios: No such file or directory

i tried messing around with it a bit but i couldn't find any way to make it work.

I took a break from this for a while, but my windows installation on the dual boot got wrecked by some random virus which apparently infected me on a day i didn't even use the computer. So i wanna see how far i get with this before i go into reinstalling windows, i'd like to get rid of the dual boot anyways. I'm tired now but tomorrow if nobody has any suggestions for fixing the code i will try reinstalling qemu and seabios. (speaking of which what happened to the qemu source from the OP?)

Last edited by rabcor (2013-07-04 01:15:58)

Offline

#204 2013-07-04 03:11:44

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

rabcor wrote:
alphaniner wrote:

@rabcor

You still have a rogue space after the first -device vfio-pci.

# qemu-system-x86_64 ... -device vfio-pci, host=01:00.0,...

I put a space in a working command and got a "could not open disk image" error, so that could be it.

i'm  pretty sure this should be correct, but it doesn't seem to be starting up sad

qemu-system-x86_64 -enable-kvm -M q35 -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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \ -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

tidied up version

qemu-system-x86_64 -enable-kvm -M q35 -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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
 -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

This stuff is driving me nuts!

it gives this

qemu-system-x86_64: -cpu host: could not open disk image  -smp: No such file or directory

if i move the backslashes (\) it gives me different results, for example "-cpu host \-smp 6..."

qemu-system-x86_64: -smp 6,sockets=1,cores=6,threads=1: could not open disk image  -bios: No such file or directory

i tried messing around with it a bit but i couldn't find any way to make it work.

I took a break from this for a while, but my windows installation on the dual boot got wrecked by some random virus which apparently infected me on a day i didn't even use the computer. So i wanna see how far i get with this before i go into reinstalling windows, i'd like to get rid of the dual boot anyways. I'm tired now but tomorrow if nobody has any suggestions for fixing the code i will try reinstalling qemu and seabios. (speaking of which what happened to the qemu source from the OP?)

Try:

-cpu qemu64

and remove the -smp line

If that worked you might have built qemu without kvm support

Last edited by nbhs (2013-07-04 03:20:39)

Offline

#205 2013-07-04 06:58:24

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

teekay wrote:
andy123 wrote:

Hi,
I use a setup with KVM switch and it's not that complicated, assuming you have multiple usb controllers on your mainboard (are there boards that don't?). You simply have to pass one through to the guest as a PCI device. The host will ignore the input on those, since it doesn't load a driver for it and it'll appear as a normal usb controller to the guest.
I don't thik I get what you mean by "usual KVM VNC window", so no idea about that one.
I hope this helps…

With the KVM VNC window stuff I mean the classical way of having a window with the VM running in it, and switching the input between host and guest by moving the mouse over the window border, or pressing ctrl+alt - something like that.
But forget about it. A KVM switch is the way to go I guess.

Your idea of picking one of the motherboard's USB controllers is great, just a matter of finding out if the 8 ports on the backpanel all use the same controller or multiple
Thanks!

I think its still possible to capture the mouse and keyboard on the qemu window, i havent tried though, i do recommend a kvm switch, i dont have one unfortunately, i do have 4 frontal usb ports, of which 2 are usb3, so i just switch my keyboard and mouse by changing from usb2 (host) to usb3(guest)

Last edited by nbhs (2013-07-04 07:00:10)

Offline

#206 2013-07-05 02:37:28

apocolypse600
Member
Registered: 2013-05-26
Posts: 4

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

teekay wrote:

I'm going to try this with my Gigabyte 990FXA-UD5, a Nvidia GT-430 (host), and some older Geforce 7xxx which currently rotting in the cellar. (If I can use it for that: great)
The display panel has two inputs, so I'm planning to switch video between host and guest by simply pressing the source button.

But I wonder if it's possible to use a single keyboard and mouse for both host and guest? Not at the same time of course, more like in usual KVM VNC window.
And if so, how's the handling of the focus (vm or host)?
Or would it be better to get a separate PCIe USB controller and use a KVM switch?

Sorry for the maybe stupid question.

Another option is to use Synergy. I'm using it at the moment to share a keyboard and mouse between a desktop and laptop and it works perfectly. A few people have reported using it for sharing the keyboard and mouse between host and guest in a setup like this aswell. It's in the arch repositories under 'synergy'. It supports clipboard sharing and allows you to lock focus to a computer with a keypress, so as far as I can tell, it should work pretty well (it's what I plan to use when I eventually try to set this all up).

Offline

#207 2013-07-05 13:18:27

rabcor
Member
Registered: 2013-02-09
Posts: 495

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

nbhs wrote:

Try:

-cpu qemu64

and remove the -smp line

If that worked you might have built qemu without kvm support

#qemu-system-x86_64 -enable-kvm -M q35 -cpu qemu64 \ -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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \ -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

qemu-system-x86_64: -cpu qemu64: could not open disk image  -bios: No such file or directory

I'm looking into reinstalling qemu but like i said, you removed the link from your original post and i don't have any different source to build from than my current one except the git one, which is v 1.6 and has seabios intergrated, and i don't know how to patch the intergrated seabios, i couldn't find out how (but otherwise that is what i would do).

i tried removing the backslashes and the VM will start if i run it from X.

qemu-system-x86_64 -enable-kvm -M q35 -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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: Warning, device 0000:01:00.0 does not support reset
qemu-system-x86_64: -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1: Warning, device 0000:01:00.1 does not support reset
qemu-system-x86_64: Attempt to reset PCI bus for VGA support failed (Inappropriate ioctl for device).  VGA may not work.

if not running from x (terminal) then i get

Could not initialize SDL(No available video device) - exiting

instead of

qemu-system-x86_64: Attempt to reset PCI bus for VGA support failed (Inappropriate ioctl for device).  VGA may not work.

Last edited by rabcor (2013-07-05 13:28:33)

Offline

#208 2013-07-05 22:12:12

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

rabcor wrote:
nbhs wrote:

Try:

-cpu qemu64

and remove the -smp line

If that worked you might have built qemu without kvm support

#qemu-system-x86_64 -enable-kvm -M q35 -cpu qemu64 \ -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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \ -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

qemu-system-x86_64: -cpu qemu64: could not open disk image  -bios: No such file or directory

I'm looking into reinstalling qemu but like i said, you removed the link from your original post and i don't have any different source to build from than my current one except the git one, which is v 1.6 and has seabios intergrated, and i don't know how to patch the intergrated seabios, i couldn't find out how (but otherwise that is what i would do).

i tried removing the backslashes and the VM will start if i run it from X.

qemu-system-x86_64 -enable-kvm -M q35 -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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1

qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: Warning, device 0000:01:00.0 does not support reset
qemu-system-x86_64: -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1: Warning, device 0000:01:00.1 does not support reset
qemu-system-x86_64: Attempt to reset PCI bus for VGA support failed (Inappropriate ioctl for device).  VGA may not work.

if not running from x (terminal) then i get

Could not initialize SDL(No available video device) - exiting

instead of

qemu-system-x86_64: Attempt to reset PCI bus for VGA support failed (Inappropriate ioctl for device).  VGA may not work.

Qemu by default creates a sdl window, if you want to lauch qemu without X launch qemu with this option

-nographic

Are you using a patched kernel with vfio-reset patches?

EDIT: i re-uploaded qemu and linux-mainline builds on the main page

qemu 1.5.1 http://www.fileswap.com/dl/wzFxm2ltkJ
linux-mainline 3.10 http://www.fileswap.com/dl/9HpoqHLeBJ

Last edited by nbhs (2013-07-05 22:31:27)

Offline

#209 2013-07-06 13:18:23

rabcor
Member
Registered: 2013-02-09
Posts: 495

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

the qemu link says the file is not available.

If i use the -nographic option in terminal it just gives me the same error as in X.

I'm trying to passthrough an nvidia card.

my kernel has these options

CONFIG_VFIO_IOMMU_TYPE1=y
CONFIG_VFIO=y
CONFIG_VFIO_PCI=y
CONFIG_VFIO_PCI_VGA=y
INTEL_IOMMU_DEFAULT_ON=y

Since i don't have radeon i shouldn't need the vga-reset patches right? i've got nvidia GTX 600 series card.

Offline

#210 2013-07-06 19:03:07

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

rabcor wrote:

the qemu link says the file is not available.

If i use the -nographic option in terminal it just gives me the same error as in X.

I'm trying to passthrough an nvidia card.

my kernel has these options

CONFIG_VFIO_IOMMU_TYPE1=y
CONFIG_VFIO=y
CONFIG_VFIO_PCI=y
CONFIG_VFIO_PCI_VGA=y
INTEL_IOMMU_DEFAULT_ON=y

Since i don't have radeon i shouldn't need the vga-reset patches right? i've got nvidia GTX 600 series card.

Yeah sorry here's the qemu build: http://www.fileswap.com/dl/qDG531EyVy

In my experience using a 470gtx i didnt need the patches im not sure about the gtx 600

You should launch qemu like this:

qemu-system-x86_64 ... -vga none -nographic ...

Last edited by nbhs (2013-07-06 19:05:23)

Offline

#211 2013-07-07 11:08:14

Silencement
Member
From: France
Registered: 2012-08-06
Posts: 12

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Hi,

I'm currently using Xen 4.2 and a Windows 7 domU with VGA passthrough, and everything works perfectly. I saw your guide and thought I would try KVM.

I have installed Linux Mint (didn't really have the time to perform a full install of Arch), built kernel 3.10 with :

CONFIG_VFIO_IOMMU_TYPE1=y
CONFIG_VFIO=y
CONFIG_VFIO_PCI=y
CONFIG_VFIO_PCI_VGA=y

I also built qemu 1.5 and seabios 1.7.2 with the patch you provided, and added this to grub :

intel_iommu=on pci-stub.ids=1002:6738,1002:aa88 vfio_iommu_type1.allow_unsafe_interrupts=1

I can start a Windows VM but can't get VGA passthrough to work :

  • with -vga none, i have "qemu 1.5.0 monitor" in VNC and the VM does not start

  • with -vga cirrus or -vga std, and pci-assign, I have "the device cannot start" in W7 device manager

  • with vfio-pci, I have "the device cannot find enough free resources that it can use"

Here is how I start the VM :

qemu-system-x86_64 -enable-kvm \
-M q35 -nodefconfig -readconfig q35.cfg \
-m 4096 \
-cpu host -smp 2,sockets=1,cores=2,threads=1 \
-bios /usr/share/seabios/bios.bin \
-vga none \
-device vfio-pci,host=01:00.0,bus=ich9-pcie-port-1,addr=0.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1,bus=ich9-pcie-port-1,addr=0.1 \
-device ahci,id=drives \
-drive id=hda,format=raw,file=/dev/LVM/test \
-device ide-hd,drive=hda

And my PCI devices :

# lspci | grep AMD
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Barts XT [Radeon HD 6870]
01:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Barts HDMI Audio [Radeon HD 6800 Series]

Any help would be appreciated !

Also, I have a question : would it be possible to VGA passthrough the Intel integrated graphics ? I know it's partially possible with Xen (works fine in Windows domU but black screen in Linux domU), is it possible with KVM ?


Derpy Hooves is best pony.

Offline

#212 2013-07-09 10:57:17

teekay
Member
Registered: 2011-10-26
Posts: 270

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

apocolypse600 wrote:
teekay wrote:

I'm going to try this with my Gigabyte 990FXA-UD5, a Nvidia GT-430 (host), and some older Geforce 7xxx which currently rotting in the cellar. (If I can use it for that: great)
The display panel has two inputs, so I'm planning to switch video between host and guest by simply pressing the source button.

But I wonder if it's possible to use a single keyboard and mouse for both host and guest? Not at the same time of course, more like in usual KVM VNC window.
And if so, how's the handling of the focus (vm or host)?
Or would it be better to get a separate PCIe USB controller and use a KVM switch?

Sorry for the maybe stupid question.

Another option is to use Synergy. I'm using it at the moment to share a keyboard and mouse between a desktop and laptop and it works perfectly. A few people have reported using it for sharing the keyboard and mouse between host and guest in a setup like this aswell. It's in the arch repositories under 'synergy'. It supports clipboard sharing and allows you to lock focus to a computer with a keypress, so as far as I can tell, it should work pretty well (it's what I plan to use when I eventually try to set this all up).

This looks interesting for multi-screen, indeed. Thanks!

nbhs wrote:

I think its still possible to capture the mouse and keyboard on the qemu window, i havent tried though, i do recommend a kvm switch, i dont have one unfortunately, i do have 4 frontal usb ports, of which 2 are usb3, so i just switch my keyboard and mouse by changing from usb2 (host) to usb3(guest)

I went for a KVM switch - an el cheapo Aten CS682. Only issue so far is the crappy Etron USB3 host controller on the 990FXA-UD5 - the driver causes BSOD in Windows when trying to install it. Works fine in linux, though.
Other than that, everything works great so far. Thanks a lot for the HowTo!

Offline

#213 2013-07-09 19:14:11

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

teekay wrote:
apocolypse600 wrote:
teekay wrote:

I'm going to try this with my Gigabyte 990FXA-UD5, a Nvidia GT-430 (host), and some older Geforce 7xxx which currently rotting in the cellar. (If I can use it for that: great)
The display panel has two inputs, so I'm planning to switch video between host and guest by simply pressing the source button.

But I wonder if it's possible to use a single keyboard and mouse for both host and guest? Not at the same time of course, more like in usual KVM VNC window.
And if so, how's the handling of the focus (vm or host)?
Or would it be better to get a separate PCIe USB controller and use a KVM switch?

Sorry for the maybe stupid question.

Another option is to use Synergy. I'm using it at the moment to share a keyboard and mouse between a desktop and laptop and it works perfectly. A few people have reported using it for sharing the keyboard and mouse between host and guest in a setup like this aswell. It's in the arch repositories under 'synergy'. It supports clipboard sharing and allows you to lock focus to a computer with a keypress, so as far as I can tell, it should work pretty well (it's what I plan to use when I eventually try to set this all up).

This looks interesting for multi-screen, indeed. Thanks!

nbhs wrote:

I think its still possible to capture the mouse and keyboard on the qemu window, i havent tried though, i do recommend a kvm switch, i dont have one unfortunately, i do have 4 frontal usb ports, of which 2 are usb3, so i just switch my keyboard and mouse by changing from usb2 (host) to usb3(guest)

I went for a KVM switch - an el cheapo Aten CS682. Only issue so far is the crappy Etron USB3 host controller on the 990FXA-UD5 - the driver causes BSOD in Windows when trying to install it. Works fine in linux, though.
Other than that, everything works great so far. Thanks a lot for the HowTo!

I think i read some post mentioning it working out of the box with windows 8

EDIT: do you mind if i ask what card did you got it working with?

Last edited by nbhs (2013-07-09 19:52:29)

Offline

#214 2013-07-09 19:21:01

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Silencement wrote:

Hi,

I'm currently using Xen 4.2 and a Windows 7 domU with VGA passthrough, and everything works perfectly. I saw your guide and thought I would try KVM.

I have installed Linux Mint (didn't really have the time to perform a full install of Arch), built kernel 3.10 with :

CONFIG_VFIO_IOMMU_TYPE1=y
CONFIG_VFIO=y
CONFIG_VFIO_PCI=y
CONFIG_VFIO_PCI_VGA=y

I also built qemu 1.5 and seabios 1.7.2 with the patch you provided, and added this to grub :

intel_iommu=on pci-stub.ids=1002:6738,1002:aa88 vfio_iommu_type1.allow_unsafe_interrupts=1

I can start a Windows VM but can't get VGA passthrough to work :

  • with -vga none, i have "qemu 1.5.0 monitor" in VNC and the VM does not start

  • with -vga cirrus or -vga std, and pci-assign, I have "the device cannot start" in W7 device manager

  • with vfio-pci, I have "the device cannot find enough free resources that it can use"

Here is how I start the VM :

qemu-system-x86_64 -enable-kvm \
-M q35 -nodefconfig -readconfig q35.cfg \
-m 4096 \
-cpu host -smp 2,sockets=1,cores=2,threads=1 \
-bios /usr/share/seabios/bios.bin \
-vga none \
-device vfio-pci,host=01:00.0,bus=ich9-pcie-port-1,addr=0.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1,bus=ich9-pcie-port-1,addr=0.1 \
-device ahci,id=drives \
-drive id=hda,format=raw,file=/dev/LVM/test \
-device ide-hd,drive=hda

And my PCI devices :

# lspci | grep AMD
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Barts XT [Radeon HD 6870]
01:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Barts HDMI Audio [Radeon HD 6800 Series]

Any help would be appreciated !

Also, I have a question : would it be possible to VGA passthrough the Intel integrated graphics ? I know it's partially possible with Xen (works fine in Windows domU but black screen in Linux domU), is it possible with KVM ?

Right now there seems to be some problems using this guide on intel boards, the redhat dev mentioned that he got it working on his intel setup, and some users on the mailing list also reported success but with the igp disabled, but for most people on this thread the only solution was doing a secondary passthrough, im confident this will get worked out eventually. You can do it with standard mint packages for it you dont need vfio and/or a patched kernel (for secondary ), and no, its not possible right now to passthrough the igp with kvm.

EDIT: here's the mailing list discussion http://lists.gnu.org/archive/html/qemu- … 01722.html, and this patch might be of use http://lists.gnu.org/archive/html/qemu- … 01722.html

Last edited by nbhs (2013-07-09 19:27:40)

Offline

#215 2013-07-09 20:50:52

teekay
Member
Registered: 2011-10-26
Posts: 270

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

nbhs wrote:
teekay wrote:

I went for a KVM switch - an el cheapo Aten CS682. Only issue so far is the crappy Etron USB3 host controller on the 990FXA-UD5 - the driver causes BSOD in Windows when trying to install it. Works fine in linux, though.
Other than that, everything works great so far. Thanks a lot for the HowTo!

I think i read some post mentioning it working out of the box with windows 8

EDIT: do you mind if i ask what card did you got it working with?

Sure thing. It's a GT430 for the host, and a 8500GT for the guest. Had to use pci-stub so the host nvidia driver ignores it, and I'm using the patched nvidia-driver.

Last edited by teekay (2013-07-09 20:51:33)

Offline

#216 2013-07-09 22:38:57

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

teekay wrote:
nbhs wrote:
teekay wrote:

I went for a KVM switch - an el cheapo Aten CS682. Only issue so far is the crappy Etron USB3 host controller on the 990FXA-UD5 - the driver causes BSOD in Windows when trying to install it. Works fine in linux, though.
Other than that, everything works great so far. Thanks a lot for the HowTo!

I think i read some post mentioning it working out of the box with windows 8

EDIT: do you mind if i ask what card did you got it working with?

Sure thing. It's a GT430 for the host, and a 8500GT for the guest. Had to use pci-stub so the host nvidia driver ignores it, and I'm using the patched nvidia-driver.

Thanks a lot, its good to know a lot nvidia cards are working

Last edited by nbhs (2013-07-09 22:45:59)

Offline

#217 2013-07-10 05:36:19

Eldak
Member
Registered: 2013-07-10
Posts: 4

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Great writeup!  I've gotten most the way through this, but I'm running into a BSoD on Windows 7 (0xA5 -- The BIOS in this system is not fully ACPI compliant.)

I am using the latest SeaBIOS from the git repository, I've checked the "make menuconfig" and it does appear to be compiling this with ACPI support.  I have a Gigabyte 990XA-UD3 motherboard, which from what I can tell another use has gotten this to work.

=== EDIT ===
It looks like I was using the wrong SeaBIOS version (1.7.3 instead of 1.7.2 with the patch).  Windows 7 now attempts to install without throwing the ACPI Error.  However, during the Windows 7 installation, it finishes the "Copying Windows files" stage, but gets stuck on starting the "Expanding Windows files".   It does this using raw .img disk images and LVMs.  Any suggestions?

Last edited by Eldak (2013-07-10 06:55:52)

Offline

#218 2013-07-10 07:34:59

teekay
Member
Registered: 2011-10-26
Posts: 270

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Eldak wrote:

=== EDIT ===
It looks like I was using the wrong SeaBIOS version (1.7.3 instead of 1.7.2 with the patch).  Windows 7 now attempts to install without throwing the ACPI Error.  However, during the Windows 7 installation, it finishes the "Copying Windows files" stage, but gets stuck on starting the "Expanding Windows files".   It does this using raw .img disk images and LVMs.  Any suggestions?

Are you using an IDE bus for the disk or the legacy AHCI SATA as explained by nbhs in the howto? The IDE bus is _dead slow_ when installing Windows. I haven't tried SATA, so I can't say if it's better there. (I did the install in VirtualBox which takes only some minutes, and used VBoxManage clonehd to convert the .vdi to .raw, then created a 2GB fake qcow2 image and attached both in Qemu, so the system boots from the cloned raw image with IDE, and detects the VirtIO SCSI bus with the fake image, then installed virtio drivers for it.)

Offline

#219 2013-07-10 15:00:39

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Eldak wrote:

Great writeup!  I've gotten most the way through this, but I'm running into a BSoD on Windows 7 (0xA5 -- The BIOS in this system is not fully ACPI compliant.)

I am using the latest SeaBIOS from the git repository, I've checked the "make menuconfig" and it does appear to be compiling this with ACPI support.  I have a Gigabyte 990XA-UD3 motherboard, which from what I can tell another use has gotten this to work.

I get BSOD'S too using the lastest seabios from git with windows 7, this does not happen on windows 8, but that's why i recommend using the stable 1.7.2 branch + the patch i provided.


Eldak wrote:

=== EDIT ===
It looks like I was using the wrong SeaBIOS version (1.7.3 instead of 1.7.2 with the patch).  Windows 7 now attempts to install without throwing the ACPI Error.  However, during the Windows 7 installation, it finishes the "Copying Windows files" stage, but gets stuck on starting the "Expanding Windows files".   It does this using raw .img disk images and LVMs.  Any suggestions?

Perhaps the image is corrupt?

Offline

#220 2013-07-10 19:50:05

Eldak
Member
Registered: 2013-07-10
Posts: 4

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

I installed Windows 7 to an LVM using QEMU/virt-manager, then tried to start it up using the command given on page 1 of this thread to start the VM, enable the passthrough, etc, and then Windows blue screens.  I am able to boot the LVM up from a normal libvirt session, so the image is not corrupt.

Offline

#221 2013-07-10 22:28:28

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Eldak wrote:

I installed Windows 7 to an LVM using QEMU/virt-manager, then tried to start it up using the command given on page 1 of this thread to start the VM, enable the passthrough, etc, and then Windows blue screens.  I am able to boot the LVM up from a normal libvirt session, so the image is not corrupt.

Could you provide:

-whats your setup
-what card are you trying to passthrough
-which version of seabios, qemu, kernel are you using
-cmdline to launch qemu
-bsod info

Offline

#222 2013-07-11 03:38:54

Eldak
Member
Registered: 2013-07-10
Posts: 4

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

BSOD 0x7B
SeaBIOS: 1.7.2 + Patch provided here
QEMU 1.5.1
Kernel 3.10
ATI Radeon HD6870

Motherboard is a Gigabyte GA-990XA-UD3 with BIOS F13.

Everything works when I attach the LVM to a VM within virt-manager, but BSOD's when starting with the following command line:

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host -smp 6,sockets=1,cores=6,threads=1 -bios /home/patrick/seabios-1.7.2/seabios-1.7.2/out/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=02:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on -device vfio-pci,host=02:00.1,bus=root.1,addr=00.1 -device ahci,bus=pcie.0,id=ahci -drive file=/media/patrick/Storage/data/Operating\ Systems/Windows\ 7/Win7Pro.iso,id=isocd -device ide-cd,bus=ahci.1,drive=isocd -drive file=/dev/mapper/kvmspace-win7,id=disk,format=raw -device ide-hd,bus=ahci.0,drive=disk -boot menu=on &

Looking up the BSOD, It's referencing invalid boot device:  http://msdn.microsoft.com/en-us/library … s.85).aspx

The passthrough, etc, is working as intended as everything is displaying on my second video card that's being passed through.  I should also that, that with this configuration, command, etc, when I create a "new" win7 LVM and attempt to install Windows 7, the installation freezes before it starts to extract windows files.

Last edited by Eldak (2013-07-11 03:59:54)

Offline

#223 2013-07-11 04:39:14

nbhs
Member
From: Montevideo, Uruguay
Registered: 2013-05-02
Posts: 402

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

Eldak wrote:

BSOD 0x7B
SeaBIOS: 1.7.2 + Patch provided here
QEMU 1.5.1
Kernel 3.10
ATI Radeon HD6870

Motherboard is a Gigabyte GA-990XA-UD3 with BIOS F13.

Everything works when I attach the LVM to a VM within virt-manager, but BSOD's when starting with the following command line:

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host -smp 6,sockets=1,cores=6,threads=1 -bios /home/patrick/seabios-1.7.2/seabios-1.7.2/out/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=02:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on -device vfio-pci,host=02:00.1,bus=root.1,addr=00.1 -device ahci,bus=pcie.0,id=ahci -drive file=/media/patrick/Storage/data/Operating\ Systems/Windows\ 7/Win7Pro.iso,id=isocd -device ide-cd,bus=ahci.1,drive=isocd -drive file=/dev/mapper/kvmspace-win7,id=disk,format=raw -device ide-hd,bus=ahci.0,drive=disk -boot menu=on &

Looking up the BSOD, It's referencing invalid boot device:  http://msdn.microsoft.com/en-us/library … s.85).aspx

The passthrough, etc, is working as intended as everything is displaying on my second video card that's being passed through.  I should also that, that with this configuration, command, etc, when I create a "new" win7 LVM and attempt to install Windows 7, the installation freezes before it starts to extract windows files.

Did you install windows with virt manager using an ahci or ide controller? if you installed windows with the ide controller (which i believe virt-manager uses by default) you'll need to change some registry keys to make it boot on ahci, see this post: http://www.neowin.net/forum/topic/98737 … g-windows/

Also, If you're using vanilla kernel + qemu you might experience crashes, i posted some solutions on the guide, the most relieable one is using a patched kernel + patched qemu

Last edited by nbhs (2013-07-11 04:45:25)

Offline

#224 2013-07-11 05:25:36

Eldak
Member
Registered: 2013-07-10
Posts: 4

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

nbhs wrote:

Did you install windows with virt manager using an ahci or ide controller? if you installed windows with the ide controller (which i believe virt-manager uses by default) you'll need to change some registry keys to make it boot on ahci, see this post: http://www.neowin.net/forum/topic/98737 … g-windows/

Also, If you're using vanilla kernel + qemu you might experience crashes, i posted some solutions on the guide, the most relieable one is using a patched kernel + patched qemu

That helped it get past the BSoD, Thanks!  Now, it's acting like it's freezing up, but it's not frozen.  The Starting Windows screen, with the fading in/out brightness to the Windows logo, just sitting their.  I'll do some more research on this tomorrow.

Offline

#225 2013-07-11 10:16:24

naythuwin
Member
Registered: 2013-07-11
Posts: 1

Re: KVM VGA-Passthrough using the new vfio-vga support in kernel =>3.9

[abcd@unknow ~]$ qemu-system-x86_64 -enable-kvm -m 2048 -cpu host -smp 2 -device vfio-pci,host=05:00.0,x-vga=on -bios /usr/share/qemu/bios.bin -vga none
KVM internal error. Suberror: 1
emulation failure
EAX=00000000 EBX=00000000 ECX=0000a19e EDX=000003d4
ESI=00009e48 EDI=0000823c EBP=0000c58a ESP=00008232
EIP=0009ffff EFL=00010006 [-----P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 00000000 ffffffff 00809300
CS =0000 00000000 ffffffff 00809b00
SS =0000 00000000 ffffffff 00809300
DS =0000 00000000 ffffffff 00809300
FS =0000 00000000 ffffffff 00809300
GS =0000 00000000 ffffffff 00809300
LDT=0000 00000000 0000ffff 00008200
TR =0000 00000000 0000ffff 00008b00
GDT=     000fd808 00000037
IDT=     00000000 000003ff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000000
Code=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00> ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

cpu : intel core i7
mobo : foxconn h61ap
kernel : Linux abcdef 3.10.0-1-mainline #1 SMP PREEMPT Wed Jul 10 23:38:07 MMT 2013 x86_64 GNU/Linux
graphic : onboard intel and pny geforce 8400gs pci 512M low profile

lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
05:00.0 VGA compatible controller: NVIDIA Corporation G98 [GeForce 8400 GS Rev. 2] (rev a1)

secondery passthrough is work for me but primary is not
help me!

Last edited by naythuwin (2013-07-11 10:24:57)

Offline

Board footer

Powered by FluxBB