nanashinonozomi.com : fmemo , PGP と GnuPG
fmemo : «前の日記(2005-04-03 (Sun)) 最新 次の日記(2005-04-05 (Tue))»

fmemo

不断の日記 (の体裁をした覚え書き) です。


2005-04-04 (Mon) [長年日記]

CentOS 4.0 > LaVie MX LX60T/6S1EC で longrun を使用する

AC アダプタ接続の有無で performance/economy モードの切り替えをさせようと、イロイロ見ながら設定。

dev/cpu/0/msr & /dev/cpu/0/cpuid

longrun を使用するには /dev/cpu/0/msr と /dev/cpu/0/cpuid を用意しておく必要があるということで、

$ cd /dev
$ sudo ./MAKEDEV cpu

として /dev/cpu/* を作成。 ところが、システムを再起動すると消えてしまう。 そこで、以下の手順でデバイスファイルを作成。

$ sudo mkdir /etc/udev/devices/cpu
$ sudo mkdir /etc/udev/devices/cpu/0
$ sudo mknod /etc/udev/devices/cpu/0/msr c 202 0
$ sudo mknod /etc/udev/devices/cpu/0/cpuid c 203 0

…あ、ひょっとすると、

$ cd /dev
$ sudo ./MAKEDEV cpu
$ sudo cp -a ./cpu /etc/udev/devices

でも良かったかも。 (未確認)

/etc/modprobe.conf

以下の内容を追記。

alias char-major-202 msr
alias char-major-203 cpuid

/etc/acpi/actions/ac_adapter.sh

以下の内容で新規に作成。

#!/bin/sh
set $*
case "$1" in
	ac_adapter)
		cat /proc/acpi/ac_adapter/ADP/state | grep on-line > /dev/null
		if [ "$?" = "0" ] ; then
			/usr/sbin/longrun -s 0 100
			/usr/sbin/longrun -f performance
		else
			/usr/sbin/longrun -s 0 33
			/usr/sbin/longrun -f economy
		fi
		;;
	*)
		logger "ACPI group $1 is not defined"
		;;
esac

/etc/acpi/events/ac_adapter.conf

以下の内容で新規に作成。

event=ac_adapter *.*
action=/etc/acpi/actions/ac_adapter.sh "%e"

/etc/rc.d/rc.local

以下の内容を追記。

cat /proc/acpi/ac_adapter/ADP/state | grep on-line > /dev/null
if [ "$?" = "0" ] ; then
	/usr/sbin/longrun -s 0 100
	/usr/sbin/longrun -f performance
else
	/usr/sbin/longrun -s 0 33
	/usr/sbin/longrun -f economy
fi

結果

設定が終わったら、システムをリブート。

AC アダプタ接続の有無で、 longrun -p の出力が変わっていることは確認できるのだが、処理速度が変化している感覚がこれっぽちもない。 いずれの場合も、

$ sudo grep "cpu MHz" /proc/cpuinfo

の出力は約 600 MHz と変化なし。 前述の設定をすることで、 performance モードと economy モードとでは、 CPU の上限動作周波数が変化するものと思っていたのだが、何か勘違いしているのだろうか?(^^;;;

ちなみに、 longrun -l の出力を確認しようとすると、 /dev/cpu/0/msr が読めないというエラーを吐いてしまう。 当該デバイスファイルには root が読み書きできるパーミッションを与えているのだが…。

また、 msr と cpuid をモジュールではなく組み込みにして、 Crusoe 向けにカーネルを最適化してやれば、ひょっとしたら状況が変わるかもしれないと思い、カーネルを再構築してみたのだが、状況は変わらず。

そういえば、うちの LaVie にはシステムブートの際、 cpuspeed が /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed が見つからないというエラーを吐いて起動に失敗するという問題があるんだよなぁ…。 ひょっとして、今回の件と何か関係あったりするのかな?(~_~;;

実際に処理速度が変化しているかどうかは謎だが、 「AC アダプタ接続の有無で performance/economy モードの切り替えをさせる」 目的は達したので、今日のところは、とりあえず OK ということにしておこう(苦笑)

情報源/参考情報

Tags: Linux
[]