Xen PCI/VGA passthrough failing on Ubuntu 12.04 (64-bit)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Xen PCI/VGA passthrough failing on Ubuntu 12.04 (64-bit)

CalcProgrammer1
This post has NOT been accepted by the mailing list yet.
I've been trying to set up a VGA-passthrough on my Ubuntu 12.04 box to run Windows (for gaming) while leaving my RAID-5 array available (managed by Linux).  First, here are the machine specs:

CPU:  AMD A8-3870K 3.4GHz Quad-Core APU
GPU:  APU-integrated AMD Radeon 6550 (shared memory)
Mobo:  ASUS F1A75-V EVO with AMD-virtualization enabled in UEFI-BIOS
RAM:  8GB DDR3 1866 G-Skill Sniper (2x4GB)

OS:  Ubuntu 12.04 64-bit (Desktop Edition) with Xen packages installed (no custom kernel or modules, everything from repos).  I'm running GNOME 3 fallback with the open-source Radeon driver, but want to write a script that shuts down X, disables the radeon driver, and boots the VM.

I've been messing around with Xen and have the hvm working (boots Win7 ISO with VNC interface fine).  However, when I try to attach a VGA device (or any PCI device, as I just retried with my sound card) I get this:

root@Adam-Server:~# xl create /etc/xen/xenwin.cfg
Parsing config file /etc/xen/xenwin.cfg
xc: info: VIRTUAL MEMORY ARRANGEMENT:
  Loader:        0000000000100000->000000000017c510
  TOTAL:         0000000000000000->00000000ff800000
  ENTRY ADDRESS: 00000000001015a0
xc: info: PHYSICAL MEMORY ALLOCATION:
  4KB PAGES: 0x0000000000000200
  2MB PAGES: 0x00000000000005fb
  1GB PAGES: 0x0000000000000001
libxl: error: libxl_pci.c:712:do_pci_add xc_assign_device failed
Daemon running with PID 11389

Leading up to this error, I have done the following to put the device into what is supposedly an assignable state:

# stop lightdm
# echo 0000:00:01.0 > /sys/bus/pci/drivers/radeon/unbind
# modprobe xen-pciback
# echo 0000:00:01.0 > /sys/bus/pci/drivers/pciback/new_slot
# echo 0000:00:01.0 > /sys/bus/pci/drivers/pciback/bind
# xl pci-list-assignable-devices
0000:00:01.0

where 0000:00:01.0 is the location of the graphics card.  I'm not sure what else there is to try at this point.  Is this a bug, a problem with Ubuntu's repository version, or something I'm doing wrong?  Here is my xenwin.cfg:

kernel = "/usr/lib/xen-4.1/boot/hvmloader"
builder='hvm'
memory = 4096

# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
shadow_memory = 8
name = "xenwin7"
vif = [ 'type=ioemu, bridge=xenbr0' ]
acpi = 1
apic = 1
disk = [ 'file:/etc/xen/xenwin.img,hda,w', 'file:/media/RAID5/Software/Operating Systems/Windows/Windows 7 64 (Universal).iso,hdc:cdrom,r' ]

device_model = '/usr/lib/xen-4.1/bin/qemu-dm'

boot="dc"

#vnc=1
#vncconsole=1

xen_platform_pci=1
gfx_passthrough
#pci=['00:14.2']
pci=['00:01.0']

serial='pty'
usbdevice='tablet'
#extra='xencons=tty'
#extra="console=hvc0"
Reply | Threaded
Open this post in threaded view
|

Re: Xen PCI/VGA passthrough failing on Ubuntu 12.04 (64-bit)

eieiguy
This post has NOT been accepted by the mailing list yet.
I believe your biggest problem is that the A75 chipset does not support IOMMU.  Based on what I've read, it would be impossible to do vga passthrough without it.  You best bet is a 990FX or 970 motherboard with any AM3 or AM3+ cpu.



CalcProgrammer1 wrote
I've been trying to set up a VGA-passthrough on my Ubuntu 12.04 box to run Windows (for gaming) while leaving my RAID-5 array available (managed by Linux).  First, here are the machine specs:

CPU:  AMD A8-3870K 3.4GHz Quad-Core APU
GPU:  APU-integrated AMD Radeon 6550 (shared memory)
Mobo:  ASUS F1A75-V EVO with AMD-virtualization enabled in UEFI-BIOS
RAM:  8GB DDR3 1866 G-Skill Sniper (2x4GB)