is01でcompcacheを有効にしてメモリ不足を解消する方法

 2chのis01root板でcompcacheを有効にするカーネルが話題になっているのに我慢できず、ついに一線を越えてしまった。
 以下、一連の手順についての備忘メモ。ベースバンドバージョンは01.00.09。PCに繋ぐことなく、is01だけでできてしまう。偉大なる先人の方々に感謝。
 

2.modules_enablerを入れる

えぬえす工房 » IS01関連の自作ファイルのまとめ
http://blog.ns-koubou.com/archives/19
 
 ダウンロードした modules_enabler を /sqlite_journals/is01root/ に移動させ、/sqlite_journals/is01root/autoexec.sh を以下のように記述してis01を再起動。

#!/system/bin/sh
/sqlite_journals/is01root/_su 0 insmod /sqlite_journals/is01root/msm_nand_ex.ko
/sqlite_journals/is01root/_su 0 insmod /sqlite_journals/is01root/modules_enabler.ko
/sqlite_journals/is01root/_su 0 setprop rild.libpath `getprop rild.libpath2`

 

【参考】recovery領域のバックアップ (2011/3/9追記)

 端末エミュレータで su でroot権限をとった後に以下のコマンドを入力。sdカードにrecovery(mtd2.bin)がバックアップされる。

dd if=/dev/mtd/mtd2 of=/sdcard/mtd2.bin

 

3.compcacheを有効にするカーネル(ubi-compcache-0.2.img)を入れる

IS01 で compcache (ramzswap) を有効にする(2) | Weboo! Returns.
http://yamashita.dyndns.org/blog/is01-compcache-ramzswap-2/
 
 ダウンロードした ubi-compcache-0.2.img を /sdcard/ に置き、端末エミュレータで su でroot権限をとった後に以下のコマンドを入力。

flash_image recovery_wr /sdcard/ubi-compcache-0.2.img

 
 これでrecovery領域に ubi-compcache-0.2.img が書き込まれた。事前にrecovery領域のバックアップを取っていた方がいいのだが、思いっきり忘れていた(大汗)。まあ、boot領域に書き込んだ訳でもないからいいやと思うことにする。
 

4.compcacheを有効にする

 端末エミュレータで su でrootを取って、以下のコマンドを入力。GScript Lite に保存しておくのが楽だし、間違いがないし、お勧め。

reboot recovery

 なお、普通に電源を入れ直したり再起動したりする場合は、標準のカーネルが立ち上がるので安心。改変カーネルis01を起動している時に、systemを変にいじったり、オールリセットとかしたりしなければ、文鎮化する可能性は低いと思われる。
 compcacheが有効かどうかは、端末エミュレータで free と打ち込めば分かります。 swap の数値が0でなければ成功。
 compcacheの調整をするには、/system/build.prop の適当な場所に以下のように記述。(私は64MBに設定してる)

ro.compcache.size=65536

 

5.Low memory killer の値の変更

 カーネルを入れ替えたのだから、再起動時に自動的に Low memory killer の値も変更する。root権限が必要なので、/sqlite_journals/is01root/boot.sh も自動実行させる。
 /sqlite_journals/is01root/autoexec.sh にを以下のように記述する。Low memory killer を、6MB, 8MB, 16MB, 60MB, 70MB, 80MB で設定した例。

#!/system/bin/sh
/sqlite_journals/is01root/_su 0 insmod /sqlite_journals/is01root/msm_nand_ex.ko
/sqlite_journals/is01root/_su 0 insmod /sqlite_journals/is01root/modules_enabler.ko
/sqlite_journals/is01root/_su 0 setprop rild.libpath `getprop rild.libpath2`
/sqlite_journals/is01root/su -c /sqlite_journals/is01root/boot.sh
echo  "1536,2048,4096,15360,17920,20480" > /sys/module/lowmemorykiller/parameters/minfree

 

6.作業するにあたっての便利アプリ等

  • Ghost Commander (ファイル操作アプリ。root拡張。定番)
  • sheditor (エディタ。is01向けなのでとても使いやすい)
  • GScript Lite (コマンド保存実行アプリ。root拡張。ファイルはsdカードにも保存可能)
  • 端末エミュレータ (コマンド実行アプリ。root拡張。定番)

 Ghost Commander と sheditor と GScript Lite 、そして標準ブラウザがあれば、一連の作業は可能。(GScript Lite は、端末エミュレータの代わりになる)
 
 なお、一連の作業を行う前に、下記サイトを熟読した。
 
IS01 root化と諸々の作業メモ - コムギドットネット
http://komugi.net/archives/2010/12/06205920.php
 

7.compcacheの効果

 compcacheを有効化した最大の理由はPDFビューワ。
 Jコミの漫画を読むためのPDFビューワを探しているのだが、なかなかいいアプリがない。Documents To Go を我慢して使っていたのだが、解像度の悪さに嫌気がさし、VuDroid というアプリを入れてみたところ、操作性も解像度も良かったので乗り換えることに。ただし、すぐに落ちてしまうので、これはこれでストレスが溜まる。(落ちても自動的にしおりが入るのが救い)
 
VuDroid
http://code.google.com/p/vudroid/
 
 やはりis01の搭載メモリで高解像度の大容量PDFを楽しむのは難しいのか。そんなとき、評判のいいcompcacheを有効にするカーネルの存在を知った。
 
 メモリ対策として従来までの、

  • ワンセグやケータイアップデートなど不用なプリインストールアプリやサービスをリネームして起動させない
  • Low memory killer を、6MB, 8MB, 16MB, 60MB, 70MB, 80MB に設定

に加えて、

  • compcacheを64MBに設定

したことで、VuDroid でJコミの漫画をPDFで快適に見れるようになった(でも、やっぱり落ちることはあるけど)。
 Low memory killer と compcacheの最適な設定値を探さねば。
 

【追記】2011/3/16

 プリインストールされている Documents To Go を 3.002e(884) にバージョンアップしたところ、解像度がメチャメチャよくなった!! compcache のおかげか、サクサク快適に見れるし、「ラブひな」を読んでいる最中、一度も落ちなかった。しおり機能がついてくれれば言うことなしだが、現状とても満足している。Tuneln Radio でNHKラジオ(Radio Japan)を聞きながらPDFファイルを読んでいるが全く問題なし。
 と言う訳で、PDFビューアを探す旅は終了。短い間でしたが VuDroid ありがとうございました。