qemugl: Fix GL apps failure on Ubuntu 11 host with nVidia GLX driver

Previous version of nVidia GLX driver in Ubuntu 10 cause qemu segfault, so we
fall back to Mesa GLX driver if detecting nVidia driver installed. From Ubuntu
11, nVidia GLX driver works well, while previous work around cause GL apps
failure. So this work around is limited in Ubuntu 10 only, and will be removed
in future.

[YOCTO #1886] got fixed.

(From OE-Core rev: b3ccc630e6c12a75111b1f7ca877e17d8d4e1dc7)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Zhai Edwin
2012-04-01 10:24:28 +08:00
committed by Richard Purdie
parent 2592a11bde
commit 84b7541abc

View File

@@ -467,11 +467,15 @@ cat << EOM
WARNING: nVidia proprietary OpenGL libraries detected. WARNING: nVidia proprietary OpenGL libraries detected.
nVidia's OpenGL libraries are known to have compatibility issues with qemu, nVidia's OpenGL libraries are known to have compatibility issues with qemu,
resulting in a segfault. Please uninstall these drivers or ensure the mesa libGL resulting in a segfault. Please uninstall these drivers or ensure the mesa libGL
libraries precede nvidia's via LD_PRELOAD(Already do it on Ubuntu). libraries precede nvidia's via LD_PRELOAD(Already do it on Ubuntu 10).
EOM EOM
# Automatically use Ubuntu system's mesa libGL, other distro can add its own path # Automatically use Ubuntu system's mesa libGL, other distro can add its own path
if grep -i ubuntu /etc/lsb-release &> /dev/null if grep -i ubuntu /etc/lsb-release &> /dev/null
then
# precede nvidia's driver on Ubuntu 10
UBUNTU_MAIN_VERSION=`cat /etc/lsb-release |grep DISTRIB_RELEASE |cut -d= -f 2| cut -d. -f 1`
if [ $UBUNTU_MAIN_VERSION -eq 10 ];
then then
GL_PATH="" GL_PATH=""
if test -e /usr/lib/libGL.so if test -e /usr/lib/libGL.so
@@ -482,10 +486,11 @@ EOM
GL_PATH="/usr/lib/x86_64-linux-gnu/libGL.so" GL_PATH="/usr/lib/x86_64-linux-gnu/libGL.so"
fi fi
echo "Skip nVidia's libGL on Ubuntu!" echo "Skip nVidia's libGL on Ubuntu 10!"
GL_LD_PRELOAD="$GL_PATH $LD_PRELOAD" GL_LD_PRELOAD="$GL_PATH $LD_PRELOAD"
fi fi
fi fi
fi
echo "Running $QEMU..." echo "Running $QEMU..."
# -no-reboot is a mandatory option - see bug #100 # -no-reboot is a mandatory option - see bug #100