突然消失するかもしれないブログ

”とつきえブログ”

N810のLinuxカーネルをハックする その2

ノートPCやデスクトップPCだと、Windowsでは当たり前のようにIntelのspeed stepテクノロジーが使われていて、システムの負荷に応じてCPUの電圧と周波数の必要最小限の最適な値に動的に変更してくれる。DVFSが有効に働けば、省電力になってバッテリーが長持ちするというわけ。

ところが、組込機器(特に日本の?)ではほとんどDVFSが使われていないらしい。

なぜかというと、組込機器でよく使われるARMプロセッサがもともとかなり省電力だし、CPUに供給される電圧がPC用に比べて凄く小さいから、ということらしいです。

これは、一般的に、消費電力は、電圧の二乗、周波数に比例すると言われていて、電圧の影響が大きいんですね。

で、N810にsshでログインしてpsコマンドを実行してみると、↓のようにdvfsというカーネルスレッドがいることがわかります。

http://www.nomadic.jp/blog/bichir/2008/02/nokia_n810_openssh.html 

N810はTIのOMAP2を使っていて、ARM11コアを内蔵しているわけですけど、ひょっとして、N810はDVFS(Dynamic voltage frequency scaling)に対応しているんじゃないかと疑っていたのですが、どうやらそのようだったようです。

N810のLinuxカーネルのソースを覗いてみると、ずばり、ありました。

cd kernel-source-diablo/kernel-source

find . -name “*dvfs*” -print
./arch/arm/mach-omap2/board-n800-dvfs.c
./arch/arm/mach-omap2/dvfs.c
./arch/arm/mach-omap2/dvfs.h
./arch/arm/mach-omap2/dvfs_notif.c
./include/asm-arm/arch-omap/dvfs_notif.h
./include/asm-arm/arch-omap/dvfs.h

ちなみに、Linuxカーネルをリコンパイルする際、.configにCONFIG_MACH_OMAP2420_DVFSが定義されていると、DVFSがONになるようです。N810の製品ではONになっているということですよね。

また、N810のLinuxカーネルでは、ユーザ空間で動作するプログラムからDVFS機能にアクセスするためのIFを提供していないようです。(maemo.orgのドキュメントより)

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。