diff options
| author | Zhai Edwin <edwin.zhai@intel.com> | 2011-05-06 15:20:55 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-10 09:55:02 +0100 |
| commit | e2f1638d9f1447064e56dcee84ad8f241ca2efa7 (patch) | |
| tree | bb1721efce6ede07e82a4b7d96ca4d8e64233f97 /scripts | |
| parent | cd4a94d124945134cdaefb59e80cab8dcd44f4df (diff) | |
| download | poky-e2f1638d9f1447064e56dcee84ad8f241ca2efa7.tar.gz | |
qemu-script: Fix qemu seg fault if install Nvidia proprietary driver.
This fix works on Ubuntu, and other distro can add its own path of Mesa's libGL
(From OE-Core rev: a0a563d0d0febacef3f9080db24fa968e8c5f08b)
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/runqemu-internal | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal index 9a786e4290..ffac05e8e5 100755 --- a/scripts/runqemu-internal +++ b/scripts/runqemu-internal | |||
| @@ -448,20 +448,29 @@ else | |||
| 448 | fi | 448 | fi |
| 449 | 449 | ||
| 450 | # qemu got segfault if linked with nVidia's libgl | 450 | # qemu got segfault if linked with nVidia's libgl |
| 451 | GL_LD_PRELOAD=$LD_PRELOAD | ||
| 452 | |||
| 451 | if ldd $QEMUBIN | grep -i nvidia &> /dev/null | 453 | if ldd $QEMUBIN | grep -i nvidia &> /dev/null |
| 452 | then | 454 | then |
| 453 | cat << EOM | 455 | cat << EOM |
| 454 | WARNING: nVidia proprietary OpenGL libraries detected. | 456 | WARNING: nVidia proprietary OpenGL libraries detected. |
| 455 | nVidia's OpenGL libraries are known to have compatibility issues with qemu, | 457 | nVidia's OpenGL libraries are known to have compatibility issues with qemu, |
| 456 | resulting in a segfault. Please uninstall these drivers or ensure the mesa libGL | 458 | resulting in a segfault. Please uninstall these drivers or ensure the mesa libGL |
| 457 | libraries precede nvidia's via LD_PRELOAD. | 459 | libraries precede nvidia's via LD_PRELOAD(Already do it on Ubuntu). |
| 458 | EOM | 460 | EOM |
| 461 | |||
| 462 | # Automatically use Ubuntu system's mesa libGL, other distro can add its own path | ||
| 463 | if grep -i ubuntu /etc/lsb-release &> /dev/null | ||
| 464 | then | ||
| 465 | echo "Skip nVidia's libGL on Ubuntu!" | ||
| 466 | GL_LD_PRELOAD="/usr/lib/libGL.so $LD_PRELOAD" | ||
| 467 | fi | ||
| 459 | fi | 468 | fi |
| 460 | 469 | ||
| 461 | echo "Running $QEMU..." | 470 | echo "Running $QEMU..." |
| 462 | # -no-reboot is a mandatory option - see bug #100 | 471 | # -no-reboot is a mandatory option - see bug #100 |
| 463 | echo $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append '"'$KERNCMDLINE $SCRIPT_KERNEL_OPT'"' | 472 | echo $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append '"'$KERNCMDLINE $SCRIPT_KERNEL_OPT'"' |
| 464 | $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append "$KERNCMDLINE $SCRIPT_KERNEL_OPT" | 473 | LD_PRELOAD="$GL_LD_PRELOAD" $QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append "$KERNCMDLINE $SCRIPT_KERNEL_OPT" |
| 465 | 474 | ||
| 466 | 475 | ||
| 467 | cleanup | 476 | cleanup |
