Workaround: Intel Graphics and Suspend in Linux - English

Jan 9, 2009: This issue has been solved by a Kernel upgrade. Right now it is only available in the -proposed repository. So you have to enable it and then do an upgrade of your packages. See this link and the bug's link for details. After a few days it is probably in the regular updates, so you can also just wait and update regularily.

Suspend to RAM is broken on my Centrino 2 based notebook using Ubuntu 8.10 Linux. It is a Dell Latitude E6400 with Intel GMA X4500MHD graphics adapter. Here is my installation report. This blog entry shows how to work around the problem.

Hier findet ihr die deutsche Version dieses Berichtes.

When resuming the screen was frozen showing only the mouse pointer and the grey shades of the windows which were open. It seems the -intel driver for Xorg is not thread save. To work around this problem all CPUs, except one of course, have to be deactivated just before suspend and can be re-activated right after resume. A script can do this automatically:

/etc/pm/sleep.d/00CPU

#!/bin/sh
# Workaround for concurrency bug in xserver-xorg-video-intel 2:2.4.1-1ubuntu10.
# Save this as /etc/pm/sleep.d/00CPU

. "${PM_FUNCTIONS}"

case "$1" in
	hibernate|suspend)
		for i in /sys/devices/system/cpu/cpu*/online ; do
			echo 0 >$i
		done
		;;
	thaw|resume) 
		sleep 10	# run with one core for 10 secs
		for i in /sys/devices/system/cpu/cpu*/online ; do
			echo 1 >$i
		done
		;;
	*)
		;;
esac

The script needs execute permission (sudo chmod 755 /etc/pm/sleep.d/00CPU).

Problems

It seems that the cpu frequency scaling cannot be properly set after resume. I use the gnome applet to change the power scheme to performance or on demand as I need it. This seems to only influence one of the CPUs after resume.

Sources

This solution has been found at the following souces, thank you very much:

 

Kommentare

Fedora 10 / Dell E6400

Many thanks - this work-around is working fine on Fedora 10 too, with one small change:

I replaced the line
. "${PM_FUNCTIONS}"
...with the hardcoded path:
. /usr/lib64/pm-utils/functions

(I run the 64-bit version, on a 32-bit installation it should read . /usr/lib/pm-utils/functions )

Some more details...

Just wanted to add some more details from a slightly different setup here. I just got a Dell Latitude E6400 and I put Ubuntu 9 pre-release on it. The system would hang on suspend when I first setup it up, and these changes here didn't work, it would still hang on suspend. It turns out I have the Nvidia Quatro graphics card, and I was using the 'nv' driver for xorg. With this driver the screen is frozen black on suspend, and this fix doesn't work. I was then able to get the 'nvidia' binary driver installed. After that, now suspend works, and comes back without the graphics hang. So, on this machine with nvidia graphics on pre-release 9, the 'nv' driver hangs on suspend, and the 'nvidia' driver works.

Suspend/Resume Testing

Thank you so very much! It

Thank you so very much! It works on debian with xsrver-xorg-video-intel driver version 2.3.2 as well!

Kommentar hinzufügen

  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Zeilen und Absätze werden automatisch erzeugt.

Weitere Informationen über Formatierungsoptionen

CAPTCHA
Diese Frage dient dazu festzustellen, ob Sie ein Mensch sind und um automatisierte SPAM-Beiträge zu verhindern.
9 + 8 =
Lösen Sie dieses einfache mathematische Problem und geben Sie das Ergebnis ein. Für 1 + 3 geben Sie z.B. 4 ein.
Inhalt abgleichen