2012年10月31日水曜日

Xperia arc spモードメール肥大化対応 2 (今度こそ解決編)

 前回の続き。
 Link2SDでspモードをSDカードに移した筈なのに、本体ストレージがあんまり空かなかった話。

 Super Managerで/data/data/jp.co.nttdocomo.carriermailを覗いたところ、emlファイルと添付ファイルが大量に格納されていました。
 SDカードのext3パーティションは/data/sdext2にマウントされているので、これはつまり、肝心のメールデータがSDカードに移っていないことを意味しています。
 そら本体側は空かんわな。

 改めて調べたところ、Link2SDで逃がせるのはspモード本体のみであり、メールデータは手動で移す必要があるとのこと。

【参考URL】
http://smartgoods.me/2012/08/no_more_cry_spmodemail/

【手順】
1. arcをPCにUSBデバッグモードで接続
※ arcにAndroid Terminal Emulatorを入れればPC不要ですが、コピペでコマンド入力できるのでPCから操作する方が楽かなと
2. PCのコマンドプロンプトから下記の操作を実施
adb shell
su
cp -r /data/data/jp.co.nttdocomo.carriermail /data/sdext2/jp.co.nttdocomo.carriermail
※ しばらく無反応だが、プロンプトが返るまでひたすら待つ
cd /data/sdext2/jp.co.nttdocomo.carriermail/files
ls
※ emlファイルがたくさんあるのを確認
rm -r /data/data/jp.co.nttdocomo.carriermail
※ しばらく無反応だが、プロンプトが返るまでひたすら待つ
ln -s /data/sdext2/jp.co.nttdocomo.carriermail /data/data/jp.co.nttdocomo.carriermail
※ 後から思えば、rmの前にこっちをやるべきだったなと
chmod 777 /data/sdext2/jp.co.nttdocomo.carriermail
chmod 777 /data/sdext2/jp.co.nttdocomo.carriermail/*
chmod 777 /data/sdext2/jp.co.nttdocomo.carriermail/*/*
exit
exit
3. USB接続を外し、arcを再起動

【結果】
 spモードのストレージ使用量が、15MB以下にまで激減しました!
 その後メールの送受信を繰り返していますが、本体側使用量に変化無しです。
 これで容量を気にせずメールし放題であります。めでたし。

【注意】
 操作ミスでメールデータやspモードアプリそのものが破損する危険があります。
 バックアップを取っておく等、慎重に作業しましょう。

2012年10月30日火曜日

Xperia arc spモードメール肥大化対応 1

 rootを取得した最大の目的である、Link2SDによるspモードの容量削減を試みました。
 要は、本体ストレージにへばりついているspモードのメールデータをSDカードに移す作業です。
 需要多数、実績豊富な操作なので、ネットに転がっているノウハウ通りにやれば楽勝であります。

 とか思っていたら意外とそうでもなかった話。

【参考URL】
http://tosroom.net/link2sd

【手順】
1. EaseUS Partition ManagerでSDカードにext3パーティションを作成
2. arcにLink2SDをインストール
3. Link2SDを起動し、ext3パーティションのマウントと、spモードメールのリンク作成を実施

【結果】
 作業前は90MB以上だったspモードのストレージ使用量が、作業後はなんと75MBに!
 …あれ、微妙だな。

BOINC プロジェクト開始・停止自動化

 前にも書きましたが、自宅PCのCPUは完全にオーバースペックなので、BOINCをやっています。
 基本はWCGで、先日のビデオカード買い換えでGPU計算もできるようになったため、Collatzも始めました。

 GPUは思いのほか強力であり、日々凄い勢いでスコアが伸びていきます。
 それは良いのですが、ビデオカードのファンの回転まで凄い勢いになります。
 もはや、ちょっとした掃除機並の騒音です。
 さらにケース内の気温も10度近く上がってしまい、怖くて24時間常時稼動させられません。

 やむなく、手動操作で以下のような運用をしていました。
・WCG…24時間常時稼動
・Collatz…1:30~7:30のみ稼動、他は一時停止状態
 しかし毎日毎日この操作を実施するのは面倒で、しかも止め忘れた時のリスクが大きいです。
 なんとか自動化できないかと2chのBOINCスレで聞いてみた結果、コマンドラインでの制御方法を教えてもらえたので、自動化を試みました。

【参考サイト】
 http://team2ch.info/PrimeGrid/#e09caf88

【手順】
1. Collatz一時停止用バッチファイルを作成
---
@echo off
SET URL_CLZ=http://boinc.thesonntags.com/collatz/

call :do_boinc %URL_CLZ% suspend

exit /b 0

:do_boinc
"C:\Program Files (x86)\BOINC\boinccmd" --project %1 %2
goto :eof
---
2. Collatz再開用バッチファイルを作成
---
@echo off
SET URL_CLZ=http://boinc.thesonntags.com/collatz/

call :do_boinc %URL_CLZ% resume

exit /b 0

:do_boinc
"C:\Program Files (x86)\BOINC\boinccmd" --project %1 %2
goto :eof
---
3. タスクスケジューラで、1.と2.を日次実行するよう指定

【トラブル】
 1.と2.のバッチファイルが、単体で実行すれば問題なく動作するのですが、タスクスケジューラから起動したら動作しませんでした。
 正確には、バッチファイルは起動するのですが、Collatzの停止・再開が実施されないのです。
 色々試した結果、タスクスケジューラ起動の場合、環境変数"%ProgramFiles%"がセットされていないことがわかりました。
 バッチファイルを以下のように書き換え、正しく動作するようになりました。
 ※ 先述のサンプルは修正後のものです。
修正前:
 "%ProgramFiles%\BOINC\boinccmd" --project %1 %2
修正後:
 "C:\Program Files (x86)\BOINC\boinccmd" --project %1 %2

【結果】
 GPUタスク制御の自動化に成功しました。
 本当は、CPUのように使用率控えめで長時間稼動させられればベストですが…。

貴様!見ているなッ!

 会社トイレの個室の張り紙。

---
故障中につき使用禁止

      中央監視室(内線xxxx)
---

 トイレの管轄って中央監視室だったのか…。