Hatena::ブログ(Diary)

linuzau’s diary このページをアンテナに追加 RSSフィード

2011-11-27

iMacのディスク名でハマったが復旧してみる

誕生祝いにiMacを買いました。xcodeemacsをコンパイルしようとしたらディスク名に空白が入っていてエラーになるので、ディスク名から空白を除いたところ、大いにハマったのでその記録です。


ご存知とは思いますが

Macでは、伝統的に、ハードディスクに"Macintosh HD", "Macintosh HD 2"の様な名前がデフォルトで付けられます。空白が問題を起こしそうな香りがプンプンします。インストール時に変えてやれば良かったのでしょうが、面倒でそのまま使ってました。


xcodeでのエラー

xcodeというかビルド時のスクリプトの問題ですが、ファイルのパスに空白があるとエラーになってしまいます。

例えば、emacs-23.3をソースからビルドしようとして、

"/Volumes/Macintosh HD 2/Users/tetsu/work/emacs-23.3"

にソースをおいてconfigureすると、


$ ./configure --with-ns --without-x
...
grep: /Volumes/Macintosh: No such file or directory

のように、Macintoshの後ろの空白のせいでスクリプトが勘違いを起こします。


やっちゃったこと

"Macintosh HD 2"の空白が悪いので、"MacintoshData"のような空白の含まれない名前にすればいいじゃないかという発想。"Macintosh HD 2"には自分のホームディレクトリが置いてあるので、下手をするとマズイことになるかと思い、下調べした。

  • ディスク名はファインダーから普通に変えて良い
  • ホームディレクトリを見失っても後で復旧できる

というような情報があったので、トライして見ることにした。

ファインダーでディスク名を変更。するとすぐにDropBoxが同期対象のディレクトリが見つからないとエラーを出すが、あとで直せばいいと、無視して再起動する。

起動したのでログインしようとしたら、できない。


試したこと

  • シングルユーザモードでディスク名を"MacintoshData"から"Macintosh HD 2"に変更 → 変わらず
  • Time Machineでシステムディスクを復元 → 変わらず

結局こうやって復旧

  • command-Rでリカバリモードで起動
  • resetpasswordでパスワードをリセット
  • rootユーザにパスワードを設定

こうすると、自分のアカウントではログインできないのは相変わらずだが、rootでログインできた。

rootでログインして、ディスクの名前を"MacintoshData"から"Macintosh HD 2"に変更してログアウトしたら、自分のアカウントでログインできるようになった。

セキュリティ的にまずいかもしれないが、rootアカウントは有効にしておいたほうが良いかも。あるいはrootアカウントの有効化手段を覚えておくか。


まだわからないこと

ホームディレクトリが置いてあるディスクの名前を安全に変えるにはどうしたら良いのでしょうか。

2010-10-12

ベンチマークデータを公開してみる

ベンチマークデータの更新が辛くなってきたので、過去のデータを公開することにしました。csv形式なのでDBに綺麗に入れ直せばいろいろいじれると思います。


データ形式

ファイルは、http://tetsu.homelinux.org/android/benchmark/data/ に置きました。

ファイル名は、概ね、

Benchmark_<ROM名>_<バージョン>[+<オプション>][-<通番>].csv

のように付けています。


権利

利用、配布、再配布などはご自由にどうぞ。

出来れば山田のデータを使った旨のクレジットタイトルがあるとうれしいけど、マナーの範囲なので無くても文句は言いません。

2010-05-05

CyanogenMod-5.0.7-DS-test2のcompcacheを有効にしてみる

CyanogenMod-5.0.7-DSは、なかなか軽快で、HT-03AでEclairが常用できるぐらいの出来だと思う。

しかし、test1では有効にできたcompcacheがtest2では有効にならないようなので何とかしてみることにした。


解析

CyanogenMod-5.0.7-DS-test2をインストールする。

compcacheが有効になっているか確認する。

C:\> adb shell free
              total         used         free       shared      buffers
  Mem:        97764        88740         9024            0         1636
 Swap:            0            0            0
Total:        97764        88740         9024

あー、ダメだねー。

原因を探す。

# adb shell
# cd /system/lib/modules/2.6.33.3-cyanogenmod
# ls
kernel               modules.dep          modules.order
modules.alias        modules.dep.bin      modules.pcimap
modules.alias.bin    modules.ieee1394map  modules.seriomap
modules.builtin      modules.inputmap     modules.symbols
modules.builtin.bin  modules.isapnpmap    modules.symbols.bin
modules.ccwmap       modules.ofmap        modules.usbmap

compcacheモジュールが無い。


対策

update-cm-5.0.7-DS-test1-signed.zipを解凍する。

system/lib/modules/2.6.33.3-cyanogenmodの下にあるcompcacheフォルダを見つけ出す。

compcacheフォルダごと書き込む。

C:\> adb remount
C:\> adb push compcache /system/lib/modules/2.6.33.3-cyanogenmod/compcache
C:\> adb reboot

SparePartsでcompcacheをONにして、有効になっているか確認。

C:\> adb shell free
              total         used         free       shared      buffers
  Mem:        97764        92884         4880            0          324
 Swap:        24432         9740        14692
Total:       122196       102624        19572

うまくいった。


感想

Cyanogenはcompcacheが嫌いなのかしら。

2010-03-14

Androidの時計をNTPで合わせてみる

Android端末をWifiで運用していると時計が自動的に合わないのでいろいろいじってみた。

(追記) 2010/5/15にNTPクライアントアプリ (http://amip.tools-for.net/android/ClockSync) が出てたので、今ならこれを使うのが良いと思う。


背景

Nexus One(Android携帯)の時刻同期のしくみ http://blog.takuo.jp/2010/03/nexus-oneandroid-phones-time-sync.html にある通り、Android端末は適切なSIM(日本ではドコモのみ)を使っている場合は自動で時刻同期をするが、他のSIMやSIM無しで運用している場合には時刻同期がなされない。

SIMを挿しているメイン機はともかく、ヒトバシラーの人たちはたくさんのAndroid端末を持っているものなので、何とかしてみたいと思った。


SNTPクライアント

まずはNTPクライアントを探してみた。

AndroLib.comにSNTP CLIENT http://jp.androlib.com/android.application.net-larko-android-sntpclient-xxwj.aspx があったので入れてみた。

SNTP CLIENTはNTPサーバからの時刻情報を表示するものの、機器の時計を合わせる機能がまだ実装されていない。


adjust_clock

SNTP CLIENTの作者のページにて、adjust_clock http://www.larko.net/adjust_clock を用いた時刻設定の仕方が紹介されている。


$ adb push adjust_clock /data/local/
$ adb shell chmod 755 /data/local/adjust_clock

ここでSNTP CLIENTの画面を見て、Local Offsetの値を1000倍した数値を覚えておく。

$ adb shell "/data/local/adjust_clock -67990 ; echo $?"
0

0が表示されたら成功。SNTP CLIENTの画面でも時刻が正しくなる。

なお、数m〜数十msecぐらいの誤差は残るので、あまり神経質にならない方が良いと思う。


感想

adjust_clockの処理が自動で行われなければあまり意味が無いと思う。

SNTP CLIENTがLocal Offsetをテキストで返してくれれば連動できそうなのだけれど。

ntpdateとかを動かした方が早いかもしれない。

2010-02-28

SuperD v1.9.3とJITを組み合わせてみる

Android 1.6 (Donuts)でそこそこJITを安定的に動かせるようになったので、ベンチマークを測定してみる。

(追記)FastTest v2.8 Lite with WG-Kernel + JITも試したのでベンチマーク結果を載せました。


Donuts用JIT

JIT enabled Dalvik VM on Android 1.6 (Dusted Donuts)がxda(http://forum.xda-developers.com/showthread.php?t=637419)で公開されていたので試してみた。


対応するカスタムROM

作者によると、

  • Android 1.6 ROMS with a bit Eclair stuff in the Kernel and framework such as Cyanogen ROM 4.2.x, Super D 1.8 - 1.92, WG Y2.6, FastTest, KingKlick Eclair and more..
  • This libdvm.so works on Android 2.1 as well as it seems it should..
  • 1 st bootup is slow and I recommend you let it sit even when desktops are up for a couple of minutes and then reboot it, 2nd and 3rd bootups are faster and smoother response overall even for long durations, days.

とのことで、EclairっぽいDonutsで動くらしい。CSDIとSuperDで試したが、SuperDが安定して動いているようなのでベンチマークを測定してみた。

(追記)FastTest v2.8 Lite with WG-Kernelでも動きました。


インストール方法

上記のページで注意事項がいろいろ書いてあるので確認のこと。

やっていることといえば、/system/lib/libdvm.soを入れ替えるだけ。

スクリプトが付いているので、/system領域のリマウントやコピー、パーミッションの変更は一発で終わる。


注意事項

backupスクリプトで./bakにlibdvm.soのバックアップを取るようになっているが、bakディレクトリは自動では作られないので予め作っておく必要がある。あるいはbackupスクリプトを修正するか。

CSDIの場合は立ち上がらなくなった。なお、立ち上がらなくてもadb shellは効くので復旧は簡単。



測定結果

Android Custom Cookbook の ホーム > カスタムRom > ベンチマーク (http://acc.komugi.net/?%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0Rom%2F%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF)


感想

JITが当たり前になって欲しいと思う。

2010-02-18

Android Custom Cookbookにベンチマークのページを作成してみる

カスタムROM情報はコムギドットネットに集めたほうが良いと思われるので、ベンチマークのページを作らせてもらった。


ベンチマークのページ

Android Custom Cookbook の ホーム > カスタムRom > ベンチマーク (http://acc.komugi.net/?%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0Rom%2F%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF)


感想

はてなスターはこっちにお願いします。

2010-02-07

Android Custom CookbookのカスタムROMを全制覇してみる

コムギドットネットのAndroid Custom Cookbook(http://acc.komugi.net/)にあるたくさんのカスタムROMに追いついていなかったので、一挙に試してみた。

追記: FastTest v2.2.9.1を測定。


ベンチマーク条件

ベンチマークにはBenchmark(http://jp.androlib.com/android.application.softweg-hw-performance-jiCn.aspx)を使う。

条件など

  • ハードはadp1を使用。
  • ワイプしてから、ファーム書き換え後、以下の設定を実施。
    • Screen Timeout: offまたは最長
    • compcache(あれば): on
    • USB接続(PC等と): なし
    • 充電: あり
    • Benchmarkのインストール
    • Benchmarkの設定: 繰り返し回数はそれぞれ5回
    • Wifi/3G: off
  • 上記設定後、リブートを行い、落ち着いた頃にBenchmarkを起動。1回実行した値(繰り返し5回の平均値)を採用。

機能差分

ROMWificompcache情報
Normal 1.6×http://developer.htc.com/adp.html#s3
CSDI v1http://forum.xda-developers.com/showthread.php?t=621934
CyanogenMod v4.2.14.1http://forum.xda-developers.com/showthread.php?t=567610
Dwang v1.17.1http://forum.xda-developers.com/showthread.php?t=567023
Eclair 2.1 v1.5×http://forum.xda-developers.com/showthread.php?t=598973
Etabless v1.1.7http://tinyurl.com/yd8mzro
FastTest v2.2.9.1http://bit.ly/cNBCVc
Hyper_J v1.5http://acc.komugi.net/?%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0Rom%2FHyperJ
Intension v1.2.1http://forum.xda-developers.com/showthread.php?t=619613
KiNgxKxlicK v1.4http://forum.xda-developers.com/showthread.php?t=622170
OpenEclair v1.1.1http://www.openeclair.com/
OpenEclair v1.1.3http://www.openeclair.com/
SuperD v1.2http://www.4shared.com/file/185686704/8323a5dd/SuperD12x.html
SuperD v1.8http://forum.xda-developers.com/showthread.php?p=5305325
SuperE 2.1 v1.0×http://forum.xda-developers.com/showthread.php?t=622613
SuperEclair v2.1×http://forum.xda-developers.com/showthread.php?t=613809
WG-Build Y-2.6http://forum.xda-developers.com/showthread.php?t=592466
xROM Eclair v1.1http://forum.xda-developers.com/showthread.php?t=610425

ベンチマーク結果

結果をグラフにしてみた。まずはベンチマーク結果の数値をそのまま。

左右の順番はNormalが左端で、その他はアルファベット順。

f:id:linuzau:20100207230027g:image

次にNormal 1.6を100に正規化した。

f:id:linuzau:20100207230028g:image


感想

疲れた。

2010-02-06

Hyper_J v1.5のベンチマークを測定してみる

AndroidカスタムROMのHyper_J 1.5が出ていたので入れてみた。ついでにベンチマークも測ってみる。

追記: OpenEclair 1.1.3を追加。

追記2: FastTest 2.2.8を追加。


ベンチマーク条件

ベンチマークにはBenchmark(http://jp.androlib.com/android.application.softweg-hw-performance-jiCn.aspx)を使う。

条件など

  • ハードはadp1を使用。
  • ワイプしてから、ファーム書き換え後、以下の設定を実施。
    • Screen Timeout: offまたは最長
    • compcache(あれば): on
    • USB接続(PC等と): なし
    • 充電: あり
    • Benchmarkのインストール
    • Benchmarkの設定: 繰り返し回数はそれぞれ5回
    • Wifi/3G: off
  • 上記設定後、リブートを行い、落ち着いた頃にBenchmarkを起動。1回実行した値(繰り返し5回の平均値)を採用。

機能差分

ROMWificompcache情報
CSDI v1http://forum.xda-developers.com/showthread.php?t=621934
CyanogenMod 4.2.14.1http://forum.xda-developers.com/showthread.php?t=567610
Dwang 1.17.1http://forum.xda-developers.com/showthread.php?t=567023
FastTest 2.2.5×http://www.androidspin.com/files/htcclay/FastTest2.2.5.zip
FastTest 2.2.6http://bit.ly/aazSk7
FastTest 2.2.8http://bit.ly/biwWya
Hyper_J 1.5http://acc.komugi.net/?%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0Rom%2FHyperJ
Intension 1.2.1http://forum.xda-developers.com/showthread.php?t=619613
OpenEclair 1.1.1http://www.openeclair.com/
OpenEclair 1.1.3http://www.openeclair.com/
SuperD 1.2http://www.4shared.com/file/185686704/8323a5dd/SuperD12x.html
SuperD 1.8http://forum.xda-developers.com/showthread.php?p=5305325
SuperE 1.0×http://forum.xda-developers.com/showthread.php?t=622613
SuperEclair 2.1×http://forum.xda-developers.com/showthread.php?t=613809
WG-Build Y-2.6http://forum.xda-developers.com/showthread.php?t=592466

CSDI v1はcompcacheモジュールがおかしかったので、差し替えてcompcacheを有効にした。


ベンチマーク結果

結果をグラフにしてみた。今回からCyanogenMod 4.2.14.1を100に正規化した。

せっかくなのでCPUの速度順に並べ替えた。

f:id:linuzau:20100206194055g:image


感想

ヒトバシラーの人たちはぜひJITを使い込んで安定化させて下さい。

2010-02-03

ベンチマーク結果を再整理してみる(OpenEclair 1.1.1, FastTest 2.2.6を追加)

Androidのいろんなファームのベンチマークが溜まってきて訳が分からなくなったのでいったん整理してみる。

追記: CyanogenMod 4.2.14.1, SuperD 1.8, FastTest 2.2.5

追記2: CPU性能がグラフから漏れていたので修正。

追記3: OpenEclair 1.1.1, FastTest 2.2.6を追加。

ベンチマーク条件

ベンチマークにはBenchmark(http://jp.androlib.com/android.application.softweg-hw-performance-jiCn.aspx)を使う。

条件など

  • ハードはadp1を使用。
  • ワイプしてから、ファーム書き換え後、以下の設定を実施。
    • Screen Timeout: offまたは最長
    • compcache(あれば): on
    • USB接続(PC等と): なし
    • 充電: あり
    • Benchmarkのインストール
    • Benchmarkの設定: 繰り返し回数はそれぞれ5回
    • Wifi/3G: off
  • 上記設定後、リブートを行い、落ち着いた頃にBenchmarkを起動。1回実行した値(繰り返し5回の平均値)を採用。

機能差分

ROMWificompcache情報
SuperD 1.2http://www.4shared.com/file/185686704/8323a5dd/SuperD12x.html
CSDI v1http://forum.xda-developers.com/showthread.php?t=621934
Dwang 1.17.1http://forum.xda-developers.com/showthread.php?t=567023
SuperE 1.0?http://forum.xda-developers.com/showthread.php?t=622613
WG-Build Y-2.6http://forum.xda-developers.com/showthread.php?t=592466
FastTest 1.6.6×http://forum.xda-developers.com/showthread.php?t=613809
Intension 1.2.1?http://forum.xda-developers.com/showthread.php?t=619613
SuperD 1.7×http://forum.xda-developers.com/showthread.php?t=613809
FastTest 2.2.5×http://www.androidspin.com/files/htcclay/FastTest2.2.5.zip
SuperD 1.6.6http://forum.xda-developers.com/showthread.php?t=613809
SuperEclair 2.1?http://forum.xda-developers.com/showthread.php?t=613809
CyanogenMod 4.2.14.1http://forum.xda-developers.com/showthread.php?t=567610
CyanogenMod 4.2.13http://forum.xda-developers.com/showthread.php?t=567610
SuperD 1.8http://forum.xda-developers.com/showthread.php?p=5305325
OpenEclair 1.1.1http://forum.xda-developers.com/showthread.php?t=624545
FastTest 2.2.6http://bit.ly/aazSk7

SuperD 1.6.6BETA、FastTest 1.6.6、CSDI v1はcompcacheモジュールがおかしかったので、差し替えてcompcacheを有効にした。


ベンチマーク結果

結果をグラフにしてみた。CyanogenMod 4.2.13を100に正規化した。

グラフィックの速度順に並べ替えた。

f:id:linuzau:20100203000239g:image


考察

今回試した3種類の体感速度は、CyanogenMod 4.2.14.1<SuperD 1.8<FastTest 2.2.5という感じ。FastTest 2.2.5の印象が良い。

SuperD 1.8は決して悪いとは思わないが、ベンチマークプログラムとの相性だろうか、数値は伸びない。ベンチマークプログラムが動いているところを見るとグラフィックが時々カクカクするような様子もあるので、Stop the worldのGCが走っているのかも知れない。compcacheを止めたり、precise GCにしたりすると変わるかも知れないが、今回はそこまでは行わなかった。

OpenEclair 1.1.1はJITが売り。


感想

ベンチマーク結果だけでなく、実際に使って体感速度も見てください。

2010-02-02

NexusOneのベンチマークをしてみる

NexusOneのベンチマークを行って見る。

追記: CPU性能がグラフから漏れていたので修正。JITの考察も修正。

対象は、

  • NexusOneノーマル
  • CyanogenMod 5.0B3
  • CyanogenMod 5.0B3+compcache
  • CyanogenMod 5.0B3+JIT

の4種類。


ベンチマーク条件

ベンチマークにはBenchmark(http://jp.androlib.com/android.application.softweg-hw-performance-jiCn.aspx)を使う。

条件など

  • ハードはNexusOneを使用。
  • ワイプしてから、ファーム書き換え後、以下の設定を実施。
    • Screen Timeout: offまたは最長
    • USB接続(PC等と): なし
    • 充電: あり
    • Benchmarkのインストール
    • Benchmarkの設定: 繰り返し回数はそれぞれ5回
    • Wifi/3G: off
    • ライブ壁紙: off
  • 上記設定後、リブートを行い、落ち着いた頃にBenchmarkを起動。1回実行した値(繰り返し5回の平均値)を採用。

ベンチマーク結果

まずはadp1との比較。CyanogenMod 4.2.13を100に正規化した。

グラフィックの値が悪いのはベンチマークアプリの特性(画面サイズ等に影響を受ける)。

f:id:linuzau:20100202005315g:image

次にNexusOneでのROMの違いを比較。ノーマルROMを100に正規化した。

f:id:linuzau:20100202004935g:image


考察

ファイルI/Oが速いのはデッドラインスケジューラのせいか、何かキャッシュが効いているか。

compcacheはお勧めしないと言われている通り遅くなる。

JITはすごく効いている。

JITが安定しているならCyanogenModを使わない手はない。



感想

ライブ壁紙は相当CPUを食ってるので、バッテリの保ちを気にする場合は止めた方が良い。

2010-02-01

ベンチマーク結果を再整理してみる(CyanogenMod 4.2.14.1, SuperD 1.8, FastTest 2.2.5を追加)

Androidのいろんなファームのベンチマークが溜まってきて訳が分からなくなったのでいったん整理してみる。

追記: CyanogenMod 4.2.14.1, SuperD 1.8, FastTest 2.2.5

追記2: NexusOneノーマル, NexusOne CyanogenMod 5.0B3, NexusOne CyanogenMod 5.0B3+JITを追加。

追記3: CPU性能がグラフから漏れていたので修正。


ベンチマーク条件

ベンチマークにはBenchmark(http://jp.androlib.com/android.application.softweg-hw-performance-jiCn.aspx)を使う。

条件など

  • ハードはadp1を使用。
  • ワイプしてから、ファーム書き換え後、以下の設定を実施。
    • Screen Timeout: offまたは最長
    • compcache(あれば): on
    • USB接続(PC等と): なし
    • 充電: あり
    • Benchmarkのインストール
    • Benchmarkの設定: 繰り返し回数はそれぞれ5回
    • Wifi/3G: off
  • 上記設定後、リブートを行い、落ち着いた頃にBenchmarkを起動。1回実行した値(繰り返し5回の平均値)を採用。

機能差分

ROMWificompcache情報
SuperD v1.2http://www.4shared.com/file/185686704/8323a5dd/SuperD12x.html
CSDI v1http://forum.xda-developers.com/showthread.php?t=621934
Dwang v1.17.1http://forum.xda-developers.com/showthread.php?t=567023
SuperE v1.0?http://forum.xda-developers.com/showthread.php?t=622613
WG-Build Y-2.6http://forum.xda-developers.com/showthread.php?t=592466
FastTest 1.6.6×http://forum.xda-developers.com/showthread.php?t=613809
Intension v1.2.1?http://forum.xda-developers.com/showthread.php?t=619613
SuperD v1.7×http://forum.xda-developers.com/showthread.php?t=613809
FastTest 2.2.5×http://www.androidspin.com/files/htcclay/FastTest2.2.5.zip
SuperD v1.6.6http://forum.xda-developers.com/showthread.php?t=613809
SuperEclair 2.1?http://forum.xda-developers.com/showthread.php?t=613809
CyanogenMod 4.2.14.1http://forum.xda-developers.com/showthread.php?t=567610
CyanogenMod 4.2.13http://forum.xda-developers.com/showthread.php?t=567610
SuperD v1.8http://forum.xda-developers.com/showthread.php?p=5305325

SuperD 1.6.6BETA、SuperD FastTest1.6.6、CSDI v1はcompcacheモジュールがおかしかったので、差し替えてcompcacheを有効にした。


ベンチマーク結果

結果をグラフにしてみた。CyanogenMod 4.2.13を100に正規化した。

グラフィックの速度順に並べ替えた。

f:id:linuzau:20100202005803g:image


考察

今回試した3種類の体感速度は、CyanogenMod 4.2.14.1<SuperD 1.8<FastTest 2.2.5という感じ。FastTest 2.2.5の印象が良い。

SuperD 1.8は決して悪いとは思わないが、ベンチマークプログラムとの相性だろうか、数値は伸びない。ベンチマークプログラムが動いているところを見るとグラフィックが時々カクカクするような様子もあるので、Stop the worldのGCが走っているのかも知れない。compcacheを止めたり、precise GCにしたりすると変わるかも知れないが、今回はそこまでは行わなかった。


感想

ベンチマーク結果だけでなく、実際に使って体感速度も見てください。

2010-01-31

ベンチマーク結果を再整理してみる

Androidのいろんなファームのベンチマークが溜まってきて訳が分からなくなったのでいったん整理してみる。


ベンチマーク条件

ベンチマークにはBenchmark(http://jp.androlib.com/android.application.softweg-hw-performance-jiCn.aspx)を使う。

条件など

  • ハードはadp1を使用。
  • ワイプしてから、ファーム書き換え後、以下の設定を実施。
    • Screen Timeout: offまたは最長
    • compcache(あれば): on
    • USB接続(PC等と): なし
    • 充電: あり
    • Benchmarkのインストール
    • Benchmarkの設定: 繰り返し回数はそれぞれ5回
    • Wifi/3G: off
  • 上記設定後、リブートを行い、落ち着いた頃にBenchmarkを起動。1回実行した値(繰り返し5回の平均値)を採用。

機能差分

ROMWificompcache情報
SuperD v1.2http://www.4shared.com/file/185686704/8323a5dd/SuperD12x.html
CSDI v1http://forum.xda-developers.com/showthread.php?t=621934
Dwang v1.17.1http://forum.xda-developers.com/showthread.php?t=567023
SuperE v1.0?http://forum.xda-developers.com/showthread.php?t=622613
WG-Build Y-2.6×http://forum.xda-developers.com/showthread.php?t=592466
SuperD FastTest 1.6.6×http://forum.xda-developers.com/showthread.php?t=613809
Intension v1.2.1?http://forum.xda-developers.com/showthread.php?t=619613
SuperD v1.7×http://forum.xda-developers.com/showthread.php?t=613809
SuperD v1.6.6http://forum.xda-developers.com/showthread.php?t=613809
SuperEclair 2.1?http://forum.xda-developers.com/showthread.php?t=613809
CyanogenModhttp://forum.xda-developers.com/showthread.php?t=567610

SuperD 1.6.6BETA、SuperD FastTest1.6.6、CSDI v1はcompcacheモジュールがおかしかったので、差し替えてcompcacheを有効にした。


ベンチマーク結果

結果をグラフにしてみた。CyanogenModを100に正規化した。

グラフィックの速度順に並べ替えた。

f:id:linuzau:20100131002935j:image

2010-01-24

CSDI v1のcompcacheを有効にしてみる

エスパニョールファームのCSDIがよさげなので使い込んでみることにした。

せっかくなのでcompcacheが有効になるようにしてみた。

CSDIは、http://forum.xda-developers.com/showthread.php?t=621934からダウンロードできる。

インストール後、まずロケールをenに切り替えることをお勧めする。


compcacheの有効化

下記手順で常に有効になる。Spare Partsとかで有効/無効は切換えられないので勘弁。

元に戻したい人は/etc/super.d/04initsupのバックアップを取っておいて下さい。

ここにあるファイル3つを使う。

設定方法

  • adb remount
  • adb push 04initsup /etc/super.d/
  • adb shell chmod 755 /etc/super.d/04initsup
  • adb push xvmalloc.ko /lib/modules/
  • adb shell chmod 644 /lib/modules/xvmalloc.ko
  • adb push ramzswap.ko /lib/modules/
  • adb shell chmod 644 /lib/modules/ramzswap.ko
  • adb reboot

感想

しばらく頑張って付き合ってみる。

2010-01-23

いろいろとベンチマークを取ってみる (CyanogenMod, Dwang, SuperD, SuperE, CSDI, Intension, WG-Build, SuperEclair)

追記: 2010/01/31の日記のほうで再整理しました。

Androidのいろんなファームが出まわっていて非常に面白い。でもいっぱいあってどれが良いのかさっぱり状態なので一挙にベンチマークを取ってみることにした。

対象は、CyanogenMod、Dwang、SuperD、SuperE。一応条件を書いておいたので、他のファームでも条件を揃えて測ってもらえれば比較は可能と思う。

追記: CSDIも加えてみた。

追記2: Intensionも加えてみた。

追記3: CSDIのcompcacheを有効にできたので測り直した。

追記4: SuperEのv1.0が出たので測り直した。

追記5: WG-Build Y26を加えた。

追記6: SuperEclair 2.1を加えた。

追記7: SuperD FastTest 1.7を加えた。

追記8: SuperD 1.7を加えた。


Benchmarkでのベンチマーク

ベンチマークにはBenchmark(http://jp.androlib.com/android.application.softweg-hw-performance-jiCn.aspx)を使うことにした。

条件など

  • ハードはadp1を使用。
  • ワイプしてから、ファーム書き換え後、以下の設定を実施。
    • Screen Timeout: offまたは最長
    • compcache(あれば): on
    • USB接続(PC等と): なし
    • 充電: あり
    • Benchmarkのインストール
    • Benchmarkの設定: 繰り返し回数はそれぞれ5回
    • Wifi/3G: off
  • 上記設定後、リブートを行い、落ち着いた頃にBenchmarkを起動。1回実行した値を採用。

なお、SuperD 1.6.6BETA、SuperD FastTest1.6.6、CSDI v1はcompcacheモジュールがおかしかったので、差し替えてcompcacheを有効にした。

結果をグラフにしてみた。CyanogenModを100に正規化した。

グラフィックの速度順に並べ替えた。

f:id:linuzau:20100130204221j:image


考察

SuperD FastTest1.6.6はWifiが動かなかった。

グラフィックスコアの良いSuperD v1.2、CSDI v1、Dwang v1.17.1が体感速度が速い。

CyanogenMod v4.2.13が意外と速い。

EclairベースのSuperE、Intension、SuperEclairはこれからに期待。

compcacheの有効になったCSDI v1は常用できそう。


感想

こんな情報もすぐに古くなっちゃうんだろうな。

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で埋める。長くなる場合は諦める。

バイナリ中の文字列の書き換えはバイナリエディタとかsedとかでできる。今回はemacsで開いて修正した。


感想

まあ、次バージョンが出る(もう出てる?)までのつなぎということで。

2009-12-29

cyanogenmod-v4.2.11.1とdwang-v1.17.1のベンチマークを取ってみる

ADP1でいろいろファームを入れ替えていたら、cyanogenmod-v4.2.11.1とdwang-v1.17.1がデータワイプ無しで入れ替えられるのに気付いた。

現状、実用ファームの中ではこれら2つが双璧で、おそらくユーザ数もNo.1, 2だと思うので、どっちも頑張って欲しいものだ。ユーザとしてはどちらを選ぶか悩ましいところだ。とりあえずベンチマークで比較することにした。


Benchmarkでのベンチマーク

ベンチマークはBenchmark(http://jp.androlib.com/android.application.softweg-hw-performance-jiCn.aspx)を使うことにした。

条件など

  • ファーム書き換え後、起動して落ち着いたころの1回目の測定値を使う。
  • 繰り返し回数はそれぞれ5回。
  • 背景でデータ同期等が動いてるかも知れないが気にしない。

結果をグラフにしてみた。数値が大きいほうが良いものと小さいほうが良いものが混在しているので、大きいほうが良いように統一したうえ、cyanogenmodを100に正規化した。

f:id:linuzau:20091229104416j:image


考察

グラフィックスコアはdwangが良い。

CPUスコアはcyanogenmodが少し良い。

メモリスコアは一長一短という感じ。

SDカードアクセスはdwangが速い。

恐らく、性能を追求してチューニングされているdwangと、Eclair DalvikでCPUスコアが高いcyanogenmodという違いが出たのだと思われる。

使い方にもよるが、この手の機器ではグラフィック周りが速いほうがレスポンスが良く感じられる。

現時点では体感速度を求めるならdwangがわずかに有利という感じ。


感想

どっちも頑張れー。

2009-11-29

Kindleのファーム2.3が出たので入れてみる

Kindleのファームウェアバージョン2.3が出たので入れることにした。PDFが変換無しで直接読めるらしい。

既に、

  • Jail Breakハック
  • anti-brickハック
  • Unicodeハック
  • Savory

を入れてあるので、変にならないように注意する。


Savoryのアンインストール

順番は逆でも良いか知れないが、忘れないように最初にやっておく。

アンインストールにはupdate_RemoveSavory-0.07-k2i.binを使う。

  • (KindleをPCにマウントして)Kindleのsystemディレクトリのsavory-image-007.ext3を適当な名前にリネームする。savory-image-007.ext3.bakのようにサフィックスを変えておくのが良いと思う。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Restart
  • (KindleをPCにマウントして)Kindleのルートディレクトリにupdate_RemoveSavory-0.07-k2i.binを置く。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Update Your Kindle
  • OKを選ぶと(アン)インストールが始まり、終わると勝手に再起動される。

Unicodeハックのアンインストール

次にUnicodeハックをアンインストールする。

  • ここhttp://blogkindle.com/unicode-fonts-hack/からupdate_ufh_uninstall-k2i.binをもらってくる。
  • (KindleをPCにマウントして)Kindleのルートディレクトリにupdate_ufh_uninstall-k2i.binを置く。
  • インストール時の*.orgファイルがルートディレクトリにあることを確認する。無かったらバックアップからコピーする。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Update Your Kindle
  • OKを選ぶとインストールが始まり、終わると勝手に再起動される。

ファームウェアバージョン2.3のインストール

Whispernetをオンにして放っておくと勝手にインストールされるはず。待ちきれないときは以下のようにする。

  • ここhttp://www.amazon.com/gp/help/customer/display.html?nodeId=200324680#manualからファームウェアをもらってくる。国際版(Global Wireless)の場合はUpdate_kindle2_gw_2.3.bin。
  • (KindleをPCにマウントして)KindleのルートディレクトリにUpdate_kindle2_gw_2.3.binを置く。
  • ルートディレクトリにWhispernetで勝手にダウンロード中の他の*.binがあるようなら念のため削除しておく。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Update Your Kindle
  • OKを選ぶとインストールが始まり、終わると勝手に再起動される。

感想

とりあえずPDFは読めるようになった。

Unicodeハックなしでも、日本語フォントが埋め込み(画像ではなくフォント情報の埋め込み)であれば表示できる。

Unicodeハックを入れれば、日本語フォントが埋め込まれていなくても表示できるようになる。

Unicodeハックは本家http://blogkindle.com/unicode-fonts-hack/でもフォントの種別の違うものが配布されている。

こちらhttp://www.ytsuboi.org/wp/archives/1152とかこちらhttp://www.mobileread.com/forums/showthread.php?p=664073#post664073などでも、フォントを入れ替えたUnicodeハックが配布されている。

自分は、日本語が読めるようになると英語の本を読まなくなってしまうため、Unicodeハックは現在封印中。

2009-11-03

Amazon Kindle InternationalでPDFファイルを扱えるようにしてみる。

日本語を表示できるようになったAmazon Kindle Internationalだが、PDFファイルはPC側でファイル変換を行ってからKindleに入れてやる必要がある。

これがなかなか面倒くさい。Kindle DXはPDFファイルが読めることを考えると、なお悔しい。何とかすべし。


Savory

SavoryはKindle 2やKindle International上でePUBやPDFのファイルをKindleが読めるMobipocket形式に変換してくれるというツール。変換をKindle自身でやってしまうというわけだ。

説明等はここhttp://blog.fsck.com/2009/04/savory.htmlにあるが、ちょっと情報が古いため、Kindle Internationalの場合は、こっちhttp://code.google.com/p/savory/から最新版をもらってきてインストールする。


Savoryのインストール

Jail breakが済んでいるのが前提。日本語を読みたいのならunicodeパッチも当たっていること。

それではSavoryをインストールする。

  • ここhttp://code.google.com/p/savory/からupdate_Savory-0.07-k2i.binとsavory-image-007.zipをもらってくる。savory-image-007.zipは解凍してsavory-image-007.ext3を取り出しておく。
  • (KindleをPCにマウントして)Kindleのsystemディレクトリにsavory-image-007.ext3を置く。ルートディレクトリにupdate_Savory-0.07-k2i.binを置く。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Update Your Kindle
  • OKを選ぶとインストールが始まり、終わると勝手に再起動される。

Savoryのアンインストール

アンインストールのやり方も一応書いておく。アンインストールの際はupdate_RemoveSavory-0.07-k2i.binを使う。

  • (KindleをPCにマウントして)Kindleのsystemディレクトリのsavory-image-007.ext3を適当な名前にリネームする。savory-image-007.ext3.bakのようにサフィックスを変えておくのが良いと思う。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Restart
  • (KindleをPCにマウントして)Kindleのルートディレクトリにupdate_RemoveSavory-0.07-k2i.binを置く。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Update Your Kindle
  • OKを選ぶと(アン)インストールが始まり、終わると勝手に再起動される。

PDFファイルの変換

KindleをPCに接続し、documentsディレクトリにPDFファイルをコピーする。

後は、KindleをPCから外しておくと勝手に変換が始まる。時間がかかるので気長に待つべし。寝る前に仕込んでおくのが良いと思う。


変換中の様子

HOMEに以下のように表示される。Converting xxx.pdfというのが変換中のファイル。

f:id:linuzau:20091103200105g:image


感想

複数のファイルをコピーした場合、変換の始まるタイミングがいまいち分からない。変換もいつ終わるのか分からない。しばらくは読めたらラッキーぐらいの気持ちで使い続けることにしてみる。

2009-10-31

Amazon Kindle Internationalで日本語を表示してみる。

大人の事情でAndroid関係の書き込みができない状態なのでしばらくおとなしくしていた。

そんな時、Amazon KindleのInternational版が出るとのことだったので、とりあえずAmazon.comで予約してみた。

でも、やっぱり買うのをやめようかと思い、予約をキャンセルしようと思ったのだが、そういうときに限ってやたらと仕事が忙しくてAmazon.comにアクセスできずにいたら、発送したよとのメールが来てしまった。

腹をくくって使い倒すことにした。まずは日本語表示から。いろいろ紆余曲折があったが、結局うまくいった方法だけ書くことにする。


Jail Break

まずはいろんなパッチをアップデータとして適用できるようにするためにJail breakをする。

  • ここhttp://blogkindle.com/unicode-fonts-hack/からupdate_freekindle-k2i.binをもらってくる。
  • (KindleをPCにマウントして)Kindleのルートディレクトリにupdate_freekindle-k2i.binを置く。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Update Your Kindle
  • OKを選ぶとインストールが始まり、終わると勝手に再起動される。

Unicode Hack

次にUnicodeハックを適用する。

  • ここhttp://blogkindle.com/unicode-fonts-hack/からupdate_ufh_droid_install-k2i.binをもらってくる。
  • (KindleをPCにマウントして)Kindleのルートディレクトリにupdate_ufh_droid_install-k2i.binを置く。
  • (KindleをPCからアンマウントして)HOME→MENU→Settings→MENU→Update Your Kindle
  • OKを選ぶとインストールが始まり、終わると勝手に再起動される。
  • (KindleをPCにマウントして)Kindleのルートディレクトリにある*.orgファイルをPCにバックアップしておく。

これで終わり。


日本語表示

KindleのdocumentsディレクトリにUTF8の日本テキストファイル(拡張子.txt)を入れるとこんな感じで表示される。

f:id:linuzau:20091031222623g:image


感想

Kindle InternationalはDoCoMo回線にローミングインしており、日本でも本のサンプルのダウンロードやWebの閲覧(制限有り)が無料で行える。

予約キャンセルをしそこなって買っちゃったのだが、日本語も表示できるようになった現在、もしかして当たりだったかもと思い始めている。

2009-08-02

またcupcakeがビルドできなくなったので調べてみる。

7/19にcupcakeのビルドエラーについての対処法を書いたが、その後、またいろいろ変わっているようで追記をしてみる。

解決策

これまで.repo/local_manifest.xmlに書かなければならなかった記述が、標準のmanifest.xmlに追加されたらしい。android-platformグループのやりとりを見ても、結局どうしたらよいかはっきり書いていない。

結局いろいろ試して、

.repo/local_manufest.xmlを削除する。

という結論に行き着いた。

他の方々の情報を見てもこの対処で正しいらしいが、こういう話はちゃんと公式にアナウンスして欲しいものだ。

2009-07-19

cupcakeがビルドできなくなったので調べてみる。

いろいろいじったりする必要があったので、最新のソースでcupcakeをビルドしようとしたら、エラーが出るようになってしまったので調べてみた。


エラー

自分の過去のメモ

http://d.hatena.ne.jp/linuzau/20090223/1235398140

あたりを見ながら進める。

ところが、

Initializing project platform/vendor/htc/dream ...
fatal: The remote end hung up unexpectedly
error: Cannot fetch platform/vendor/htc/dream

のようなエラーが出てrepo syncが止まってしまう。


解決策

android-platformグループのやりとりを見てると、カーネルソースの整理中らしく、このようなエラーが出てしまうらしい。

回避策としては、.repo/local_manufest.xmlを、


<manifest>
 <remove-project name="kernel/common"/>
 <project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.27"/>
 <project path="vendor/htc/dream" name="platform/vendor/htc/dream" revision="master"/>
 <project path="hardware/msm7k" name="platform/hardware/msm7k" revision="master"/>
</manifest>

となっているのを、remove-projectの行を消すのと、platform/vendor/htc/dreamをplatform/vendor/htc/dream-openにすると良いらしい。すなわち、


<manifest>
 <project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.27"/>
 <project path="vendor/htc/dream" name="platform/vendor/htc/dream-open" revision="master"/>
 <project path="hardware/msm7k" name="platform/hardware/msm7k" revision="master"/>
</manifest>

のように書き直す。うまくビルドできているようなのでこれで良いことにする。

2009-05-24

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)でwifi-tetheringを試してみる

愛用キャリアであるドコモよりHT-03A(HTC Magic)が出るとのこと。これまで夢の中でしか使えなかったのが、ついに現実の世界で使えるようになるということで、喜んでドコモショップに予約しに行ったが、断られた。発売日が決まるまで予約は受け付けないとのこと。

悔しいので夢の中(HTC Dream)で遊ぶことにした。HT-03Aでは恐らく封印されているであろうWifi Tetherを試してみることにした。

Wifi Tetherと言うのは、GSMやUMTS(3G)回線上のIP接続をWifi接続した機器にシェアすることである。下記よりWifi Tetherパッケージと、対応カーネルをもらってきてインストールすると使えるようになる。

http://code.google.com/p/android-wifi-tether/


インストール

まずは素直に使ってみる。下記の手順はcpucake専用なので注意。

ここhttp://code.google.com/p/android-wifi-tether/downloads/listからsigned_andTether_0_97_1.apkをもらってきて普通にインストールする。

$ adb install signed_andTether_0_97_1.apk

それから、adp-1_5-kernel-update.zipももらってきて、SDカードに書き込み、

$ adb push adp-1_5-kernel-update.zip /sdcard/update.zip
$ adb shell sync

リカバリモードでインストールする。

  • 赤(終話)ボタンを長押しして電源オフ。
  • ホームボタンを押しながら電源オンでリカバリモードに突入。
  • ALT+Lでヘルプ画面が出る。
  • ALT+Sでファームの書き込み。
  • 終わったらホーム+バックで再起動。

使い方

Wifi Tether for Root Usersを起動。メニューからWEPキー等を設定しておく。準備が終わったらトップ画面のアイコンを押してTether開始。

接続する端末側は、Wifiをadhocモードにする。

後はadhocモードで接続すれば、つながって、3G上のIP接続を利用できる。


改造

せっかくなのでクロックアップをしてみた。

まずはオリジナルwifi-tether対応のカーネルからconfigを取り出す。

$ adb pull /proc/config.gz .
$ gunzip config.gz

できたconfigをkernelディレクトリに.configとしてコピーしてから、いつものパッチを当てる。

--- arch/arm/configs/msm_defconfig      2009-03-21 23:01:52.000000000 +0900
+++ .config     2009-05-01 15:29:15.000000000 +0900
@@ -35,8 +35,8 @@
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
+CONFIG_LOCALVERSION="-00392-g8312baf"
+# CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_SWAP=y
 # CONFIG_SYSVIPC is not set
 # CONFIG_POSIX_MQUEUE is not set
@@ -221,8 +221,8 @@
 CONFIG_MSM_CPU_FREQ=y
 CONFIG_MSM_CPU_FREQ_ONDEMAND=y
 # CONFIG_MSM_CPU_FREQ_SCREEN is not set
-CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=384000
-CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=245760
+CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=528000
+CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=128000
 CONFIG_MSM_HW3D=y
 CONFIG_MSM_ADSP=y
 CONFIG_WIFI_CONTROL_FUNC=y

出来上がったカーネルを下記に置いといた。

http://tetsu.homelinux.org/android/index.html

http://tetsu.homelinux.org/android/update-1.5-v5.zip


カーネルイメージの書き込み

adp1とUSBでつながっている状態で、

  • カーネルイメージをSDカードにコピー
$ adb push update-v5.zip /sdcard/update.zip
$ adb shell sync

として、SDカードにカーネルイメージをコピーする。

  • 赤(終話)ボタンを長押しして電源オフ。
  • ホームボタンを押しながら電源オンでリカバリモードに突入。
  • ALT+Lでヘルプ画面が出る。
  • ALT+Sでファームの書き込み。
  • 終わったらホーム+バックで再起動。

2009-05-01

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)の公式cupcake用クロックアップカーネルの下限クロックを下げてみる

cupcake(1.5)用クロックアップカーネルが安定しているようなので、もう少しいじってみた。

下限クロックが246MHzになっているのを、どこまで下げられるかやってみた。


下限クロック

いろいろ変えて試してみた。

クロック [MHz]正確な値 [kHz]起動結果
246245760OK
176176000OK
128128000OK
123122880起動せず

128MHzが限界らしい。


修正点

今回もカーネルのコンフィグ修正のみ。

arch/arm/configs/msm_defconfigをkernelディレクトリに.configとしてコピーしてから、下記のような修正をする。

--- arch/arm/configs/msm_defconfig      2009-03-21 23:01:52.000000000 +0900
+++ .config     2009-05-01 15:29:15.000000000 +0900
@@ -35,8 +35,8 @@
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
+CONFIG_LOCALVERSION="-00392-g8312baf"
+# CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_SWAP=y
 # CONFIG_SYSVIPC is not set
 # CONFIG_POSIX_MQUEUE is not set
@@ -221,8 +221,8 @@
 CONFIG_MSM_CPU_FREQ=y
 CONFIG_MSM_CPU_FREQ_ONDEMAND=y
 # CONFIG_MSM_CPU_FREQ_SCREEN is not set
-CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=384000
-CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=245760
+CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=528000
+CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=128000
 CONFIG_MSM_HW3D=y
 CONFIG_MSM_ADSP=y
 CONFIG_WIFI_CONTROL_FUNC=y

出来上がったカーネルを下記に置いといた。

http://tetsu.homelinux.org/android/index.html

http://tetsu.homelinux.org/android/update-v4.zip


カーネルイメージの書き込み

adp1とUSBでつながっている状態で、

  • カーネルイメージをSDカードにコピー
$ adb push update-v4.zip /sdcard/update.zip
$ adb shell sync

として、SDカードにカーネルイメージをコピーする。

  • 赤(終話)ボタンを長押しして電源オフ。
  • ホームボタンを押しながら電源オンでリカバリモードに突入。
  • ALT+Lでヘルプ画面が出る。
  • ALT+Sでファームの書き込み。
  • 終わったらホーム+バックで再起動。

2009-04-30

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)の公式cupcake用クロックアップカーネルを作ってみる

adp1用のcupcake(1.5)がちゃんと使えるようなのでクロックアップをしてみた。


修正点

ソースの修正は不要。カーネルのコンフィグだけでクロックが変更できる。だいぶ進化している。

arch/arm/configs/msm_defconfigをkernelディレクトリに.configとしてコピーしてから、下記のような修正をするだけ。

--- arch/arm/configs/msm_defconfig	2009-03-21 23:01:52.000000000 +0900
+++ .config	2009-04-30 01:02:47.000000000 +0900
@@ -35,8 +35,8 @@
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
+CONFIG_LOCALVERSION="-00392-g8312baf"
+# CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_SWAP=y
 # CONFIG_SYSVIPC is not set
 # CONFIG_POSIX_MQUEUE is not set
@@ -221,7 +221,7 @@
 CONFIG_MSM_CPU_FREQ=y
 CONFIG_MSM_CPU_FREQ_ONDEMAND=y
 # CONFIG_MSM_CPU_FREQ_SCREEN is not set
-CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=384000
+CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=528000
 CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=245760
 CONFIG_MSM_HW3D=y
 CONFIG_MSM_ADSP=y

出来上がったカーネルを下記に置いといた。

http://tetsu.homelinux.org/android/index.html

http://tetsu.homelinux.org/android/update-v3.zip


カーネルイメージの書き込み

adp1とUSBでつながっている状態で、

  • カーネルイメージをSDカードにコピー
$ adb push update-v3.zip /sdcard/update.zip
$ adb shell sync

として、SDカードにカーネルイメージをコピーする。

  • 赤(終話)ボタンを長押しして電源オフ。
  • ホームボタンを押しながら電源オンでリカバリモードに突入。
  • ALT+Lでヘルプ画面が出る。
  • ALT+Sでファームの書き込み。
  • 終わったらホーム+バックで再起動。

2009-04-29

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)の公式cupcakeをインストールしてみる

HTCよりadp1用のcupcake(1.5)が配布されていたのでインストールしてみた。

(手順が間違ってたので修正)

http://www.htc.com/www/support/android/adp.html


ファイル取得

http://www.htc.com/www/support/android/adp.htmlからAndroid 1.5用のイメージファイルを2つもらってくる。

  • ラジオファーム: ota-radio-2_22_19_26I.zip
  • リカバリイメージ: signed-dream_devphone-ota-147201.zip または システムイメージ: signed-dream_devphone-img-147201.zip

以下の手順で、

  • ラジオファーム+リカバリイメージ または ラジオファーム+システムイメージ

を書き込む。


ラジオファームの書き込み

adp1とPC/MacがUSBでつながっている状態で、

  • ラジオファームをSDカードにコピー
$ adb push ota-radio-2_22_19_26I.zip /sdcard/update.zip
$ adb shell sync

として、SDカードにラジオファームをコピーする。かわりにmicroSDカードリーダ等を使っても良い。

  • 赤(終話)ボタンを長押しして電源オフ。
  • ホームボタンを押しながら電源オンでリカバリモードに突入。
  • ALT+Lでヘルプ画面が出る。
  • ALT+Sでファームの書き込み。
  • 終わったらホーム+バックで再起動。
  • 再起動後にファームウェアの書き込みが実行される。

リカバリイメージの書き込み

手順はラジオファームと同様。adp1とPC/MacがUSBでつながっている状態で、

  • リカバリイメージをSDカードにコピー
$ adb push signed-dream_devphone-ota-147201.zip /sdcard/update.zip
$ adb shell sync

として、SDカードにリカバリイメージをコピーする。システムイメージと名前が似ているので注意。

  • 赤(終話)ボタンを長押しして電源オフ。
  • ホームボタンを押しながら電源オンでリカバリモードに突入。
  • ALT+Lでヘルプ画面が出る。
  • ALT+Sでファームの書き込み。
  • 終わったらホーム+バックで再起動。
  • 再起動後にファームウェアの書き込みが実行される。

システムイメージの書き込み

adp1とPC/MacがUSBでつながっている状態で、

  • システムイメージの書き込みと再起動
$ fastboot update signed-dream_devphone-img-147201.zip

これですっかりcupcakeになった。何も問題がないのでしばらく使い続けることにする。

2009-02-23

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)のcupcakeに再チャレンジしてみる

splhack氏(中の人)がcupcake(1.5)がまともに動くようだと言っているので試してみた。

http://blogger.splhack.org/2009/02/cupcake-on-android-dev-phone-1.html


ビルド

http://blog.makezine.com/archive/2009/01/taking_android_cupcake_for_a_spin.html

のあたりを見ながら進める。

Tweak the Android source code some more

のあたりがめんどくさいけど、それ以外はいつも通り。

$ mkdir ~/mydroid
$ cd ~/mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b master

.repo/local_manifest.xmlを以下のように作成。

<?xml version="1.0" encoding="UTF-8" ?> 
<manifest>
  <remove-project name="kernel/common" /> 
  <project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.27" /> 
  <project path="vendor/htc/dream" name="platform/vendor/htc/dream" revision="master" /> 
  <project path="hardware/msm7k" name="platform/hardware/msm7k" revision="master" /> 
</manifest>
$ repo sync
$ cp build/buildspec.mk.default build/buildspec.mk

buildspec.mkをこんな風にエディット。

--- build/buildspec.mk.default	2009-02-22 20:09:08.000000000 +0900
+++ buildspec.mk	2009-02-22 20:13:24.000000000 +0900
@@ -53,7 +53,7 @@
 # Choose a product to build for.  Look in the products directory for ones
 # that work.
 ifndef TARGET_PRODUCT
-#TARGET_PRODUCT:=generic
+TARGET_PRODUCT:=htc_dream
 endif
 
 # Choose additional targets to always install, even when building
$ cd vendor/htc/dream
$ ./extract-files.sh
$ cd ~/mydroid
$ make

out/target/product/dream/*.imgができあがる。fastbootで書き込むべし。


使った感想

そこそこ安定しているようだ。

操作感は1.0/1.1と少し異なっている。メニュー選択時の横スクロールや、バックボタン押下時の挙動が違う。

IMEみたいな画面が最初から出てくる。対応したIMEがあれば日本語入力もできるのだろう。

Vending.apk(Market)が動かない。変なエラーが出て止まってしまった。

Marketが動くならもう少しがんばって環境構築しても良かったのだが、実用マシンになっているので元に戻してしまった。

誰かMarketの動かし方を教えて下さい。

2009-02-21

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)でV8 Benchmarkを動かしてみる

V8 BenchmarkというのでJavaScriptベンチマークができるそうだ。

http://v8.googlecode.com/svn/data/benchmarks/v3/run.html

やってみた。


JFv1.43

まずはノーマル(?)のJFv1.43の状態。

f:id:linuzau:20090221133837p:image


JFv1.43 + update-v2.zip

次にクロックアップカーネルに入れ替えた場合。

f:id:linuzau:20090221133648p:image


比較

表にしてみた。

ファームJFv1.43JFv1.43 + update-v2.zip差分
CPU clock384MHz528MHz+37.5%
Richards1.131.43+26.5%
DeltaBlue1.601.84+15.0%
Cryptoerrorerror-
RayTraceerrorerror-
EarleyBoyererrorerror-
RegExp9.5811.60+21.1%

15%〜26.5%ぐらい速くなっている。クロックの差(37.5%)ほどは効果が出ていない。

cupcakeだともっと速くなるらしいが、データをwipeするのが嫌なので試せてない。

2009-02-18

携帯電話のない一日を過ごしてみる

今朝は家にHTC Dreamを忘れて来てしまった。途中で気がついたが、戻るのも面倒なのでそのまま会社に行った。

そういうわけで、携帯電話無しで一日を過ごすことにした。


使えなくて不便だったアプリ

  • Dialer/SpellDial
    • 電話かけられない、受けられない
  • Gmail
    • 急ぎのメールに対応できない
    • トラックバックが来てたのに気付かない
  • Bettik
    • 新ネタを仕入れられない
  • Contacts
    • 他の人の携帯電話番号が分からない
  • Flower Pot
    • 水をやれなかった
  • Backgammon
    • 遊べなかった
  • Sudoku
    • 遊べなかった
  • その他
    • 時間が分からない

代わりの手段

  • Dialer/SpellDial
    • 電話番号をメモして持ち歩く
    • 着信はあきらめる
    • 打合わせの場所や時刻等、事前によく確認する
  • 時計、Sudoku
    • カバンに入れてあったTreo 650で代用
  • Gmail/Bettik

Treo 650

Treo 650はCalendarやTasksが使いやすくて未だに使い続けている。この2アプリは他のマシンでは自分的には代替がきかない。

今日はTreo 650をじっくりと使うことになった。Treo 650は、

  • UIはPalmOSのほうがこなれていて軽快
  • バッテリーの減りも気にならない
  • キーボードもいちいち開かずに使えて便利
  • キーも打ちやすい

といいことばかり。

欠点とは、

  • 電話ができない
  • 単独では通信できない
  • 画面が少し狭い
  • アプリが古くさい

という感じか。


気付いたこと

最初は不安な気分になる。軽い依存症なのかも知れない。あるいは持っていることを前提とした行動パターンになっているのかも知れない。

持っていない分、気を使うこともある。出先で電話で確認するということができないため、必要な情報を事前に押さえておくことになる。

メールの着信や電話の取り忘れがないかなど、チェックする必要がないのは気が楽。

歩いていても電話機の重さがないのは軽い感じがする。


結論

たまにはいいんじゃない?

2009-02-15

宇宙の大きさを調べてみる

昨晩、息子に宇宙の大きさを聞かれた。

とっさに半径137億光年と答えたが自信がなかったので調べてみた。


勝手な推測

半径137億光年というのは、宇宙の年齢137億年と光速をかけた数値だ。宇宙最初の地点から光速で広がったものでも、この距離より遠くへは行けないだろうと考えたのだ。


光行距離と共動距離

手元の本にははっきりしたことは書かれていなかったので、手近なところでWikipediaで調べてみた。

宇宙の晴れ上がりから現在までの時間は約137億年。まあおおよそこれが宇宙の年齢と考えてもよほど間違いではないだろう。

しかし、観測可能な最古の光が発せられた地点は、約470億光年先にあると書かれている。

私の求めた137億光年は光行距離であり、空間の膨張を織り込んだ共動距離は470億光年と推定されているらしい。


観測可能半径と宇宙の大きさ

つまり、観測可能な宇宙の半径は470億光年と推測され、インフレーション等を考慮するとそれ以上。

さらに、その外側がありうるとすると良く分からないということらしい。有限か無限かも分からないのだから。

結論としては、宇宙は半径470億光年以上はあると思われるが、その先がどうなっているかは分からないというのが現時点での答えらしい。

門外漢のにわか知識なので間違ってたらごめんなさい。

2009-02-14

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)用JFv1.43対応のクロックアップカーネルを作ってみる

JFv1.42が出ているみたい。先日のHoliday phone updateを入れたばっかりなのでどうしようか。

これは追従せざるを得まい、と思ってビルド環境を整備しようと思ったらJFv1.43が出ていた。

早すぎじゃん。


JFv1.43のカーネルビルド手順

JFv1.43のビルド環境http://jf.odiness.com/v1.43/JFv1.43_Holiday_BuildEnvironment.tar.gzをもらってきて、適当なディレクトリに解凍する。

$ cd
$ wget http://jf.odiness.com/v1.43/JFv1.43_Holiday_BuildEnvironment.tar.gz
$ mkdir JFv1.43
$ cd JFv1.43
$ tar zxvf ~/JFv1.43_Holiday_BuildEnvironment.tar.gz

リポジトリを整備する。

$ cd Prebuild/Android
$ ./repoinit.sh

カーネルのパッチを当てる。

$ ./patchkernel.sh

ビルド。

$ cd mydroid/kernel
$ cp ../../kernel/kernel_boot.config .config
(ここで必要なパッチを当てる)
$ patch -p1 < clock.c.patch-090201
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi- zImage

後で良く調べるとJFv1.41/JFv1.42/JFv1.43はカーネルソースがまったく同じだったので互換性がある。

出来上がったカーネルはパッケージ化して、ここhttp://tetsu.homelinux.org/android/に置いてある(update-v2.zip)。


JFv1.43に入れてみた。

まずは、JFv1.43だけを入れた状態。

ファームJFv1.43
Model NumberAndroid Dev Phone 1
Firmware version1.1
Baseband version62.33.20.08H_1.22.14.11
Kernel version2.6.25-01843-gfea26b0 jesusfreke@AndroidDev #1
Build numberholiday_devphone-userdebug 1.1 UNLOCKED 130444 test-keys

次に、カーネル入れ替え後。

ファームJFv1.43 + update-v2.zip
Model NumberAndroid Dev Phone 1
Firmware version1.1
Baseband version62.33.20.08H_1.22.14.11
Kernel version2.6.25-01843-gfea26b0 tetsu@tetsu #2
Build numberholiday_devphone-userdebug 1.1 UNLOCKED 130444 test-keys

マルチタッチもできて、クロックアップも効いている。ひとまず満足。

2009-02-13

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)のsystem updateを入れてしまってみる

当たらし物好きなので我慢できずにHoliday phone updateを入れてしまった。


入れる前

Settings > About phoneの内容を転記。JFv1.41を入れ、カーネルまで入れ替えているので他の人の参考にはならないとは思うが。

ファームJFv1.41+独自カーネル
Model NumberAndroid Dev Phone 1
Firmware version1.1
Baseband version62.33.20.08H_1.22.12.29
Kernel version2.6.25-01843-gfea26b0 tetsu@tetsu #2
Build numberdream_devphone-userdebug 1.0 UNLOCKED 121975 test-keys

入れてみる

以下の手順でHoliday phone updateをインストールする。

f:id:linuzau:20090211205514p:image

の状態から、

  • Update nowのボタンを押す。
  • 勝手に再起動が起き、リカバリモードになってアップデートが終わる。
  • Home+Backで再起動

簡単。


入れた後

ファームJFv1.41+独自カーネル+Holiday phone update
Model NumberAndroid Dev Phone 1
Firmware version1.1
Baseband version62.33.20.08H_1.22.12.29
Kernel version2.6.25-01843-gfea26b0 tetsu@tetsu #2
Build numberdream_devphone-userdebug 1.0 UNLOCKED 121975 test-keys

何も変わってない。アプリだけの変更みたい。

たぶんこちらhttp://www.android-app.info/2009/02/09/veruprc33/で解説されているような違いがあるのだと思う。


Holiday phone update 2 of 2

Google Latitudeを動かしてみようともぞもぞやっていたら、いきなり

"A system update is available"だって。今アップデートしたばっかりじゃないか。

f:id:linuzau:20090211221611p:image

2つに分かれているのか。

  • Update nowボタンを押す。
  • リカバリモードでアップデートが始まる。
  • アップデートが終わったらHome+Backで再起動。
  • Writing radio imageとか出て書き込むような画面がでて勝手に再起動される。
  • またリカバリモードになる。Home+Backで再起動。

やっと終わった。


入れた後(2 of 2)

ファームHoliday phone update
Model NumberAndroid Dev Phone 1
Firmware version1.1
Baseband version62.33.20.08H_1.22.14.11
Kernel version2.6.25-01845-g85d4f0d android-build@apa27 #27
Build numberholiday_devphone-userdebug 1.1 UNLOCKED 130444 test-keys

すっかり新しくなってしまった。

カーネルも上書きされてしまった。使っていて反応が鈍い感じがする。

カーネルのリリースバージョンが違うので、またカーネルを作り直さないといけない。

アップデータの中身を見てみると、以下のものがアップデートされるみたい。

  • boot.img(カーネル)
  • radio.img(電話関係?)
  • system(アプリ類)

2009-02-12

HTC Dream(aka T-Mobile G1, Android Dev Phone 1)のsystem updateが来たので入れるか思案してみる

ふと画面を見てみると、Holiday phone updateが出たとの表示があった。本物なのかどうか、入れてよいのかどうか思案中。


画面

f:id:linuzau:20090211205514p:image


本物?

インストールした人の書き込みを見つけた。

Google LatitudeとVoice searchの機能が増えているよう。RC33と同等か?

http://groups.google.com/group/android-developers/browse_thread/thread/4fc696bd66b988f6/e9b38b30c6f4f23e?show_docid=e9b38b30c6f4f23e#

JFv1.41を入れていたり、カーネルを入れ替えてたりする人が入れるとどうなってしまうのかは不明。


フルバックアップ

普段からMy backupでバックアップは取ってある。今回は慎重にnandroid-2.0でフルバックアップも取っておく。

nandroid-2.0をLinuxマシンに入れておく。

以下の手順でリカバリモードになる。

  • 終話(赤)ボタン長押しでシャットダウン
  • ホームを押しながら終話(赤)ボタンを押して起動

nandroid.shを起動。

$ mkdir ~/nandroid-090212
$ cd nandroid-2.0
$ ./nandroid.sh ~/nandroid-090212
nandroid v2.0
mounting system and data read-only on device
start adb portforward on port 4531
checking free space on cache
pushing tools to /cache: dump_image-arm... 688 KB/s (577748 bytes in 0.819s)
done
Getting md5sum on device for boot...done (749c6fb47cf972118f67b6dd83d9ab71)
Dumping boot from device over tcp to /home/tetsu/android/nandroid-090212/boot.img...
done
Comparing md5sum...md5sum verified for boot.img
Getting md5sum on device for recovery...done (6e4def392ae3fdcdcfe984f72ea0b376)
Dumping recovery from device over tcp to /home/tetsu/android/nandroid-090212/recovery.img...
done
Comparing md5sum...md5sum verified for recovery.img
Getting md5sum on device for misc...done (06605033a83d1384b239fd7b49016f54)
Dumping misc from device over tcp to /home/tetsu/android/nandroid-090212/misc.img...
done
Comparing md5sum...md5sum verified for misc.img
Getting md5sum on device for tar for system...done (d1055db1440ea06a747f8219f020d5fd)
Dumping tar file for system /home/tetsu/android/nandroid-090212/system.tar...done
Comparing md5sum...md5sum verified for system.tar
To convert system.tar to system.img, run the following commands as root:

mkdir /tmp/HT845GZ49961-system-tmp
tar x -C /tmp/HT845GZ49961-system-tmp -f /home/tetsu/android/nandroid-090212/system.tar
/home/tetsu/nandroid-2.0/mkyaffs2image-i686 /tmp/HT845GZ49961-system-tmp/system /home/tetsu/android/nandroid-090212/system.img

Make sure that /tmp/HT845GZ49961-system-tmp doesn't exist befor you extract, or use different paths.
Remember to remove the tmp dirs when you are done.
Getting md5sum on device for tar for data...done (b56a0bf3a50904165c5abfe4e5843421)
Dumping tar file for data /home/tetsu/android/nandroid-090212/data.tar...done
Comparing md5sum...md5sum verified for data.tar
To convert data.tar to data.img, run the following commands as root:

mkdir /tmp/HT845GZ49961-data-tmp
tar x -C /tmp/HT845GZ49961-data-tmp -f /home/tetsu/android/nandroid-090212/data.tar
/home/tetsu/nandroid-2.0/mkyaffs2image-i686 /tmp/HT845GZ49961-data-tmp/data /home/tetsu/android/nandroid-090212/data.img

Make sure that /tmp/HT845GZ49961-data-tmp doesn't exist befor you extract, or use different paths.
Remember to remove the tmp dirs when you are done.
Getting md5sum on device for tar for cache...done (eb430d718c03d93b41eab45f73e49e73)
Dumping tar file for cache /home/tetsu/android/nandroid-090212/cache.tar...done
Comparing md5sum...md5sum verified for cache.tar
To convert cache.tar to cache.img, run the following commands as root:

mkdir /tmp/HT845GZ49961-cache-tmp
tar x -C /tmp/HT845GZ49961-cache-tmp -f /home/tetsu/android/nandroid-090212/cache.tar
/home/tetsu/nandroid-2.0/mkyaffs2image-i686 /tmp/HT845GZ49961-cache-tmp/cache /home/tetsu/android/nandroid-090212/cache.img

Make sure that /tmp/HT845GZ49961-cache-tmp doesn't exist befor you extract, or use different paths.
Remember to remove the tmp dirs when you are done.
removing tools from /cache: dump_image-arm... done
unmounting system and data on device
Backup successful.

(続く)