From patchwork Fri May 6 08:36:15 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1/1] qemu-script: Fix qemu seg fault if install Nvidia proprietary driver. Date: Fri, 06 May 2011 08:36:15 -0000 From: Zhai, Edwin X-Patchwork-Id: 3295 Message-Id: <52d0f8883f82d2cab0fad9b85298506a169acec0.1304670670.git.edwin.zhai@intel.com> To: openembedded-core@lists.openembedded.org Cc: From: Zhai Edwin This fix works on Ubuntu, and other distro can add its own path of Mesa's libGL Signed-off-by: Zhai Edwin --- scripts/poky-qemu-internal | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal index c88d711..acaeb1b 100755 --- a/scripts/poky-qemu-internal +++ b/scripts/poky-qemu-internal @@ -448,20 +448,29 @@ else fi # qemu got segfault if linked with nVidia's libgl +GL_LD_PRELOAD=$LD_PRELOAD + if ldd $QEMUBIN | grep -i nvidia &> /dev/null then cat << EOM WARNING: nVidia proprietary OpenGL libraries detected. 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 -libraries precede nvidia's via LD_PRELOAD. +libraries precede nvidia's via LD_PRELOAD(Already do it on Ubuntu). EOM + +# Automatically use Ubuntu system's mesa libGL, other distro can add its own path + if grep -i ubuntu /etc/lsb-release &> /dev/null + then + echo "Skip nVidia's libGL on Ubuntu!" + GL_LD_PRELOAD="/usr/lib/libGL.so $LD_PRELOAD" + fi fi echo "Running $QEMU..." # -no-reboot is a mandatory option - see bug #100 echo $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append '"'$KERNCMDLINE $SCRIPT_KERNEL_OPT'"' -$QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append "$KERNCMDLINE $SCRIPT_KERNEL_OPT" +LD_PRELOAD="$GL_LD_PRELOAD" $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append "$KERNCMDLINE $SCRIPT_KERNEL_OPT" cleanup