[SOLVED] VGA Passthrough dilemma

aarb000

Renowned Member
Feb 15, 2016
16
0
66
I have a system with the following components:

ASROCK 990FX extreme 4
AMD FX-8350
ATI Rage PCI
ATI HD6450 PCIE

I can passthrough my 6450 just fine using SeaBIOS to both Window and Linux guests, performance is good, and the only issue I have is that I can’t use my ATI Rage as a console card. When I start up any machine with VGA passthrough, the Proxmox console switches to the HD6450 card, then the passed through guest takes over and boots up fine. I now have no ability to manage Proxmox unless I use another machine.

If I use OVMF, the Rage console card keeps focus on ProxMox, and the guest boots up fine. I have two problems with this setup. My 6450 is NOT UEFI compatible and I can’t see the machine boot, but when Windows (10) loads the driver, I get output, and the system works as expected. I tried the same thing on Ubuntu, and Fedora, but I can not get them to boot without going into the OVMF settings each and every time and selecting grubx64.efi from the Boot Maintenance Manager menu. This is impossible to do with the 6450 passed through. If I got a new UEFI card (I’m not opposed to and tested with an Nvidia GTX 960), I could see OVMF, but would still have to change the OVMF settings each and every time.

I’d prefer to get help in getting my system to work with SeaBIOS, however, I know the performance and OVMF settings issues are probably more easily solvable so that would be a good route too.

Doing a lot of research online I would have thought that the SeaBIOS option would be impossible, but it was actually working for a couple of weeks, and have tried countless things to get it working again. I’d appreciate any assistance in getting either of these two options working. This link: http://vfio.blogspot.com/2014/08/vfiovga-faq.html Question 4, hints that it is possible but don’t know if this patch is in Proxmox, and I don’t know how to patch it.

Thanks in advance for any assistance.

Here is how I have my system configured:

Code:
proxmox-ve: 4.1-37 (running kernel: 4.2.8-1-pve)

pve-manager: 4.1-13 (running version: 4.1-13/cfb599fb)

pve-kernel-4.2.8-1-pve: 4.2.8-37

lvm2: 2.02.116-pve2

corosync-pve: 2.3.5-2

libqb0: 1.0-1

pve-cluster: 4.0-32

qemu-server: 4.0-55

pve-firmware: 1.1-7

libpve-common-perl: 4.0-48

libpve-access-control: 4.0-11

libpve-storage-perl: 4.0-40

pve-libspice-server1: 0.12.5-2

vncterm: 1.2-1

pve-qemu-kvm: 2.5-5

pve-container: 1.0-44

pve-firewall: 2.0-17

pve-ha-manager: 1.0-21

ksm-control-daemon: 1.2-1

glusterfs-client: 3.5.2-2+deb8u1

lxc-pve: 1.1.5-7

lxcfs: 0.13-pve3

cgmanager: 0.39-pve1

criu: 1.6.0-1

zfsutils: 0.6.5-pve7~jessie

Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on pcie_acs_override=downstream"

Code:
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:02.0
/sys/kernel/iommu_groups/2/devices/0000:00:04.0
/sys/kernel/iommu_groups/3/devices/0000:00:05.0
/sys/kernel/iommu_groups/4/devices/0000:00:06.0
/sys/kernel/iommu_groups/5/devices/0000:00:09.0
/sys/kernel/iommu_groups/6/devices/0000:00:0a.0
/sys/kernel/iommu_groups/7/devices/0000:00:11.0
/sys/kernel/iommu_groups/8/devices/0000:00:12.0
/sys/kernel/iommu_groups/8/devices/0000:00:12.2
/sys/kernel/iommu_groups/9/devices/0000:00:13.0
/sys/kernel/iommu_groups/9/devices/0000:00:13.2
/sys/kernel/iommu_groups/10/devices/0000:00:14.0
/sys/kernel/iommu_groups/11/devices/0000:00:14.1
/sys/kernel/iommu_groups/12/devices/0000:00:14.2
/sys/kernel/iommu_groups/13/devices/0000:00:14.3
/sys/kernel/iommu_groups/14/devices/0000:00:14.4
/sys/kernel/iommu_groups/14/devices/0000:07:06.0
/sys/kernel/iommu_groups/15/devices/0000:00:14.5
/sys/kernel/iommu_groups/16/devices/0000:00:15.0
/sys/kernel/iommu_groups/17/devices/0000:00:15.1
/sys/kernel/iommu_groups/18/devices/0000:00:16.0
/sys/kernel/iommu_groups/18/devices/0000:00:16.2
/sys/kernel/iommu_groups/19/devices/0000:01:00.0
/sys/kernel/iommu_groups/19/devices/0000:01:00.1
/sys/kernel/iommu_groups/20/devices/0000:02:00.0
/sys/kernel/iommu_groups/21/devices/0000:03:00.0
/sys/kernel/iommu_groups/22/devices/0000:04:00.0
/sys/kernel/iommu_groups/23/devices/0000:05:00.0
/sys/kernel/iommu_groups/23/devices/0000:05:00.1
/sys/kernel/iommu_groups/24/devices/0000:06:00.0
/sys/kernel/iommu_groups/25/devices/0000:08:00.0
/sys/kernel/iommu_groups/26/devices/0000:09:00.0

Code:
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (external gfx0 port B) (rev 02)
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD/ATI] RD990 I/O Memory Management Unit (IOMMU)
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (PCI express gpp port B)
00:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (PCI express gpp port D)
00:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (PCI express gpp port E)
00:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (PCI express gpp port F)
00:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (PCI express gpp port H)
00:0a.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (external gfx1 port A)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (rev 40)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 42)
00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller (rev 40)
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA) (rev 40)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge (rev 40)
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:15.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0)
00:15.1 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB700/SB800/SB900 PCI to PCI bridge (PCIE port 1)
00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 3
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 5
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio [Radeon HD 6400 Series]
02:00.0 IDE interface: Marvell Technology Group Ltd. 88SE912x SATA 6Gb/s Controller [IDE mode] (rev 12)
03:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01)
04:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01)
05:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6315 Series Firewire Controller
05:00.1 IDE interface: VIA Technologies, Inc. VT6415 PATA IDE Host Controller (rev a0)
06:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57781 Gigabit Ethernet PCIe (rev 10)
07:06.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] 3D Rage IIC PCI [Mach64 GT IIC] (rev 7a)
08:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
09:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Code:
options vfio-pci ids=1002:6779,1002:aa98,10de:1401,10de:0fba

Code:
blacklist nvidiafb
blacklist radeon
blacklist snd_hda_intel
blacklist nouveau

Code:
bootdisk: virtio0
cores: 4
hostpci0: 01:00,pcie=1,x-vga=on
ide2: none,media=cdrom
machine: q35
memory: 8192
name: arch-workstation
net0: virtio=52:75:C8:B5:16:A1,bridge=vmbr0
numa: 0
ostype: l26
parent: open_source_driver
smbios1: uuid=32e68e70-e2c6-4e7a-be5c-5b212ff77468
sockets: 1
usb0: host=9-2
usb1: host=9-3
usb2: host=6-1.1
usb3: host=6-1.2
usb4: host=6-1.3
virtio0: local-250:107/vm-107-disk-1.qcow2,size=60G
 
I tried the same thing on Ubuntu, and Fedora, but I can not get them to boot without going into the OVMF settings each and every time and selecting grubx64.efi from the Boot Maintenance Manager menu

I think you should try with virtio-scsi, and not virtio. See
https://pve.proxmox.com/wiki/Pci_passthrough#GPU_OVMF_PCI_EXPRESS_PASSTHROUGH.

Its selecting the correct boot device with uefi without need to choose it at each start.


Doing a lot of research online I would have thought that the SeaBIOS option would be impossible, but it was actually working for a couple of weeks, and have tried countless things to get it working again. I’d appreciate any assistance in getting either of these two options working. This link: http://vfio.blogspot.com/2014/08/vfiovga-faq.html Question 4, hints that it is possible but don’t know if this patch is in Proxmox, and I don’t know how to patch it.
The i915 arbiter patch is not include in proxmox.
the proxmox kernel source code is here:
https://git.proxmox.com/?p=pve-kernel.git;a=summary

just edit the makefile, and add the patch. (Not sure if it's applying fine on current 4.2 kernel)
 
Thank you for your reply.

The conf file above was for a SeaBIOS system thinking it might help troubleshoot that problem. My OVM configuration for Fedora gives me this error:

System BootOrder not found. Initializing defaults.

And is shown below:

Code:
bios: ovmf
boot: cdn
bootdisk: scsi0
cores: 4
ide2: volume1:iso/Fedora-Live-Workstation-x86_64-23-10.iso,media=cdrom
memory: 2048
name: ovmf-linux
net0: virtio=3A:65:36:37:38:30,bridge=vmbr0
numa: 0
ostype: l26
parent: snap
scsihw: virtio-scsi-pci
smbios1: uuid=e0e10b5b-1782-4905-b286-fc83fab48fe7
sockets: 1
scsi0: local-500:121/vm-121-disk-1.qcow2,size=32G

Here is a conf for Windows 10 that boots up directly.

Code:
bios: ovmf
boot: c
bootdisk: scsi0
cores: 4
#hostpci0: 01:00,pcie=1,x-vga=on
#machine: q35
memory: 4096
name: ovmf-test
net0: virtio=32:30:31:35:38:33,bridge=vmbr0
numa: 0
ostype: win8
parent: power
scsi0: local-500:120/vm-120-disk-1.qcow2,cache=writeback,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=51ef44cb-eb48-46ea-879d-cd93699b2602
sockets: 1
#usb0: host=9-2
#usb1: host=9-3

I'm looking at the link to the kernel and clicked snapshot on the line that said update changelog master. Is that correct link to download? It does have a makefile in the download. I read the readme and it wasn't really clear on how to patch it, so I will see if I can do some research in that area and try to do the patch.
 
Last edited:
Thank you for your reply.

The conf file above was for a SeaBIOS system thinking it might help troubleshoot that problem. My OVM configuration for Fedora gives me this error:

System BootOrder not found. Initializing defaults.

Do you have installed fedora with bios: ovmf , or do you have change bios: ovmf after install.
Some linux installers don't install uefi partition by default if uefi is not present at install
 
I definitely had it set for OVMF during the install. I tried with Fedora 23 and Ubuntu 14.04. I confirmed that I got the right GUI for UEFI when the .iso boot. Also, I can browse the UEFI partition to choose grubx64.efi during OVMF so feel that it was installed correctly. My best guess to the problem is that I moved from non-subscription to testing and back while trying to see if I could get the SeaBIOS to not freeze my RAGE card. I am unsure if I have some testing files that are not compatible with non-subscription files. Could this be possible?
 
Still having a problem getting OVMF machines to boot. I can add that not only does Windows 10 work, but I also tried with a CentOS7 minimal ISO and that worked too. I tried Ubuntu and Fedora again, which still don't boot. I also downloaded the latest Antergos ISO, which also wouldn't boot. Any ideas on why some ISOs will install and boot under OVMF and others won't?
 
Still having a problem getting OVMF machines to boot. I can add that not only does Windows 10 work, but I also tried with a CentOS7 minimal ISO and that worked too. I tried Ubuntu and Fedora again, which still don't boot. I also downloaded the latest Antergos ISO, which also wouldn't boot. Any ideas on why some ISOs will install and boot under OVMF and others won't?

I think that installer should support uefi.
I'm not sure it's the case by default for ubuntu, see:
https://help.ubuntu.com/community/UEFI.

The installer should create the disk as GPT, and create a UEFI partition

I have installed archlinux wihtout any problem
https://wiki.archlinux.org/index.php/beginners'_guide#UEFI.2FGPT_examples
with systemd-boot as boot loader
 
According to the Ubuntu link, nothing special is required if you use the automatic installer ("Erase the disk and install Ubuntu". ) This is what I did but I have the same issue where I can get it to boot by tweaking the UEFI settings, but it won't boot on its own. The link also says to verify that it installed with UEFI by checking the /etc/fstab file. Mine has the correct entry. I also look at gparted and have the boot and ESP flat.

I have also created a new boot entry in UEFI, but it doesn't save. If UEFI settings saved, it would solve this problem as well. Should it by saving?

I am attaching my config file, perhaps there are invalid settings.

Code:
balloon: 1024
bios: ovmf
bootdisk: scsi0
cores: 4
ide2: volume1:iso/ubuntu-mate-15.10-desktop-amd64.iso,media=cdrom
memory: 4096
name: mate-desktop
net0: virtio=36:33:30:30:62:32,bridge=vmbr0
numa: 0
ostype: l26
scsi0: local-500:124/vm-124-disk-1.qcow2,cache=writeback,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=b7fbd72d-8a93-47a4-8efe-2b90dfa1df3e
sockets: 1
 
Fantastic!!!

Works like a charm.

Thank you Spirit!

How do I mark this solved?
 
Last edited: