IS01 で compcache (ramzswap) を有効にする(2)

昨日の compcache 有効化 kernel ですが、busyboxが必要とか微妙だったので改良しました。今度のものは、以下のイメージ以外は何も必要ありません。

» ubi-compcache-0.2.img

また、ro.compcache.size にて確保するサイズを指定できるようにしたので、好きな値を /system/build.prop にて設定することができます。自分は以下のように32MBに設定して使っています。何も記述しなかった場合は、compcacheのデフォルト値が使われます。

ro.compcache.size=32768

カーネルのソースコードは、github に置いてあります。

https://github.com/weboo/kernel-is01

IS01 で compcache (ramzswap) を有効にする(1)

※2011/02/15追記:改良版をこちらで公開しています

IS01 は CPU こそ 1GHz の Snapdragon が載っているのですが、メモリが256MBと最近の端末にしては少なめです。そこで自分は、本体に swap ファイルを作成して使っていたのですが、やはりフラッシュメモリの消耗が気になるので compcache に切り替えることにしました。

compcache は、一定量のメモリを swap 領域として利用し、そこに圧縮して格納することで少ないメモリを効率的に活用するための仕組みです。SHARPのサイトで公開されているIS01のソースコードに compcache の機能を追加したものを以下に置いておきます。

» ubi-compcache.img

この kernel に入れ替えるだけで、32MB の compcache 機能が有効になります(/system/xbin などPATHの通ったところに busybox が必要)。また、偉大な先人に習って、insmod有効化、NANDロック解除、Deckard無効化もしてあります。

# rzscontrol /dev/block/ramzswap0 -s
DiskSize:          32768 kB
NumReads:           4358
NumWrites:         10339
FailedReads:           0
FailedWrites:          0
InvalidIO:             0
NotifyFree:            0
ZeroPages:           763
GoodCompress:         63 %
NoCompress:           23 %
PagesStored:        7425
PagesUsed:          3234
OrigDataSize:      29700 kB
ComprDataSize:     12630 kB
MemUsedTotal:      12936 kB

# 最近、組み込みAndroidの本を買いました。Kernelの移植方法やドライバの作り方などが分かりやすく解説されていて、これはおすすめ。

基礎から学ぶ 組み込みAndroid
坂本 俊之 出村 成和 渡邊 昌之
シーアンドアール研究所
売り上げランキング: 3485