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が止まってしまう。
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でファームの書き込み。
- 終わったらホーム+バックで再起動。
HTC Dream(aka T-Mobile G1, Android Dev Phone 1)の公式cupcake用クロックアップカーネルの下限クロックを下げてみる
cupcake(1.5)用クロックアップカーネルが安定しているようなので、もう少しいじってみた。
下限クロックが246MHzになっているのを、どこまで下げられるかやってみた。
下限クロック
いろいろ変えて試してみた。
クロック [MHz] | 正確な値 [kHz] | 起動結果 |
---|---|---|
246 | 245760 | OK |
176 | 176000 | OK |
128 | 128000 | OK |
123 | 122880 | 起動せず |
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でファームの書き込み。
- 終わったらホーム+バックで再起動。
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でファームの書き込み。
- 終わったらホーム+バックで再起動。
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になった。何も問題がないのでしばらく使い続けることにする。
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の動かし方を教えて下さい。