Difference between revisions of "Problem with display remaining black after resume"
Line 11: | Line 11: | ||
*Linux (it's a kernel issue) | *Linux (it's a kernel issue) | ||
− | ==Solution== | + | ==Solution for ThinkPads with ATI graphic chips== |
The Solution is to provide the {{bootparm|acpi_sleep|s3_bios}} kernel parameter in your kernel parameter line. | The Solution is to provide the {{bootparm|acpi_sleep|s3_bios}} kernel parameter in your kernel parameter line. | ||
Line 21: | Line 21: | ||
savedefault | savedefault | ||
boot | boot | ||
+ | |||
+ | ==Solution for ThinkPads with Intel Extreme Graphics 2== | ||
+ | *First of all, '''do not''' use the {{bootparm|acpi_sleep|s3_bios}} kernel parameter. | ||
+ | *Second, completely remove framebuffer support from your kernel. If it's built as modules, it is important that they do not get loaded at all. | ||
+ | *Before suspending, change to a console and safe the video state with {{cmdroot|cat /proc/bus/pci/00/02.0 > /tmp/video_state}}. | ||
+ | *On resume, restore the video state with {{cmdroot|cat /tmp/video_state > /proc/bus/pci/00/02.0}} and change back to X. | ||
+ | The following example {{path|/etc/acpi/actions/sleep.sh}} script shows how to integrate the according lines. | ||
+ | |||
+ | #!/bin/bash | ||
+ | |||
+ | # change to console 1 | ||
+ | chvt 1 | ||
+ | |||
+ | # safe video state | ||
+ | cat /proc/bus/pci/00/02.0 > /tmp/video_state | ||
+ | |||
+ | # sync filesystem | ||
+ | sync | ||
+ | |||
+ | # sync hardware clock with system time | ||
+ | hwclock --systohc | ||
+ | |||
+ | # go to sleep | ||
+ | echo -n 3 > /proc/acpi/sleep | ||
+ | |||
+ | # waking up | ||
+ | # restore system clock | ||
+ | hwclock --hctosys | ||
+ | |||
+ | # restore video state | ||
+ | cat /tmp/video_state > /proc/bus/pci/00/02.0 | ||
+ | |||
+ | # change back to X | ||
+ | chvt 7 | ||
+ | |||
+ | # clean up behind us | ||
+ | rm /tmp/video_state | ||
{{footnotes| | {{footnotes| | ||
#If you have this problem with R50e and the above solution doesn't work, try switching to console first. An example sleep script can be found [[How to configure acpid|here]]. | #If you have this problem with R50e and the above solution doesn't work, try switching to console first. An example sleep script can be found [[How to configure acpid|here]]. | ||
}} | }} |
Revision as of 21:42, 24 August 2005
There has been a problem encountered where the display stays black on resuming from suspend.
The symptom might have you think first that your system hang up, but you will realize that your ThinkPad works and you can even reset it via CtrlAltDel.
Contents
Affected Models
Affected Operating Systems
- Linux (it's a kernel issue)
Solution for ThinkPads with ATI graphic chips
The Solution is to provide the acpi_sleep=s3_bios
kernel parameter in your kernel parameter line.
For grub this can look like this:
title Linux, kernel 2.6.11-1-686 root (hd0,0) kernel /boot/vmlinuz-2.6.11-1-686 root=/dev/hda1 ro acpi_sleep=s3_bios initrd /boot/initrd.img-2.6.11-1-686 savedefault boot
Solution for ThinkPads with Intel Extreme Graphics 2
- First of all, do not use the
acpi_sleep=s3_bios
kernel parameter. - Second, completely remove framebuffer support from your kernel. If it's built as modules, it is important that they do not get loaded at all.
- Before suspending, change to a console and safe the video state with
# cat /proc/bus/pci/00/02.0 > /tmp/video_state
. - On resume, restore the video state with
# cat /tmp/video_state > /proc/bus/pci/00/02.0
and change back to X.
The following example /etc/acpi/actions/sleep.sh script shows how to integrate the according lines.
#!/bin/bash # change to console 1 chvt 1 # safe video state cat /proc/bus/pci/00/02.0 > /tmp/video_state # sync filesystem sync # sync hardware clock with system time hwclock --systohc # go to sleep echo -n 3 > /proc/acpi/sleep # waking up # restore system clock hwclock --hctosys # restore video state cat /tmp/video_state > /proc/bus/pci/00/02.0 # change back to X chvt 7 # clean up behind us rm /tmp/video_state
FOOTNOTES [Δ] |
- If you have this problem with R50e and the above solution doesn't work, try switching to console first. An example sleep script can be found here.