no or unknown cpufreq driver is active on this CPU

http://d.hatena.ne.jp/tksmashiw/20080130の続き。
この件はUbuntuサスペンドとハイバネートについて調べている内に気付いた。
手元のVostro1400はデュアルコア(Core 2 Duo)なのだが、サスペンドからの復帰後、二つ目のCPUのクロックをcpufreqが操作できていないように見える。(ハイバネートに関しては問題ない。)


$ []cpufreq-info[]
[]cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006[]
[]Report errors and bugs to linux@brodo.de, please.[]
[]analyzing CPU 0:[]
[] driver: acpi-cpufreq[]
[] CPUs which need to switch frequency at the same time: 0[]
[] hardware limits: 800 MHz - 2.00 GHz[]
[] available frequency steps: 2.00 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz[]
[] available cpufreq governors: ondemand, userspace, performance[]
[] current policy: frequency should be within 800 MHz and 2.00 GHz.[]
[] The governor "userspace" may decide which speed to use[]
[] within this range.[]
[] current CPU frequency is 1.60 GHz (asserted by call to hardware).[]
[]analyzing CPU 1:[]
[]no or unknown cpufreq driver is active on this CPU[]
launchpadに立てられたUbuntuに関するバグを読むと、acpi-cpufreqモジュールを読み直せばとりあえずバグを回避できる様だ。そこで以下のようなシェルスクリプトを作り、/etc/pm/sleep.d/96acpi_cpufreqという名で保存する。(96の部分は94より大きい数字であれば、多分どれでも良い。)

#!/bin/bash

. /usr/lib/pm-utils/functions

case "$1" in
        resume)
                /sbin/modprobe -r acpi_cpufreq
                /sbin/modprobe acpi_cpufreq
                ;;
        *)
                ;;
esac

exit $?

忘れずに実行可能属性を付けておく。


# []chmod a+x /etc/pm/sleep.d/96acpi_cpufreq[]