FS#55461 - [qemu] The latest build does not contain support for spice/VirGL

Attached to Project: Arch Linux
Opened by Peet (orangecake) - Friday, 01 September 2017, 17:04 GMT
Last edited by Doug Newgard (Scimmia) - Tuesday, 30 January 2018, 15:36 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Tobias Powalowski (tpowa)
Anatol Pomozov (anatolik)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

The current testing build of qemu does not contain support for spice/VirGL. This maybe has been caused by missing dependencies like virglrenderer on the building machine. I worked around this by simply rebuilding qemu.

Additional info:
* package version: 2.10.0-1
This task depends upon

Closed by  Doug Newgard (Scimmia)
Tuesday, 30 January 2018, 15:36 GMT
Reason for closing:  Implemented
Additional comments about closing:  spice 0.14.0-1 and qemu 2.11.0-4
Comment by loqs (loqs) - Friday, 01 September 2017, 20:57 GMT
Looking at qemu-2.10.0-1-x86_64.pkg.tar.xz/.BUILDINFO
installed = spice-0.12.8+8+ga957a90b-1
installed = spice-protocol-0.12.12-1
installed = virglrenderer-0.6.0-1
Seems all the dependencies were in the build environment.

Could 2.10.0-1 please not be moved out of testing before the changes for  FS#54943  are made to it.
Comment by Peet (orangecake) - Tuesday, 03 October 2017, 20:39 GMT
I am still getting this error with the recent update (2.10.1) which is in testing right now. Rebuilding qemu helped again. This really sucks.
Comment by Anatol Pomozov (anatolik) - Tuesday, 03 October 2017, 21:22 GMT
I am not sure why rebuild fixes it for you. As you mentioned the required dependencies are installed. I also see that my qemu build reported "spice support yes", "virgl support yes".
Comment by Peet (orangecake) - Tuesday, 03 October 2017, 21:43 GMT
This is the configuration summary qemu gives me when I build qemu. Do you see any differences?

Install prefix /usr
BIOS directory /usr/share/qemu
binary directory /usr/bin
library directory /usr/lib
module directory /usr/lib/qemu
libexec directory /usr/lib/qemu
include directory /usr/include
config directory /etc
local state directory /var
Manual directory /usr/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /home/<user>/abs2/packages/qemu/trunk/src/qemu-2.10.1
C compiler cc
Host C compiler cc
C++ compiler c++
Objective-C compiler clang
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -fPIC
QEMU_CFLAGS -I/usr/include/pixman-1 -DHAS_LIBSSH2_SFTP_FSYNC -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DNCURSES_WIDECHAR -D_GNU_SOURCE -D_DEFAULT_SOURCE -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/p11-kit-1 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/nss -I/usr/include/nspr -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/spice-1 -I/usr/include/cacard -I/usr/include/nss -I/usr/include/nspr -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libusb-1.0
LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -pthread
make make
install install
python /usr/bin/python2 -B
smbd /usr/bin/smbd
module support yes
host CPU x86_64
host big endian no
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
pixman system
SDL support yes (2.0.6)
GTK support yes (3.22.21)
GTK GL support yes
VTE support yes (0.49.2)
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (3.3)
nettle kdf yes
libtasn1 yes
curses support yes
virgl support yes
curl support yes
mingw32 support no
Audio drivers pa alsa sdl
Block whitelist (rw)
Block whitelist (ro)
VirtFS support yes
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support yes
bluez support yes
Documentation yes
PIE yes
vde support yes
netmap support no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
TCG support yes
TCG debug enabled no
TCG interpreter no
RDMA support no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support yes (0.12.13/0.13.90)
rbd support yes
xfsctl support yes
smartcard support yes
libusb yes
usb net redir yes
OpenGL support yes
OpenGL dmabufs yes
libiscsi support yes
libnfs support yes
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support yes
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support yes
gcov gcov
gcov enabled no
TPM support yes
libssh2 support yes
TPM passthrough yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support yes
bzip2 support yes
NUMA host support yes
tcmalloc support no
jemalloc support yes
avx2 optimization yes
replication support yes
VxHS block device no
Comment by Anatol Pomozov (anatolik) - Tuesday, 03 October 2017, 21:56 GMT
One thing that differs is that I have this spice versions:

spice support yes (0.12.12/0.12.8.8-a957-dirty)

It looks like you are using newer version of spice-protocol. I am going to bum Arch version to 0.12.13

And you also use 0.13.xx version of spice that is a development version. That probably the reason why you see the difference. To confirm - could you please install Arch version of spice (0.12.8) and see if qemu/virgl still works for you.
Comment by Peet (orangecake) - Tuesday, 03 October 2017, 22:07 GMT
I will definitely try that, I am currently running some vms so I can try that later.
One more thing though. Could you please tell me what is inside your LDFLAGS? (I am asking this because I am had issues with building qemu, see https://bbs.archlinux.org/viewtopic.php?id=230537).
Comment by Eli Schwartz (eschwartz) - Wednesday, 04 October 2017, 00:11 GMT
The LDFLAGS are default, packages are built using makechrootpkg.

Specifically, the pristine copies devtools will install to /usr/share/devtools/makepkg-x86_64.conf
Comment by dhead666 (dhead666) - Tuesday, 02 January 2018, 23:38 GMT
Just bump to 14.0 and bump qemu pkgrel and it will all work fine (with the limitation of unix socket only).
Comment by eaut (eaut) - Saturday, 27 January 2018, 16:18 GMT
please update spice to 0.14.0 and increase qemu pkrel thereafter in order to close this bug
Comment by Anatol Pomozov (anatolik) - Saturday, 27 January 2018, 17:54 GMT
I pushed spice-0.14.0 + qemu to [testing] repository. Please give it a try.
Comment by Balló György (City-busz) - Saturday, 27 January 2018, 18:26 GMT
Finally it works! :) Thanks.
Comment by eaut (eaut) - Saturday, 27 January 2018, 20:02 GMT
works now, thanks!
Comment by no (jinglesassy) - Monday, 29 January 2018, 00:46 GMT
Trying too connect to a VM configured with spice/VirGL acceleration through virt-manager up to date with the latest spice 0.14.0-2 and qemu 2.11.0-4 from testing ends up crashing virt-manager and attempting to connect to it through

virt-viewer --connect qemu:///system debian-vm1 --attach

Either outputs one of these about 50% of the time.

(virt-viewer:12481): GSpice-WARNING **: incomplete link header (0/16)

(virt-viewer:12481): GSpice-WARNING **: major mismatch (got 2, expected 1)

or this.

(virt-viewer:12574): GSpice-WARNING **: Warning no automount-inhibiting implementation available
No provider of glEGLImageTargetTexture2DOES found. Requires one of:
GL extension "GL_OES_EGL_image"
Aborted (core dumped)


This is with a Intel 4670K with virtualization enabled and a Nvidia GTX 780 with proprietary drivers 387.34. Not sure if i should or shouldn't make a new bug thread for this or not. Thanks for updating it!
Comment by Balló György (City-busz) - Monday, 29 January 2018, 00:51 GMT
@jinglesassy: it's a different task. The support is available, maybe virt-viewer is buggy.

EDIT: @jinglesassy: it looks like your bug is in the NVidia driver or in qemu. See: https://github.com/anholt/libepoxy/issues/148
Comment by no (jinglesassy) - Monday, 29 January 2018, 01:19 GMT
Thanks for the reply. I saw that before posting here just really wasn't 100% sure what layer it might be at. Most likely going to do a little bit more testing now and later on make a bug report on the Qemu bug tracker.

Virgl can work on my setup as tested with launching it with qemu-system-x86_64 and not using libvirt or spice.
Comment by Anatol Pomozov (anatolik) - Monday, 29 January 2018, 01:21 GMT
no@, one thing that will help debugging is to build virt-viewer with debug symbols enabled and then get crash dump from 'coredumpctl' tool.

Loading...