USHの日記: ThinkPad X32 + Vine Linux 3.2 + suspend to memory
いろいろ悩んでいた、ThinkPad X32 + Vine Linux 3.2 でsuspend を安定に動かす方法がわかったので、書いておきます。
基本設定は、APM を有効、ACPIを向こうにして kernel を起動。 apm -s でsuspend to memory になります。
問題なのは、AC online で起動したあと、battery で動作中に suspend すると、次、起動できなくなります。原因はどうも battery モードでの CPU のクロック低下のせいらしい。
なので、ちょっと強引だが以下のような解決策を。
/etc/sysconfig/apm-scripts/apmcontinue-pre を以下のように改変
case "$PROG" in
suspend|standby)
/sbin/rmmod usbmouse ohci1394 ieee1394 ehci-hcd usb-uhci hid
# force CPU freq high
echo -n "0%100%100%performance" > /proc/cpufreq
;;
resume)
# set suitable CPU freq
if apm | LC_ALL=C grep -q on-line &>/dev/null; then
echo -n "0%100%100%performance" > /proc/cpufreq
else
echo -n "0%0%100%powersave" > /proc/cpufreq
fi
# do nothing
;;
esac
resume の部分は apmscript の中での処理にまかせる方がいいのかも知れないが、apmscript 内のものではやたらと freq をとにかく最低にしてしまうので、それを避けるために、こちらに記述。