SuperD-1.6.6(BETA/FastTest)のcompcacheモジュールを書き換えてみる
最近、HT-03AにSuperDを入れて使っている。もちろん夢の中での出来事だ。
SuperDのベータ版であるSuperD-1.6.6BETAではcompcacheが無効になっていたので有効になるようにしてみた。
追記: SuperD FastTest1.6.6でも同様でした。同じモジュールを入れれば有効になります。
修正compcacheモジュール
ここに置いた。http://tetsu.homelinux.org/android/superd/ramzswap.ko
使い方
- adb remount
- adb push ramzswap.ko /lib/compcache/
- adb shell chmod 644 /lib/compcache/ramzswap.ko
- adb reboot
参考
Linuxカーネルはドライバモジュールをロードする際、バージョン違いのものを組み込んで暴走しないようにバージョンチェックを行う(ようにできる)。
カーネル側のバージョンは以下のように調べられる。この例では"2.6.29.6-g6585a85-dirty"がバージョン。
# uname -a
Linux localhost 2.6.29.6-g6585a85-dirty #1 PREEMPT Wed Jan 20 03:02:30 PST 2010 armv6l GNU/Linux
モジュール側のバージョンはこんな感じで調べる。
# strings /lib/compcache/ramzswap.ko | grep "2.6.29"
vermagic=2.6.29.6-g3918fc7-dirty preempt mod_unload ARMv6
微妙にバージョンが違っている。
モジュール側のバージョンを無理やりカーネル側のバージョンに合わせててやればロードできるようになる。
モジュール側のバージョンを変えるには、この文字列を書き換えれば良い。
今回は文字列が同じ長さなので上書きして書き換える。短くなる場合は後ろを00で埋める。長くなる場合は諦める。
感想
まあ、次バージョンが出る(もう出てる?)までのつなぎということで。