With a bit more digging, it seems that for some reason, the APM emulation isn't doing the job it used to do of
having X cleanup properly for suspend. It could be a bug with the recent X servers or ATI drivers, that's unclear.
However, rather than trying to fix that, the best solution is to do like x86 does with ACPI and basically use
scripts to trigger a VT switch. That will be more solid anyway.
The ACPI scripts are not useable as-is with /etc/power as they assume that env. variables can be set in
suspend and re-used in resume. So I've hacked a pair of scripts that can be put in /etc/power/suspend.d and
/etc/power/resume.d for powerpc (though they wouldn't hurt old style APM based x86 either I believe). Those
are a bit on the hackish side of things but they do the job fine for me, please do something similar to fix the
problem in gutsy !
- console-switch-out (in suspend.d):
#!/bin/sh
# And remember which console we're on
fgconsole >/tmp/saved-fg-console
# Change away from X, otherwise it'll blow up when we POST the video interface
chvt 12
With a bit more digging, it seems that for some reason, the APM emulation isn't doing the job it used to do of
having X cleanup properly for suspend. It could be a bug with the recent X servers or ATI drivers, that's unclear.
However, rather than trying to fix that, the best solution is to do like x86 does with ACPI and basically use
scripts to trigger a VT switch. That will be more solid anyway.
The ACPI scripts are not useable as-is with /etc/power as they assume that env. variables can be set in suspend. d and
suspend and re-used in resume. So I've hacked a pair of scripts that can be put in /etc/power/
/etc/power/resume.d for powerpc (though they wouldn't hurt old style APM based x86 either I believe). Those
are a bit on the hackish side of things but they do the job fine for me, please do something similar to fix the
problem in gutsy !
- console-switch-out (in suspend.d):
#!/bin/sh
# And remember which console we're on fg-console
fgconsole >/tmp/saved-
# Change away from X, otherwise it'll blow up when we POST the video interface
chvt 12
- console-switch-in (in resume.d):
#!/bin/sh
CONSOLE=`cat /tmp/saved- fg-console` fg-console
rm /tmp/saved-
chvt $CONSOLE