I had one solution before, to edit /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux and change the quirks line to:
QUIRKS="--quirk-s3-bios --quirk-s3-mode --quirk-dpms-on --quirk-vbe-post --quirk-vbestate-restore"
(This needed to be redone after each update, since the file got overwritten.)
That stopped working in Karmic (9.10). Now I have found another solution, using one other person's suggestion and one idea of my own inspired by Manuel Siggen's suggestion.
Now the first time I suspend, resume works for a moment and then goes into hibernation. After coming out of hibernation, resuming works from the second time on. I think this is peculiar to my machine, but don't be surprised if it happens.
1. In /boot/grub/menu.lst, add i915.modeset=0 nomodeset to the defoptions line. This disables the new kernel mode-setting (KMS):
## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash i915.modeset=0 nomodeset
1b) save and run the command update-grub (as root).
2. In /usr/lib/pm-utils/sleep.d/, I deleted the lines in the Intel section removing the quirks I need: --quirk-dpms-on --quirk-vbe-post --quirk-vbestate-restore. (Two others, --quirk-s3-bios and --quirk-s3-mode, weren't in the list.)
The Intel section of the file now reads:
have_smart_intel()
{
# currently, intel kernel modesetting is not quite smart enough
# we still need acpi s3 kernel modesetting hooks, so don't remove those
# options if they were passed.
[ -d /sys/module/i915 ] || return 1
local kernel_rev="$(uname -r |awk -F '[_-]' '{print $1}')"
[ "$kernel_rev" \> "2.6.26" -o "$kernel_rev" = "2.6.26" ] || return 1
remove_parameters --quirk-dpms-suspend \
--quirk-vga-mode3 \
--quirk-vbemode-restore \
--quirk-reset-brightness \
--quirk-radeon-off \
--quirk-no-fb \
--quirk-pci-save
}
3) Reboot.
To find the particular quirks you may need, look at the man page for pm-suspend, and testing suspend from the command line (pm-suspend plus a series of quirk options). Try combining everything that looks likely, then removing some. Be patient.
I had one solution before, to edit /usr/lib/ hal/scripts/ linux/hal- system- power-suspend- linux and change the quirks line to: "--quirk- s3-bios --quirk-s3-mode --quirk-dpms-on --quirk-vbe-post --quirk- vbestate- restore"
QUIRKS=
(This needed to be redone after each update, since the file got overwritten.)
That stopped working in Karmic (9.10). Now I have found another solution, using one other person's suggestion and one idea of my own inspired by Manuel Siggen's suggestion.
Now the first time I suspend, resume works for a moment and then goes into hibernation. After coming out of hibernation, resuming works from the second time on. I think this is peculiar to my machine, but don't be surprised if it happens.
1. In /boot/grub/ menu.lst, add i915.modeset=0 nomodeset to the defoptions line. This disables the new kernel mode-setting (KMS):
## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash i915.modeset=0 nomodeset
1b) save and run the command update-grub (as root).
2. In /usr/lib/ pm-utils/ sleep.d/ , I deleted the lines in the Intel section removing the quirks I need: --quirk-dpms-on --quirk-vbe-post --quirk- vbestate- restore. (Two others, --quirk-s3-bios and --quirk-s3-mode, weren't in the list.)
The Intel section of the file now reads:
have_smart_intel() parameters --quirk- dpms-suspend \ vbemode- restore \ reset-brightnes s \
{
# currently, intel kernel modesetting is not quite smart enough
# we still need acpi s3 kernel modesetting hooks, so don't remove those
# options if they were passed.
[ -d /sys/module/i915 ] || return 1
local kernel_rev="$(uname -r |awk -F '[_-]' '{print $1}')"
[ "$kernel_rev" \> "2.6.26" -o "$kernel_rev" = "2.6.26" ] || return 1
remove_
--quirk-vga-mode3 \
--quirk-
--quirk-
--quirk-radeon-off \
--quirk-no-fb \
--quirk-pci-save
}
3) Reboot.
To find the particular quirks you may need, look at the man page for pm-suspend, and testing suspend from the command line (pm-suspend plus a series of quirk options). Try combining everything that looks likely, then removing some. Be patient.