Skip to contentSkip to conversation

V3: fix qemu segfault with nVidia proprietary driver

PATCH In review Zhai Edwin 2 participants 3 messages Mar 18, 2011

lore
Share & tools
lore

Zhai Edwin

author
#0 lore raw

cover V3: fix qemu segfault with nVidia proprietary driver

From: Zhai Edwin <[email protected]>

After discussion with Mark, we decide that only give warnings to ender user as different host os need differnt fix.

Thanks,
edwin

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: gzhai/fix3
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=gzhai/fix3

Thanks,
Zhai Edwin <[email protected]>
---

Zhai Edwin (1):
qemu: Warnings of qemu segfault caused by nVidia's libGL

 scripts/poky-qemu-internal |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)
author
#1 lore raw

PATCH 1/1 qemu: Warnings of qemu segfault caused by nVidia's libGL

From: Zhai Edwin <[email protected]>

Proprietary nVidia driver introduce its own libGL that precede mesa's. qemu has segfault if linked with it. This fix give warnings and workaround to end user.

[YOCTO #649]
[YOCTO #698]

---
 scripts/poky-qemu-internal |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)
scripts/poky-qemu-internal +13 -1
index 3638a65..5f32447 100755
@@ -436,10 +436,22 @@ else
     echo "Warning: distccd not present, no distcc support loaded."
 fi
 
+# qemu got segfault if linked with nVidia's libgl
+if ldd $QEMUBIN | grep -i nvidia &> /dev/null
+then
+    echo "************** !!!Warning!!! **************
+    nVidia's proprietary 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.
+    " 
+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" || /bin/true
+# If QEMU crashes, we need to run stty sane
+$QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append "$KERNCMDLINE $SCRIPT_KERNEL_OPT" || stty sane
+
 
 cleanup
 
Signature · 1 line
1.7.1
#2 lore raw

Re: [PATCH 1/1] qemu: Warnings of qemu segfault caused by nVidia's libGL

Quoted 23 lines · Zhai Edwin

From: Zhai Edwin<[email protected]>

Proprietary nVidia driver introduce its own libGL that precede mesa's. qemu has segfault if linked with it. This fix give warnings and workaround to end user.

[YOCTO #649]
[YOCTO #698]

---
  scripts/poky-qemu-internal |   14 +++++++++++++-
  1 files changed, 13 insertions(+), 1 deletions(-)
scripts/poky-qemu-internal +0 -0
index 3638a65..5f32447 100755
@@ -436,10 +436,22 @@ else
      echo "Warning: distccd not present, no distcc support loaded."

scripts/poky-qemu-internal else · line 446

Quoted 10 lines
scripts/poky-qemu-internal +8 -0
  fi
 
+# qemu got segfault if linked with nVidia's libgl
+if ldd $QEMUBIN | grep -i nvidia&>  /dev/null
+then
+    echo "************** !!!Warning!!! **************
+    nVidia's proprietary 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.
+    "

Please don't wrap lines with echo, it comes out like this:

************** !!!Warning!!! **************
nVidia's proprietary 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.

This is why my suggestion used

cat <<EOM
verbatim message
EOM

Also, this doesn't include the comment about the script trying to use LD_PRELOAD. So this is not the patch I proposed, as such, please do not add my Signed-off-by.

Thanks,

Darren

Quoted 12 lines
scripts/poky-qemu-internal +5 -1
+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" || /bin/true
+# If QEMU crashes, we need to run stty sane
+$QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT --append "$KERNCMDLINE $SCRIPT_KERNEL_OPT" || stty sane
+
 
  cleanup
 
Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel