Hello,
I'm hoping someone can help me figure this out and get passthrough working.
I have an Asrock J4105 with an Intel Quad-core processor and onboard Intel UHD605 graphics.
I've installed Unraid (loving it), but it's also a real desire of mine to use the machine as a media player. I've been trying to passthrough the UHD605 to a VM of Ubuntu. (Though I'll take any OS, if passthrough to it can work.). After much scouring of forums, I've gotten to a point where Ubuntu VM runs happily from the DVI output. But the video card is still never recognised properly and I can't get hardware acceleration to effectively play video files.
A bare metal host install of Ubuntu works absolutely fine with the UHD605 card.
In 'good' host Ubuntu settings I see this, and it's what I want:
But in VM Ubuntu what I get instead is:
My Unraid OS syslinux config is:
Unraid OS:
kernel /bzimage
append pcie_acs_override=downstream,multifunction vfio-pci.ids=8086:0412,8086:a170 video=efifb:off,vesafb:off vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot
I was using a modprobe.blacklist=.... But it didn't seem to make any difference.
I'm even supplying a Video Rom bios of the UHD605 - which doesn't seem to make much difference either way.
My VMS settings has PCIe override set to: Both, and VFIO Allow unsafe interrupts is: Yes.
But still with all that, I can't get proper passthrough.
When I look through Dmesg in Ubuntu I see the following error that I think is the culprit:
[drm:i915_gem_init_stolen [i915]] *ERROR* conflict detected with stolen region: [mem 0x70000000-0x7fffffff]
My Ubuntu VM log from Unraid looks like this:
ErrorWarningSystemArrayLogin
-overcommit mem-lock=off \
-smp 2,sockets=1,cores=2,threads=1 \
-uuid a2e91254-bd7c-8e33-fcf6-cc9a5f85ce29 \
-display none \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=33,server,nowait \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=utc,driftfix=slew \
-global kvm-pit.lost_tick_policy=delay \
-no-hpet \
-no-shutdown \
-boot strict=on \
-device pcie-root-port,port=0xb,chassis=4,id=pci.4,bus=pcie.0,addr=0x1.0x3 \
-device pcie-root-port,port=0x8,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x1 \
-device pcie-root-port,port=0x9,chassis=2,id=pci.2,bus=pcie.0,addr=0x1.0x1 \
-device pcie-root-port,port=0xa,chassis=3,id=pci.3,bus=pcie.0,addr=0x1.0x2 \
-device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x7.0x7 \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x7 \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x7.0x1 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x7.0x2 \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.2,addr=0x0 \
-blockdev '{"driver":"file","filename":"/mnt/user/domains/Ubuntu-19_2nd/vdisk1.img","node-name":"libvirt-1-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-hd,bus=ide.2,drive=libvirt-1-format,id=sata0-0-2,bootindex=1,write-cache=on \
-netdev tap,fd=35,id=hostnet0,vhost=on,vhostfd=36 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:2b:b5:3f,bus=pci.1,addr=0x0 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,fd=38,server,nowait \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-device vfio-pci,host=0000:00:02.0,id=hostdev0,bus=pcie.0,addr=0x2,romfile=/mnt/user/isos/VBIOS/intel_uhd_605_vbios/intel_uhd_605_vbios.rom \
-device vfio-pci,host=0000:00:0e.0,id=hostdev1,bus=pci.3,addr=0x0 \
-device usb-host,hostbus=1,hostaddr=2,id=hostdev2,bus=usb.0,port=1 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
2020-03-18 12:43:33.085+0000: Domain id=3 is tainted: high-privileges
2020-03-18 12:43:33.085+0000: Domain id=3 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)
2020-03-18T12:43:34.592367Z qemu-system-x86_64: -device vfio-pci,host=0000:00:02.0,id=hostdev0,bus=pcie.0,addr=0x2,romfile=/mnt/disk1/isos/VBIOS/intel_uhd_605_vbios/intel_uhd_605_vbios.rom: IGD device 0000:00:02.0 cannot support legacy mode due to existing devices at address 1f.0
And the Dmesg grepped for only i915 stuff looks like this: You'll see there's errors about failing to initialise GPU and declaring it wedged!
sim@sim-Standard-PC-Q35-ICH9-2009:~$ dmesg | grep -iC 3 "i915"
[ 7.401484] intel_telemetry_core Init
[ 7.413539] Invalid pltconfig, ensure IPC1 device is enabled in BIOS
[ 7.443107] Invalid pltconfig, ensure IPC1 device is enabled in BIOS
[ 7.516713] i915 0000:00:02.0: vgaarb: deactivate vga console
[ 7.516844] [drm:i915_gem_init_stolen [i915]] *ERROR* conflict detected with stolen region: [mem 0x70000000-0x7fffffff]
[ 7.521727] [drm] couldn't get memory information
[ 7.572927] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 7.572929] [drm] Driver supports precise vblank timestamp query.
[ 7.572972] i915 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x0000
[ 7.572976] [drm] Failed to find VBIOS tables (VBT)
[ 7.587479] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 7.598615] [drm] Applying Increase DDI Disabled quirk
[ 7.641456] [drm] Finished loading DMC firmware i915/glk_dmc_ver1_04.bin (v1.4)
[ 8.288163] audit: type=1400 audit(1584535434.498:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=485 comm="apparmor_parser"
[ 8.289205] audit: type=1400 audit(1584535434.498:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_filter" pid=485 comm="apparmor_parser"
[ 8.290194] audit: type=1400 audit(1584535434.498:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=485 comm="apparmor_parser"
--
[ 8.403693] [drm] RC6 disabled by BIOS
[ 8.403694] [drm] RC6 disabled, disabling runtime PM support
[ 8.501351] audit: type=1400 audit(1584535434.710:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/cups-browsed" pid=489 comm="apparmor_parser"
[ 8.626603] i915 0000:00:02.0: Failed to idle engines, declaring wedged!
[ 8.664155] audit: type=1400 audit(1584535434.874:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="lsb_release" pid=490 comm="apparmor_parser"
[ 8.698558] i915 0000:00:02.0: Failed to initialize GPU, declaring it wedged!
[ 8.698565] i915 0000:00:02.0: Please file a bug at https://bugs.freedesktop.org/enter_bug.cgi?product=DRI against DRM/Intel providing the dmesg log by booting with drm.debug=0xf
[ 8.719360] [drm] Initialized i915 1.6.0 20190619 for 0000:00:02.0 on minor 0
[ 8.719589] snd_hda_intel 0000:03:00.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 9.014624] fbcon: i915drmfb (fb0) is primary device
[ 9.014694] Console: switching to colour frame buffer device 240x75
[ 9.014736] i915 0000:00:02.0: fb0: i915drmfb frame buffer device
[ 9.252442] audit: type=1400 audit(1584535435.462:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/sbin/dhclient" pid=491 comm="apparmor_parser"
[ 9.257476] audit: type=1400 audit(1584535435.466:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=491 comm="apparmor_parser"
[ 9.260483] audit: type=1400 audit(1584535435.470:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-helper" pid=491 comm="apparmor_parser"
The LSPCI look like this:
00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller
00:01.0 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.1 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.2 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.3 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:02.0 VGA compatible controller: Intel Corporation Device 3185 (rev 03)
00:07.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:07.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:07.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:07.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
01:00.0 Ethernet controller: Red Hat, Inc. Virtio network device (rev 01)
02:00.0 Communication controller: Red Hat, Inc. Virtio console (rev 01)
03:00.0 Audio device: Intel Corporation Device 3198 (rev 03)
If anyone has any ideas, I would greatly appreciate it.
-Simt