Xorg & Qemu Updates
Richard,
I am pulling together tested subsets that have been lingering in the queue. I have built / rebuilt these qemu updates to use xorg-xserver. I have verified that X starts on mips/ppc/x86 and they correctly report X Server 1.11.2, which is the xorg-xserver version.
Sau!
The following changes since commit e6333825c3482a559a0c0499e17f8f48d3042ddf:
tune-mips64.inc: Add new tune file for mips64 big-endian (2012-05-20 20:24:37 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib sgw/xorg
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/xorg
Khem Raj (2):
qemumachines: Enable xserver-xorg as default xserver
xserver-xf86-config: Add xorg.conf for arm,mips,ppc,sh qemu machines
Saul Wold (2):
qemu.inc: Remove mesa-xlib as PREFERRED_PROVIDER
qemu: disable vnc-jpeg compression
Zhai Edwin (1):
qemu: Add an option to remove host sdl/gl checking
meta/conf/machine/include/qemu.inc | 10 +- meta/conf/machine/qemux86-64.conf | 3 +- meta/conf/machine/qemux86.conf | 3 +- .../qemu/qemu-0.15.1/opengl-disable-option.patch | 172 ++++++++++++++++++++ meta/recipes-devtools/qemu/qemu.inc | 25 +--- meta/recipes-devtools/qemu/qemu_0.15.1.bb | 3 +- .../xserver-xf86-config/qemuarm/xorg.conf | 69 ++++++++ .../xserver-xf86-config/qemumips/xorg.conf | 69 ++++++++ .../xserver-xf86-config/qemumips64/xorg.conf | 69 ++++++++ .../xserver-xf86-config/qemuppc/xorg.conf | 69 ++++++++ .../xserver-xf86-config/qemush4/xorg.conf | 69 ++++++++ .../xorg-xserver/xserver-xf86-config_0.1.bb | 2 +- 12 files changed, 536 insertions(+), 27 deletions(-) create mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patch create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuarm/xorg.conf create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuppc/xorg.conf create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemush4/xorg.conf
Signature · 1 line
1.7.7.6
[Consolidated Pull 1/5] qemumachines: Enable xserver-xorg as default xserver
From: Khem Raj <[email protected]>
For qemux86 and qemux86-64 include qemu.inc after defining XSERVER
XSERVER variable is also weakly defined in task-core-x11.bb which means we can not use ??= otherwise when building any qemu image that uses task-core-x11.bb will get the wrong definition
So we define the XSERVER common set for qemu in qemu.inc and as we know x86 and x86-64 qemu overrides the default we include qemu.inc after that definition which means that qemux86 and qemux86-64 get their own definitions and other qemus get the definitions from qemu.inc. other non-qemu machine will get their defintion from task which points to kdrive as of now.
--- meta/conf/machine/include/qemu.inc | 9 ++++++++- meta/conf/machine/qemux86-64.conf | 3 ++- meta/conf/machine/qemux86.conf | 3 ++- 3 files changed, 12 insertions(+), 3 deletions(-)
meta/conf/machine/include/qemu.inc +8 -1
@@ -1,7 +1,14 @@ PCMCIA_MANAGER = "pcmciautils" -PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" +PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/libgl ?= "mesa-xlib" +XSERVER ?= "xserver-xorg \ + mesa-dri-driver-swrast \ + xf86-input-evdev \ + xf86-input-mouse \ + xf86-video-fbdev \ + xf86-input-keyboard" + MACHINE_FEATURES = "apm alsa pcmcia bluetooth irda usbgadget screen" IMAGE_FSTYPES += "tar.bz2 ext3"
meta/conf/machine/qemux86-64.conf +2 -1
@@ -6,7 +6,6 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/libgl ?= "mesa-dri" require conf/machine/include/tune-x86_64.inc -require conf/machine/include/qemu.inc MACHINE_FEATURES += "x86"
@@ -23,6 +22,8 @@ XSERVER ?= "xserver-xorg \ xf86-video-vmware \ qemugl" +require conf/machine/include/qemu.inc + GLIBC_ADDONS = "nptl" GLIBC_EXTRA_OECONF = "--with-tls"
meta/conf/machine/qemux86.conf +2 -1
@@ -6,7 +6,6 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/libgl ?= "mesa-dri" require conf/machine/include/tune-i586.inc -require conf/machine/include/qemu.inc MACHINE_FEATURES += "x86"
@@ -23,6 +22,8 @@ XSERVER ?= "xserver-xorg \ xf86-video-vmware \ qemugl" +require conf/machine/include/qemu.inc + GLIBC_ADDONS = "nptl" GLIBC_EXTRA_OECONF = "--with-tls"
Signature · 1 line
1.7.7.6
[Consolidated Pull 2/5] xserver-xf86-config: Add xorg.conf for arm, mips, ppc, sh qemu machines
In reply to Saul WoldFrom: Khem Raj <[email protected]>
--- .../xserver-xf86-config/qemuarm/xorg.conf | 69 ++++++++++++++++++++ .../xserver-xf86-config/qemumips/xorg.conf | 69 ++++++++++++++++++++ .../xserver-xf86-config/qemumips64/xorg.conf | 69 ++++++++++++++++++++ .../xserver-xf86-config/qemuppc/xorg.conf | 69 ++++++++++++++++++++ .../xserver-xf86-config/qemush4/xorg.conf | 69 ++++++++++++++++++++ .../xorg-xserver/xserver-xf86-config_0.1.bb | 2 +- 6 files changed, 346 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuarm/xorg.conf create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuppc/xorg.conf create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemush4/xorg.conf
meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuarm/xorg.conf new file +69 -0
@@ -0,0 +1,69 @@ + +Section "Files" +EndSection + +Section "InputDevice" + Identifier "Generic Keyboard" + Driver "evdev" + Option "CoreKeyboard" + Option "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd" + Option "XkbRules" "xorg" + Option "XkbModel" "evdev" + Option "XkbLayout" "us" +EndSection + +Section "InputDevice" + Identifier "Configured Mouse" + Driver "mouse" + Option "CorePointer" + Option "Device" "/dev/input/mice" + Option "Protocol" "ImPS/2" + Option "ZAxisMapping" "4 5" + Option "Emulate3Buttons" "true" +EndSection + +Section "InputDevice" + Identifier "Qemu Tablet" + Driver "evdev" + Option "CorePointer" + Option "Device" "/dev/input/touchscreen0" + Option "USB" "on" +EndSection + +Section "Device" + Identifier "Graphics Controller" + Driver "fbdev" +EndSection + +Section "Monitor" + Identifier "Generic Monitor" + Option "DPMS" + # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz + Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync + # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz + ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync + # 640x480 @ 72Hz (VESA) hsync: 37.9kHz + ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync + # 640x480 @ 75Hz (VESA) hsync: 37.5kHz + ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync + # 640x480 @ 85Hz (VESA) hsync: 43.3kHz + ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync +EndSection + +Section "Screen" + Identifier "Default Screen" + Device "Graphics Controller" + Monitor "Generic Monitor" + SubSection "Display" + Modes "640x480" + EndSubSection +EndSection + +Section "ServerLayout" + Identifier "Default Layout" + Screen "Default Screen" + InputDevice "Generic Keyboard" + # InputDevice "Configured Mouse" + InputDevice "QEMU Tablet" + Option "AllowEmptyInput" "no" +EndSection
meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf new file +69 -0
69 lines not on this page · raw message
meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf new file +69 -0
69 lines not on this page · raw message
meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuppc/xorg.conf new file +69 -0
69 lines not on this page · raw message
meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemush4/xorg.conf new file +69 -0
69 lines not on this page · raw message
meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb +1 -1
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.x.org" SECTION = "x11/base" LICENSE = "MIT-X" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -PR = "r10" +PR = "r11" SRC_URI = "file://xorg.conf"
Signature · 1 line
1.7.7.6
[Consolidated Pull 5/5] qemu: disable vnc-jpeg compression
In reply to Saul WoldThis is disabled by default to ensure a deterministic build, qemu configure would sometimes detect the libjpeg and then enable this. Since mostly qemu is used locally disable by default.
--- meta/recipes-devtools/qemu/qemu.inc | 2 +- meta/recipes-devtools/qemu/qemu_0.15.1.bb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-devtools/qemu/qemu.inc +1 -1
@@ -12,7 +12,7 @@ SDL ?= "--disable-sdl" SDL_virtclass-native ?= "" SDL_virtclass-nativesdk ?= "" -EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --audio-card-list=ac97,es1370 ${SDL} --disable-curl" +EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --audio-card-list=ac97,es1370 ${SDL} --disable-curl --disable-vnc-jpeg" #EXTRA_OECONF += "--disable-sdl"
meta/recipes-devtools/qemu/qemu_0.15.1.bb +1 -1
@@ -3,7 +3,7 @@ require qemu.inc LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" -PR = "r6" +PR = "r7" FILESPATH = "${FILE_DIRNAME}/qemu-${PV}" FILESDIR = "${WORKDIR}"
Signature · 1 line
1.7.7.6
[Consolidated Pull 3/5] qemu.inc: Remove mesa-xlib as PREFERRED_PROVIDER
In reply to Saul WoldThe xserver-xorg uses and depends on mesa-dri, so we should use the default PREFERRED_PROVIDER of libgl as mesa-dri.
This resolves the following:
ERROR: Multiple .bb files are due to be built which each provide virtual/libgl (/intel/poky/distro/meta/recipes-graphics/mesa/mesa-dri_7.11.bb /intel/poky/distro/meta/recipes-graphics/mesa/mesa-xlib_7.11.bb).
This usually means one provides something the other doesn't and should.
--- meta/conf/machine/include/qemu.inc | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)
meta/conf/machine/include/qemu.inc +0 -1
@@ -1,6 +1,5 @@ PCMCIA_MANAGER = "pcmciautils" PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" -PREFERRED_PROVIDER_virtual/libgl ?= "mesa-xlib" XSERVER ?= "xserver-xorg \ mesa-dri-driver-swrast \
Signature · 1 line
1.7.7.6
[Consolidated Pull 4/5] qemu: Add an option to remove host sdl/gl checking
In reply to Saul WoldFrom: Zhai Edwin <[email protected]>
Add an PACKAGECONFIG in qemu to disable GL acceleration:
* By default configure try best to enable GL acceleration and fail when missing host dependency(libSDL and libGL).
* End user can also choose to turn off GL capability, thus remove the host dependence in building.
[YOCTO #2407] got fixed.
--- .../qemu/qemu-0.15.1/opengl-disable-option.patch | 172 ++++++++++++++++++++ meta/recipes-devtools/qemu/qemu.inc | 23 +--- meta/recipes-devtools/qemu/qemu_0.15.1.bb | 1 + 3 files changed, 176 insertions(+), 20 deletions(-) create mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patch
meta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patch new file +172 -0
@@ -0,0 +1,172 @@ +Add an option gl-accel to disable GL acceleration: +* When enabled, configure try best to enable GL acceleration and fail when + missing host dependency(libSDL and libGL), which is the default. +* When disabled, end user choose to turn off GL capability, thus remove the + host dependence in building. + +Upstream-Status: Inappropriate [other] - depends on GL patch + +Signed-off-by: Zhai Edwin <[email protected]> + +Index: qemu-0.15.1/Makefile.target +=================================================================== +--- qemu-0.15.1.orig/Makefile.target 2012-05-14 21:23:36.000000000 +0800 ++++ qemu-0.15.1/Makefile.target 2012-05-14 21:26:19.000000000 +0800 +@@ -79,15 +79,20 @@ + libobj-y += cpuid.o + endif + libobj-$(CONFIG_NEED_MMU) += mmu.o ++ + ifndef CONFIG_LINUX_USER ++ifdef CONFIG_GL_ACCEL + libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o + libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o + else +-ifdef CONFIG_SDL + libobj-$(TARGET_I386) += dummygl.o + libobj-$(TARGET_X86_64) += dummygl.o +-endif ++endif #CONFIG_GL_ACCEL ++else ++libobj-$(TARGET_I386) += dummygl.o ++libobj-$(TARGET_X86_64) += dummygl.o + endif #CONFIG_LINUX_USER ++ + libobj-$(TARGET_ARM) += dummygl.o + libobj-$(TARGET_MIPS) += dummygl.o + libobj-$(TARGET_MIPS64) += dummygl.o +@@ -262,8 +267,10 @@ + obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o + + ifeq ($(TARGET_BASE_ARCH), i386) ++ifdef CONFIG_GL_ACCEL + QEMU_CFLAGS += -DTARGET_OPENGL_OK + endif ++endif + + # shared objects + obj-ppc-y = ppc.o +@@ -409,8 +416,6 @@ + + monitor.o: hmp-commands.h qmp-commands.h + +-LIBS += -lGL -lGLU +- + $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS) + + obj-y += $(addprefix ../, $(common-obj-y)) +Index: qemu-0.15.1/configure +=================================================================== +--- qemu-0.15.1.orig/configure 2012-05-14 21:23:34.000000000 +0800 ++++ qemu-0.15.1/configure 2012-05-14 21:23:36.000000000 +0800 +@@ -179,6 +179,7 @@ + smartcard_nss="" + usb_redir="" + opengl="" ++gl_accel="yes" + guest_agent="yes" + + # parse CC options first +@@ -739,6 +740,10 @@ + ;; + --enable-opengl) opengl="yes" + ;; ++ --disable-gl-accel) gl_accel="no" ++ ;; ++ --enable-gl-accel) gl_accel="yes" ++ ;; + --*dir) + ;; + --disable-rbd) rbd="no" +@@ -2016,6 +2021,39 @@ + fi + fi + ++##################################################### ++# GL acceleration probe depending on gl, glu and sdl ++if test "$gl_accel" != "no" ; then ++ if test "$sdl" = "no" ; then ++ gl_accel=no ++ echo "libSDL and header no found to build opengl acceleration for qemu-native. ++ Ubuntu package names are: libsdl1.2-dev. ++ Fedora package names are: SDL-devel." ++ exit 1; ++ fi ++ ++ gl_accel_libs="-lGL -lGLU" ++ cat > $TMPC << EOF ++#include <X11/Xlib.h> ++#include <GL/gl.h> ++#include <GL/glx.h> ++#include <GL/glu.h> ++int main(void) { GL_VERSION; return 0; } ++EOF ++ if compile_prog "" "-lGL -lGLU" ; then ++ gl_accel=yes ++ libs_softmmu="$gl_accel_libs $libs_softmmu" ++ else ++ feature_not_found "gl_accel" ++ gl_accel=no ++ gl_accel_libs= ++ echo "libGL.so and libGLU.so not found to build opengl acceleration for qemu-native. ++ Ubuntu package names are: libgl1-mesa-dev, libglu1-mesa-dev and libsdl1.2-dev. ++ Fedora package names are: mesa-libGL mesa-libGLU SDL-devel." ++ exit 1; ++ fi ++fi ++ + # + # Check for xxxat() functions when we are building linux-user + # emulator. This is done because older glibc versions don't +@@ -2717,6 +2755,7 @@ + echo "nss used $smartcard_nss" + echo "usb net redir $usb_redir" + echo "OpenGL support $opengl" ++echo "GL acceleration support $gl_accel" + echo "build guest agent $guest_agent" + + if test $sdl_too_old = "yes"; then +@@ -3020,6 +3059,10 @@ + echo "CONFIG_OPENGL=y" >> $config_host_mak + fi + ++if test "$gl_accel" = "yes" ; then ++ echo "CONFIG_GL_ACCEL=y" >> $config_host_mak ++fi ++ + # XXX: suppress that + if [ "$bsd" = "yes" ] ; then + echo "CONFIG_BSD=y" >> $config_host_mak +Index: qemu-0.15.1/qemu-char.c +=================================================================== +--- qemu-0.15.1.orig/qemu-char.c 2012-05-14 21:23:35.000000000 +0800 ++++ qemu-0.15.1/qemu-char.c 2012-05-14 21:23:36.000000000 +0800 +@@ -2387,7 +2387,6 @@ + return d->outbuf_size; + } + +-#define TARGET_OPENGL_OK + #if defined(TARGET_OPENGL_OK) + static uint8_t buffer[32]; + static int buffer_len; +@@ -2447,7 +2446,7 @@ + return chr; + } + #else +-#define qemu_chr_open_opengl() 0 ++#define qemu_chr_open_opengl NULL + #endif + + QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename) +Index: qemu-0.15.1/vl.c +=================================================================== +--- qemu-0.15.1.orig/vl.c 2012-05-14 21:23:35.000000000 +0800 ++++ qemu-0.15.1/vl.c 2012-05-14 21:23:36.000000000 +0800 +@@ -2067,7 +2067,6 @@ + return popt; + } + +-#define TARGET_OPENGL_OK + int main(int argc, char **argv, char **envp) + { + const char *gdbstub_dev = NULL;
meta/recipes-devtools/qemu/qemu.inc +3 -20
@@ -19,26 +19,6 @@ EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --di inherit autotools -# For our gl powered QEMU you need libGL and SDL headers -do_configure_prepend_virtclass-native() { - libgl='no' - libsdl='no' - - test -e /usr/lib/libGL.so -a -e /usr/lib/libGLU.so && libgl='yes' - test -e /usr/lib64/libGL.so -a -e /usr/lib64/libGLU.so && libgl='yes' - test -e /usr/lib/*-linux-gnu/libGL.so -a -e /usr/lib/*-linux-gnu/libGLU.so && libgl='yes' - - test -e /usr/lib/pkgconfig/sdl.pc -o -e /usr/lib64/pkgconfig/sdl.pc -o -e /usr/include/SDL/SDL.h && libsdl='yes' - - - if [ "$libsdl" != 'yes' -o "$libgl" != 'yes' ]; then - echo "You need libGL.so and libGLU.so to exist in your library path and the development headers for SDL installed to build qemu-native. - Ubuntu package names are: libgl1-mesa-dev, libglu1-mesa-dev and libsdl1.2-dev. - Fedora package names are: mesa-libGL mesa-libGLU SDL-devel." - exit 1; - fi -} - do_configure() { # Handle distros such as CentOS 5 32-bit that do not have kvm support KVMOPTS="--disable-kvm"
@@ -57,6 +37,9 @@ do_install () { install -m 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu } +PACKAGECONFIG ??= "gl" +PACKAGECONFIG[gl] = "--enable-gl-accel,--disable-gl-accel,," + DEPENDS_virtclass-native = "zlib-native alsa-lib-native glib-2.0-native" DEPENDS_virtclass-nativesdk = "zlib-nativesdk libsdl-nativesdk glib-2.0-nativesdk \ ${@base_contains('DISTRO_FEATURES', 'x11', 'qemugl-nativesdk', '', d)}"
meta/recipes-devtools/qemu/qemu_0.15.1.bb +1 -0
@@ -31,6 +31,7 @@ QEMUGLPATCHES = "\ file://qemugl-fix.patch \ file://opengl-sdl-fix.patch \ file://opengl-args-copy-fix.patch \ + file://opengl-disable-option.patch \ " SRC_URI_append_virtclass-native = "\
Signature · 1 line
1.7.7.6
Re: [Consolidated Pull 4/5] qemu: Add an option to remove host sdl/gl checking
Quoted 10 lines · Saul Wold
From: Zhai Edwin<[email protected]>
Add an PACKAGECONFIG in qemu to disable GL acceleration:
* By default configure try best to enable GL acceleration and fail when missing host dependency(libSDL and libGL).
* End user can also choose to turn off GL capability, thus remove the host dependence in building.[YOCTO #2407] got fixed.
I think I found a problem with this when building for the target, so I pulled it from the branch.
Sau!
Quoted 239 lines
Signed-off-by Zhai Edwin<[email protected]>--- .../qemu/qemu-0.15.1/opengl-disable-option.patch | 172 ++++++++++++++++++++ meta/recipes-devtools/qemu/qemu.inc | 23 +--- meta/recipes-devtools/qemu/qemu_0.15.1.bb | 1 + 3 files changed, 176 insertions(+), 20 deletions(-)create mode 100644
meta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patchmeta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patch new file +172
-0@@ -0,0 +1,172 @@ +Add an option gl-accel to disable GL acceleration: +* When enabled, configure try best to enable GL acceleration and fail when + missing host dependency(libSDL and libGL), which is the default. +* When disabled, end user choose to turn off GL capability, thus remove the + host dependence in building. + +Upstream-Status: Inappropriate [other] - depends on GL patch + +Signed-off-by: Zhai Edwin<[email protected]> + +Index: qemu-0.15.1/Makefile.target +=================================================================== +--- qemu-0.15.1.orig/Makefile.target 2012-05-14 21:23:36.000000000 +0800 ++++ qemu-0.15.1/Makefile.target 2012-05-14 21:26:19.000000000 +0800 +@@ -79,15 +79,20 @@ + libobj-y += cpuid.o + endif + libobj-$(CONFIG_NEED_MMU) += mmu.o ++ + ifndef CONFIG_LINUX_USER ++ifdef CONFIG_GL_ACCEL + libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o + libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o + else +-ifdef CONFIG_SDL + libobj-$(TARGET_I386) += dummygl.o + libobj-$(TARGET_X86_64) += dummygl.o +-endif ++endif #CONFIG_GL_ACCEL ++else ++libobj-$(TARGET_I386) += dummygl.o ++libobj-$(TARGET_X86_64) += dummygl.o + endif #CONFIG_LINUX_USER ++ + libobj-$(TARGET_ARM) += dummygl.o + libobj-$(TARGET_MIPS) += dummygl.o + libobj-$(TARGET_MIPS64) += dummygl.o +@@ -262,8 +267,10 @@ + obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o + + ifeq ($(TARGET_BASE_ARCH), i386) ++ifdef CONFIG_GL_ACCEL + QEMU_CFLAGS += -DTARGET_OPENGL_OK + endif ++endif + + # shared objects + obj-ppc-y = ppc.o +@@ -409,8 +416,6 @@ + + monitor.o: hmp-commands.h qmp-commands.h + +-LIBS += -lGL -lGLU +- + $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS) + + obj-y += $(addprefix ../, $(common-obj-y)) +Index: qemu-0.15.1/configure +=================================================================== +--- qemu-0.15.1.orig/configure 2012-05-14 21:23:34.000000000 +0800 ++++ qemu-0.15.1/configure 2012-05-14 21:23:36.000000000 +0800 +@@ -179,6 +179,7 @@ + smartcard_nss="" + usb_redir="" + opengl="" ++gl_accel="yes" + guest_agent="yes" + + # parse CC options first +@@ -739,6 +740,10 @@ + ;; + --enable-opengl) opengl="yes" + ;; ++ --disable-gl-accel) gl_accel="no" ++ ;; ++ --enable-gl-accel) gl_accel="yes" ++ ;; + --*dir) + ;; + --disable-rbd) rbd="no" +@@ -2016,6 +2021,39 @@ + fi + fi + ++##################################################### ++# GL acceleration probe depending on gl, glu and sdl ++if test "$gl_accel" != "no" ; then ++ if test "$sdl" = "no" ; then ++ gl_accel=no ++ echo "libSDL and header no found to build opengl acceleration for qemu-native. ++ Ubuntu package names are: libsdl1.2-dev. ++ Fedora package names are: SDL-devel." ++ exit 1; ++ fi ++ ++ gl_accel_libs="-lGL -lGLU" ++ cat> $TMPC<< EOF ++#include<X11/Xlib.h> ++#include<GL/gl.h> ++#include<GL/glx.h> ++#include<GL/glu.h> ++int main(void) { GL_VERSION; return 0; } ++EOF ++ if compile_prog "" "-lGL -lGLU" ; then ++ gl_accel=yes ++ libs_softmmu="$gl_accel_libs $libs_softmmu" ++ else ++ feature_not_found "gl_accel" ++ gl_accel=no ++ gl_accel_libs= ++ echo "libGL.so and libGLU.so not found to build opengl acceleration for qemu-native. ++ Ubuntu package names are: libgl1-mesa-dev, libglu1-mesa-dev and libsdl1.2-dev. ++ Fedora package names are: mesa-libGL mesa-libGLU SDL-devel." ++ exit 1; ++ fi ++fi ++ + # + # Check for xxxat() functions when we are building linux-user + # emulator. This is done because older glibc versions don't +@@ -2717,6 +2755,7 @@ + echo "nss used $smartcard_nss" + echo "usb net redir $usb_redir" + echo "OpenGL support $opengl" ++echo "GL acceleration support $gl_accel" + echo "build guest agent $guest_agent" + + if test $sdl_too_old = "yes"; then +@@ -3020,6 +3059,10 @@ + echo "CONFIG_OPENGL=y">> $config_host_mak + fi + ++if test "$gl_accel" = "yes" ; then ++ echo "CONFIG_GL_ACCEL=y">> $config_host_mak ++fi ++ + # XXX: suppress that + if [ "$bsd" = "yes" ] ; then + echo "CONFIG_BSD=y">> $config_host_mak +Index: qemu-0.15.1/qemu-char.c +=================================================================== +--- qemu-0.15.1.orig/qemu-char.c 2012-05-14 21:23:35.000000000 +0800 ++++ qemu-0.15.1/qemu-char.c 2012-05-14 21:23:36.000000000 +0800 +@@ -2387,7 +2387,6 @@ + return d->outbuf_size; + } + +-#define TARGET_OPENGL_OK + #if defined(TARGET_OPENGL_OK) + static uint8_t buffer[32]; + static int buffer_len; +@@ -2447,7 +2446,7 @@ + return chr; + } + #else +-#define qemu_chr_open_opengl() 0 ++#define qemu_chr_open_opengl NULL + #endif + + QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename) +Index: qemu-0.15.1/vl.c +=================================================================== +--- qemu-0.15.1.orig/vl.c 2012-05-14 21:23:35.000000000 +0800 ++++ qemu-0.15.1/vl.c 2012-05-14 21:23:36.000000000 +0800 +@@ -2067,7 +2067,6 @@ + return popt; + } + +-#define TARGET_OPENGL_OK + int main(int argc, char **argv, char **envp) + { + const char *gdbstub_dev = NULL;meta/recipes-devtools/qemu/qemu.inc +3
-20@@ -19,26 +19,6 @@ EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --di inherit autotools -# For our gl powered QEMU you need libGL and SDL headers -do_configure_prepend_virtclass-native() { - libgl='no' - libsdl='no' - - test -e /usr/lib/libGL.so -a -e /usr/lib/libGLU.so&& libgl='yes' - test -e /usr/lib64/libGL.so -a -e /usr/lib64/libGLU.so&& libgl='yes' - test -e /usr/lib/*-linux-gnu/libGL.so -a -e /usr/lib/*-linux-gnu/libGLU.so&& libgl='yes' - - test -e /usr/lib/pkgconfig/sdl.pc -o -e /usr/lib64/pkgconfig/sdl.pc -o -e /usr/include/SDL/SDL.h&& libsdl='yes' - - - if [ "$libsdl" != 'yes' -o "$libgl" != 'yes' ]; then - echo "You need libGL.so and libGLU.so to exist in your library path and the development headers for SDL installed to build qemu-native. - Ubuntu package names are: libgl1-mesa-dev, libglu1-mesa-dev and libsdl1.2-dev. - Fedora package names are: mesa-libGL mesa-libGLU SDL-devel." - exit 1; - fi -} - do_configure() { # Handle distros such as CentOS 5 32-bit that do not have kvm support KVMOPTS="--disable-kvm"@@ -57,6 +37,9 @@ do_install () { install -m 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu } +PACKAGECONFIG ??= "gl" +PACKAGECONFIG[gl] = "--enable-gl-accel,--disable-gl-accel,," + DEPENDS_virtclass-native = "zlib-native alsa-lib-native glib-2.0-native" DEPENDS_virtclass-nativesdk = "zlib-nativesdk libsdl-nativesdk glib-2.0-nativesdk \ ${@base_contains('DISTRO_FEATURES', 'x11', 'qemugl-nativesdk', '', d)}"meta/recipes-devtools/qemu/qemu_0.15.1.bb +1
-0@@ -31,6 +31,7 @@ QEMUGLPATCHES = "\ file://qemugl-fix.patch \ file://opengl-sdl-fix.patch \ file://opengl-args-copy-fix.patch \ + file://opengl-disable-option.patch \ " SRC_URI_append_virtclass-native = "\
Re: [Consolidated Pull 4/5] qemu: Add an option to remove host sdl/gl checking
Quoted 11 lines · Saul Wold
Quoted 10 lines · Saul Wold
From: Zhai Edwin<[email protected]>
Add an PACKAGECONFIG in qemu to disable GL acceleration:
* By default configure try best to enable GL acceleration and fail when missing
host dependency(libSDL and libGL).
* End user can also choose to turn off GL capability, thus remove the host
dependence in building.
Quoted 4 lines
Quoted 2 lines
[YOCTO #2407] got fixed.
I think I found a problem with this when building for the target, so I pulled it from the branch.
Which target? Can you attach build log?
Quoted 2 lines
Sau!
Re: [Consolidated Pull 4/5] qemu: Add an option to remove host sdl/gl checking
Quoted 12 lines · Edwin
Quoted 11 lines · Saul Wold
Quoted 10 lines · Saul Wold
From: Zhai Edwin<[email protected]>
Add an PACKAGECONFIG in qemu to disable GL acceleration:
* By default configure try best to enable GL acceleration and fail when missing
host dependency(libSDL and libGL).
* End user can also choose to turn off GL capability, thus remove the host
dependence in building.
Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
[YOCTO #2407] got fixed.
I think I found a problem with this when building for the target, so I pulled it from the branch.
Which target? Can you attach build log?
I am seeing 2 different failures.
MACHINE=beagleboard
Target: qemu (target device not native)
ERROR: Function failed: do_configure (see /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/qemu-0.15.1-r7/temp/log.do_configure.20469 for further information)
ERROR: Logfile of failure stored in: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/qemu-0.15.1-r7/temp/log.do_configure.20469 Log data follows:
| DEBUG: Executing python function sysroot_cleansstate | DEBUG: Python function sysroot_cleansstate finished | DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common'] | DEBUG: Executing shell function do_configure | ERROR: unknown option --enable-gl-accel | | Usage: configure [options] | Options: [defaults in brackets after descriptions
MACHINE=qemuarm
Target meta-toolchain-gmae:
ERROR: Command Error: exit status: 1 Output:
Applying patch glflags.patch
patching file Makefile.target
Hunk #1 FAILED at 362.
1 out of 1 hunk FAILED -- rejects in file Makefile.target
Patch glflags.patch does not apply (enforce with -f)
ERROR: Function failed: patch_do_patch
ERROR: Logfile of failure stored in: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/qemu-nativesdk-0.15.1-r7/temp/log.do_patch.26666
Quoted 6 lines
Quoted 3 lines
Sau!