Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 669880 - app-emulation/qemu-3.0.0: efifb on Linux guest fails to load when using VGA passthrough
Summary: app-emulation/qemu-3.0.0: efifb on Linux guest fails to load when using VGA p...
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Matthias Maier
URL: https://bugs.launchpad.net/qemu/+bug/...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-28 17:02 UTC by nvinson234
Modified: 2020-04-18 19:33 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
guest dmesg -- configuration 1.log (guest dmesg -- configuration 1.log,42.74 KB, text/x-log)
2018-10-28 17:02 UTC, nvinson234
Details
guest dmesg -- configuration 2.log (guest dmesg -- configuration 2.log,40.66 KB, text/x-log)
2018-10-28 17:03 UTC, nvinson234
Details
lspci -nnk (file_669880.txt,4.20 KB, text/plain)
2018-10-28 17:04 UTC, nvinson234
Details
emerge --info qemu (file_669880.txt,7.81 KB, text/plain)
2018-10-28 17:05 UTC, nvinson234
Details
qemu configuration #1 (file_669880.txt,1.01 KB, text/plain)
2018-10-28 17:07 UTC, nvinson234
Details
qemu configuration #2 (file_669880.txt,971 bytes, text/plain)
2018-10-28 17:07 UTC, nvinson234
Details

Note You need to log in before you can comment on or make changes to this bug.
Description nvinson234 2018-10-28 17:02:29 UTC
Created attachment 553532 [details]
guest dmesg -- configuration 1.log

The EFI framebuffer fails to load when booting a Gentoo guest using ovmf + vga_passthrough.  I retested using they system rescue CD and saw the same issue, but also noticed that when a second framebuffer loads, nouveaufb in my case, the terminal appears.  I have also verified that the Gentoo min CD is not hanging at boot as I can type 'poweroff' after waiting a few minutes and the system responds by powering off.  I am unable to reproduce with seabios as I have been unable to get vga passthrough to work with that BIOS.

Steps to Reproduce:
    1. Install qemu and ovmf
    2. Download systemrescuecd-x86-5.3.1.iso
    3. Run qemu using one of the configurations below
    4. Select first boot option in GRUB menu
    5. Wait 30 seconds
    6. Press enter # System rescue is prompting for the keymap between steps 5 and 6
    7. Wait 2 minutes
    8. Observe fb console
    9. Note lack of output until very late in boot process
   10. Check dmesg
   11. Note efifb failed to load (invalid address)
   12. Note nouveaufb started late in boot process 

Expected Results:
   The EFI FB to load and display output to monitor.  This is the behavior I see when booting the host system via UEFI.

Actual Results:
   The EFI FB fails to load and display output.  System fails to display any output until nouveaufb loads.  When booting using the Gentoo minCD, this makes the system largely unusable.

Additional Information:

dmesg logs will be added as attachments.

lspci -nnk:

00:00.0 Host bridge [0600]: Intel Corporation 4th Gen Core Processor DRAM Controller [8086:0c00] (rev 06)
	Subsystem: ASUSTeK Computer Inc. 4th Gen Core Processor DRAM Controller [1043:8534]
	Kernel driver in use: hsw_uncore
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller [8086:0c01] (rev 06)
	Kernel driver in use: pcieport
00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)
	DeviceName:  Onboard IGD
	Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [1043:8534]
	Kernel driver in use: i915
00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
	Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [1043:8534]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI [8086:8c31] (rev 05)
	Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB xHCI [1043:8534]
	Kernel driver in use: xhci_hcd
00:16.0 Communication controller [0780]: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 [8086:8c3a] (rev 04)
	Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family MEI Controller [1043:8534]
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection I217-V [8086:153b] (rev 05)
	DeviceName:  Onboard LAN
	Subsystem: ASUSTeK Computer Inc. Ethernet Connection I217-V [1043:859f]
	Kernel driver in use: e1000e
00:1a.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 [8086:8c2d] (rev 05)
	Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB EHCI [1043:8534]
	Kernel driver in use: ehci-pci
00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 05)
	Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset High Definition Audio Controller [1043:859d]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 [8086:8c10] (rev d5)
	Kernel driver in use: pcieport
00:1c.3 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 [8086:8c16] (rev d5)
	Kernel driver in use: pcieport
00:1d.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 [8086:8c26] (rev 05)
	Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB EHCI [1043:8534]
	Kernel driver in use: ehci-pci
00:1f.0 ISA bridge [0601]: Intel Corporation Z87 Express LPC Controller [8086:8c44] (rev 05)
	Subsystem: ASUSTeK Computer Inc. Z87 Express LPC Controller [1043:8534]
00:1f.2 SATA controller [0106]: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] [8086:8c02] (rev 05)
	Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] [1043:8534]
	Kernel driver in use: ahci
00:1f.3 SMBus [0c05]: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller [8086:8c22] (rev 05)
	Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family SMBus Controller [1043:8534]
	Kernel driver in use: i801_smbus
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104 [GeForce GTX 1070] [10de:1b81] (rev a1)
	Subsystem: Micro-Star International Co., Ltd. [MSI] GP104 [GeForce GTX 1070] [1462:3302]
	Kernel driver in use: vfio-pci
01:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)
	Subsystem: Micro-Star International Co., Ltd. [MSI] GP104 High Definition Audio Controller [1462:3302]
	Kernel driver in use: vfio-pci
	Kernel modules: snd_hda_intel
03:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1062 Serial ATA Controller [1b21:0612] (rev 01)
	Subsystem: ASUSTeK Computer Inc. ASM1062 Serial ATA Controller [1043:858d]
	Kernel driver in use: ahci

qemu configuration #1:
    #!/bin/sh

    VM_MACHINE_PATH="$(dirname "$0")/../machines/Gentoo_qxl"

    /usr/bin/qemu-system-x86_64								\
	-rtc base=localtime								\
	-m 8G										\
	-usb										\
	-accel kvm									\
	-machine q35									\
	-cpu host,kvm=off								\
	-smp maxcpus=4,cores=2,threads=2,sockets=1					\
	-netdev user,id=vmnic,hostname=Gentoo_qxl					\
	-vga qxl									\
	-device vfio-pci,host=01:00.1							\
	-device vfio-pci,host=01:00.0,							\
	-device virtio-net,netdev=vmnic							\
	-device usb-host,vendorid=0x1852,productid=0x7022				\
	-device usb-host,vendorid=0x046d,productid=0xc31c				\
	-device usb-host,vendorid=0x046d,productid=0xc52b				\
	-device virtio-balloon								\
	-drive if=pflash,format=raw,readonly,file=/usr/share/edk2-ovmf/OVMF_CODE.fd	\
	-drive if=pflash,format=raw,file="${VM_MACHINE_PATH}/OVMF_VARS.fd"		\
	-drive file="${VM_MACHINE_PATH}/disk.img",format=raw,if=virtio			\
	-spice port=8400,addr=0.0.0.0,disable-ticketing					\
	-display none -cdrom systemrescuecd-x86-5.3.1.iso


qemu configuration #2:
    #!/bin/sh

    VM_MACHINE_PATH="$(dirname "$0")/../machines/Gentoo"

    /usr/bin/qemu-system-x86_64								\
	-rtc base=localtime								\
	-m 8G										\
	-usb										\
	-vga none									\
	-accel kvm									\
	-machine q35									\
	-cpu host,kvm=off								\
	-smp maxcpus=4,cores=2,threads=2,sockets=1					\
	-netdev user,id=vmnic,hostname=Gentoo						\
	-device vfio-pci,host=01:00.1							\
	-device vfio-pci,host=01:00.0,							\
	-device virtio-net,netdev=vmnic							\
	-device usb-host,vendorid=0x1852,productid=0x7022				\
	-device usb-host,vendorid=0x046d,productid=0xc31c				\
	-device usb-host,vendorid=0x046d,productid=0xc52b				\
	-device virtio-balloon								\
	-drive if=pflash,format=raw,readonly,file=/usr/share/edk2-ovmf/OVMF_CODE.fd	\
	-drive if=pflash,format=raw,file="${VM_MACHINE_PATH}/OVMF_VARS.fd"		\
	-drive file="${VM_MACHINE_PATH}/disk.img",format=raw,if=virtio			\
	-display none -cdrom systemrescuecd-x86-5.3.1.iso


$ emerge --info qemu
Portage 2.3.51 (python 3.6.6-final-0, default/linux/amd64/17.1/desktop, gcc-8.2.0, glibc-2.27-r6, 4.19.0-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.19.0-gentoo-x86_64-Intel-R-_Core-TM-_i7-4771_CPU_@_3.50GHz-with-gentoo-2.6
KiB Mem:    32634140 total,  12697084 free
KiB Swap:    2097148 total,   2097148 free
Timestamp of repository gentoo: Sun, 28 Oct 2018 09:44:31 +0000
Head commit of repository gentoo: aea18fb934c3bf31707dd73cde11f46aca67da49

Timestamp of repository brother-overlay: Sat, 27 Oct 2018 19:24:00 +0000
Head commit of repository brother-overlay: 6a39a7856547c13d12f40585721b65af7f1f6469

Head commit of repository nuntoo: b7b28a262ea47f1e8d92e36ed1a59bac2f338095

sh bash 4.4_p23
ld GNU ld (Gentoo 2.31.1 p3) 2.31.1
app-shells/bash:          4.4_p23::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.26.2::gentoo
dev-lang/python:          2.7.15::gentoo, 3.6.6::gentoo
dev-util/cmake:           3.12.3::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.39.1::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.11.6-r3::gentoo, 1.16.1-r1::gentoo
sys-devel/binutils:       2.31.1-r1::gentoo
sys-devel/gcc:            8.2.0-r4::gentoo
sys-devel/gcc-config:     2.0::gentoo
sys-devel/libtool:        2.4.6-r5::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 4.19::gentoo (virtual/os-headers)
sys-libs/glibc:           2.27-r6::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/gentoo.git
    priority: -1000

brother-overlay
    location: /var/db/repos/brother-overlay
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/brother-overlay.git
    masters: gentoo

nuntoo
    location: /var/db/repos/nuntoo
    sync-type: git
    sync-uri: https://github.com/nvinson/nuntoo.git
    masters: gentoo

private
    location: /var/db/repos/private
    masters: gentoo

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/var/cache/portage/distfiles"
EMERGE_DEFAULT_OPTS="--jobs=8 --load-average=8"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en_US en"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi alsa amd64 berkdb branding bzip2 cairo cdda cdr cleartype cli consolekit corefonts crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam flac fortran gdbm gif glamor gpm gtk iconv ipv6 jpeg lcms ldap libnotify libtirpc mad mng mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds qt5 readline sdl seccomp spell ssl startup-notification svg tcpd theora tiff truetype udev udisks unicode upower usb vaapi vorbis vpx wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon plan sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64 pc" INPUT_DEVICES="evdev" KERNEL="linux" L10N="en-US en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-1" POSTGRES_TARGETS="postgres9_5 postgres10" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" RUBY_TARGETS="ruby23" USERLAND="GNU" VIDEO_CARDS="intel i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

app-emulation/qemu-3.0.0::gentoo was built with the following:
USE="aio alsa bzip2 caps curl fdt filecaps gnutls gtk jpeg ncurses nls opengl pin-upstream-blobs png sdl seccomp spice usb usbredir vhost-net vnc xattr -accessibility -bluetooth -capstone -debug -glusterfs -gtk2 -infiniband -iscsi -lzo -nfs -numa -pulseaudio -python -rbd -sasl -sdl2 (-selinux) -smartcard -snappy -ssh (-static) -static-user -systemtap -tci -test -vde -virgl -virtfs -vte -xen -xfs" ABI_X86="(64)" PYTHON_TARGETS="python2_7 python3_6 -python3_4 -python3_5" QEMU_SOFTMMU_TARGETS="x86_64 -aarch64 -alpha -arm -cris -hppa -i386 -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -nios2 -or1k -ppc -ppc64 -ppcemb -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="-aarch64 -aarch64_be -alpha -arm -armeb -cris -hppa -i386 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -nios2 -or1k -ppc -ppc64 -ppc64abi32 -ppc64le -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -tilegx -x86_64 -xtensa -xtensaeb"

>>> Attempting to run pkg_info() for 'app-emulation/qemu-3.0.0'
Using:
  app-emulation/spice-protocol-0.12.14
  sys-firmware/edk2-ovmf-2017_p20180211
    USE=binary
  sys-firmware/ipxe-1.0.0_p20180211
  sys-firmware/seabios-1.11.0
    USE=binary
  sys-firmware/sgabios-0.1_pre8-r1
Comment 1 nvinson234 2018-10-28 17:03:56 UTC
Created attachment 553534 [details]
guest dmesg -- configuration 2.log
Comment 2 nvinson234 2018-10-28 17:04:43 UTC
Created attachment 553536 [details]
lspci -nnk
Comment 3 nvinson234 2018-10-28 17:05:39 UTC
Created attachment 553538 [details]
emerge --info qemu
Comment 4 nvinson234 2018-10-28 17:07:15 UTC
Created attachment 553540 [details]
qemu configuration #1
Comment 5 nvinson234 2018-10-28 17:07:48 UTC
Created attachment 553542 [details]
qemu configuration #2
Comment 6 Matthias Maier gentoo-dev 2018-12-19 20:48:50 UTC
VGA passthrough is quite a subtle topic and there isn't really much we can do downstream here :-/

For starters I do not have any hardware to test VGA passthrough.
Comment 7 Matthias Maier gentoo-dev 2020-04-18 19:33:46 UTC
Please try again with the lastest software stack in testing.