Fedoraのサスペンドとハイバネート - 現時点でのまとめ
前出の記事
その後、細かな調整を繰り返していたが、一応の目処が付いたのでメモしておく。
- /etc/pm/config.d/tksSuspend.cfg
#!/bin/bash #For VOSTRO1400 DISPLAY_QUIRK_VBE_POST="true" DISPLAY_QUIRK_VBESTATE_RESTORE="true" DISPLAY_QUIRK_VGA_MODE_3="true"
exportする必要はなかった。 - /etc/pm/sleep.d/64hda_intel
#!/bin/bash . /usr/lib/pm-utils/functions case "$1" in hibernate|suspend) ;; thaw|resume) /sbin/modprobe -r snd_hda_intel /sbin/modprobe snd_hda_intel ;; *) ;; esac exit $?
復帰後、音がならなくなることへの対処。64の部分は65より小さければ他の数字でも良いと思う。環境に応じてpulseaudioなどを止める必要がある。 - /etc/pm/sleep.d/94tkscpufreq
#!/bin/bash . /usr/lib/pm-utils/functions hibernate_cpufreq() { [ -d /sys/devices/system/cpu/ ] || return 0 pushd /sys/devices/system/cpu/ >/dev/null 2>&1 [ -d cpu0/cpufreq ] || return 0 [ -f cpu0/cpufreq/scaling_governor ] || return 0 savestate cpu_governor $(cat cpu0/cpufreq/scaling_governor) sh -c "echo performance > cpu0/cpufreq/scaling_governor" >/dev/null 2>&1 popd >/dev/null 2>&1 } thaw_cpufreq() { gov=$(restorestate $(echo cpu_governor)) [ -z "$gov" ] && break sh -c "echo \"$gov\" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor" >/dev/null 2>&1 unset gov } case "$1" in suspend|hibernate) hibernate_cpufreq ;; resume|thaw) thaw_cpufreq ;; *) ;; esac exit $?
復帰後CPU使用率が100%になることへの対処。代わりに# []chmod a-x /usr/lib/pm-utils/sleep.d/94cpureq[]
しておく。原因はCore 2 Duoの片方のCPUのgovernorを変更するともう一方も変更される事が考慮されていなかったため。*1ちなみにファイル名を/etc/pm/sleep.d/94cpufreqにしておくと、なんと二回実行されてしまう。 - /etc/pm/sleep.d/96acpi_cpufreq
#!/bin/bash . /usr/lib/pm-utils/functions case "$1" in resume) /sbin/modprobe -r acpi_cpufreq /sbin/modprobe acpi_cpufreq ;; *) ;; esac exit $?
サスペンドから復帰後、二個目のCPUがno or unknown cpufreq driver is active on this CPUになってしまう事への対処。
忘れずに実行属性を付けておく。
# []chmod a+x /etc/pm/sleep.d/64hda_intel[]
# []chmod a+x /etc/pm/sleep.d/94tkscpufreq[]
# []chmod a+x /etc/pm/sleep.d/96acpi_cpufreq[]
*1:追記:よく見るとcpu1/cpufreqがcpu0/cpufreqへのシンボリックリンクになっている!launchpadに立てられたバグ