2011年5月21日土曜日

Galaxy S Swap領域作ってGoogleMapフリーズ緩和 (要root)

最近、仕事が忙しくてGalaxy S 弄ってないなぁ、と思っていろいろググったりしてみると、Swapper2などのアプリを使ってGoogleMapのフリーズ問題を解決できるらしいとのこと!

それは凄いと思って、すぐに話に飛びついたが、このSwapper2というソフト、まったく動いてくれない・・・。



かるく1日悩んで、ようやく動かせるところまで持っていったが、それでも問題が出た。
・PCにUSBでつないでのファイルのやり取りが行えなくなった
・いつのまにか、swapfile.swp が消えていることがある

・再起動すると、256MBのスワップ領域がデフォの32MBに戻る
・広告のDLがウザイ(広告をオフにすると、見せないけどDLは行っているっぽい)


少し面倒臭そうだが、sdカード領域にswapパーティションを用意した方が確実っぽいので、そうすることにした。
(以下参考にする場合、自己責任で。最悪の場合Galaxy S が壊れる恐れあり)

USBメモリブートでgpartedを起動させるのが一番楽チンだと分かったので、
・USBメモリ(200MB以上)
・sdカードリーダー
tuxboot
を準備し、tuxbootを起動、USBメモリにgparted live usbを導入。すぐに終わった。
USBメモリとsdカードリーダー(swapパーティションを作るものを挿す)をPC本体に付け、USBメモリで起動。
起動中いろいろ聞かれるが、適当に入力。
gpartedでUSBメモリの後ろ側を256MB削って、その分をlinux-swap領域に指定して終了。

先ほどswapパーティションを作ったsdカードをGalaxy Sに挿し、今までどおりに使えるかチェックする。(問題なく使用できた)

usbデバッグモードにして、windowsコマンドプロンプトから
> adb shell
$ su
# free
swapがまだ0である事を確かめて、

# swapon /dev/block/mmcblk1p2
エラーが出なければ成功しているかも・・・

# free
swapが 256MB分認識しているなら成功!!

このままだと、シャットダウンするとまたswaponコマンド打ち直しなので、なにか適当なものは無いか、/system/binの中を見てみると・・・
「userinit.sh」なるもの発見。OCLFを入れているとあるっぽい?
(OCLF関係の記述があるからそう思った)

userinit.shに以下の2行を追加した。
swapon /dev/block/mmcblk1p2
echo 10 > /proc/sys/vm/swappiness
これで再起動しようが、またswaponを自動で行ってくれる。

GoogleMapをぐりぐり使ってみたが、確かに「フリーズし難く」なっているようだ。(しなくなる訳ではない)
明らかに安定性があがっているので、swapの導入は意味が大きいと思う。
こころなしか、HPのブラウジングにも効果があるような気がする。


※補足
・要root
知らないほうが幸せな世界もある。どちらを選ぶも個人の自由
・要busybox
いろいろなコマンドが詰まっている、夢のツール
swaponが使えればどのバージョンでも良い
・/system/binを書き込めるようにする
busybox mount -o remount,rw /system
・ mmcblk1p2
mmcblk0 が内蔵メモリ(16GB)
mmcblk1 がsdカード
最後のp1 p2 はパーティションの1番目、2番目・・・
・swappinessの数値
0-100,大きければ、swapしやすくなるらしい
とりあえず、Galaxy Sで10を使ってるケースが多いと分かったので10

0 件のコメント:

コメントを投稿