cupcakeはビルドできたけど

masterブランチはcupcakeからのマージ中なのかいな?
ともあれ、masterブランチはどうやらビルドできる気配がないので、cupcakeブランチを落としてきてビルド。Goodie君は表示されるものの、その後、シャットダウン。何度やっても駄目。
SEGVでも起こってるのかしらん?と、起動中にもlogcatでログを吐かせておいて、再起動後に見てみたら、
D/ShutdownThread( 1590): Shutting down power.
と、勝手にシャットダウンしてるんですけども?
うーん。わからん。
release-1.0ブランチなら動くかな?

ミキハウスのイベント

嫁さんがストレス発散に行きたいというので、幕張メッセで開催していたフリーマーケットに行ってきた。
そしたら、ミキハウスのイベントがやっていて、ついでに寄ってきた。
ミキハウスのイベントのはずなのに、オタフクソースやら、豆乳のマルサンやら、パルシステムやらが試食をやってた。オタフクソースは試食に加えてサンプリングまでやってた。1才からのお好み焼きソースとな。おいしかった。
結局、ミキハウスの商品は買わず。いくら3割引だ半額だといっても、元が高いんで。そのためにフリーマーケットに来たんだものね。
フリーマーケットの方ではいろいろしっかりと子供服14点買って帰ってきましたとさ。ホール11だけなのに、全部回るのに2時間かかった。疲れた。
ところで、いまさら、フリーマーケットは自由市場(Free Market)ではなく、蚤の市(Flea Market)なんですな。発音違うジャン。

masterがビルドできなくなってる

repo syncしてビルドし直したら、
external/opencore/oscl/oscl/osclio/src/oscl_file_native.h:141: error: field ‘sigbushandler’ has incomplete type
とかゆうエラーが出てビルド失敗。問題はつい1日ぐらいの間で起こったらしい。タイミングが悪いなあ。週明けぐらいまでには直るんだろうけど。
repoやgitで日付指定で戻せればいいんだろうけど、タグのないところには戻せないのかね。

D01NX + Kernel 2.6.24も駄目

久しぶりに時間がとれたので、VMB5000ドライバをKernel 2.6.24でビルド。Kernel 2.6.26へのポートよりも変更点は少なく、usb_hcd_giveback_urb の引数を変更したのみ。
だけれども、動作結果はKernel 2.6.26と一緒。
「Unable to handle kernel NULL pinter deference at virtual addres 00000040」というエラーがvmb_en_queue_eventで起こってお亡くなり。addr2lineで発生位置を探そうとしても、デバッグ情報がなく。CONFIG_DEBUG_INFO=yにすればいいらしいが。さて。

Turn Off Radioが動作する!

SL-C860 + Kernel 2.6.23 + Android SDK m5-rc15 + D01NX の環境で、電波強度がなんで表示されないのかなあ、BERを取得するATコマンドは正しく動いているようなのに?
Kernel 2.6.26にドライバを移植して、Android 1.5を動かさないとだめかあ、と思うところ。
ふと、Cancelボタンを押していたら、「Power Options」が表示されることに気づいて。これはCancelボタンが終話(End Call)ボタンに割り当てられていて、長押しすると出るみたい。
「Power Options」のメニューの中には、「Turn Off Radio」というのがあるので、動くのかな?と選んでみると、D01NXのアンテナLEDが緑から赤に変化した。そのあと、同様に「Power Options」を表示すると、「Turn On Radio」とメニュー項目が変わっていて、また選択すると、今度はLEDが赤から緑に変わった。どうやら、電波のオン・オフのATコマンドは動いているらしい。

Windows XP SP3 OEM版をインストール

MacBookのHDDを交換したときに、Windows 7をBootCampパーティションに入れていたのだけれど、たまに画面が真っ暗になる(バックライトがOFFになってるような?)とか、VMware Fusionからだとこれも真っ黒の画面になるとか、もう一つ安定性に欠けるので、HDDと一緒に買ったWindows XPに入れ替えることにした。
SP3対応版からはDVD-ROMになったので、インストールも速いかな、とちょっと期待したけど、それほど速いわけでもなく。ファイルのコピーで差が付くかと思ったけど、ランダムアクセスだと効果はないのかね。
まず、BootCampパーティションにインストールして、うまく動くなあ、と思ったので、さっさとアクティベートしてみた。当然問題なし。
そのあと、VMware Fusionから起動してみよう、としたら、なんか動きがおかしい。ブルースクリーンが出まくる。仕方がないので、VMware Fusionをアンインストールして、再インストールしてみたら、起動できるところまで来た。
そうすると、「3日以内に再アクティベーションが必要です」とか言われた。これは前にWindows XP英語版を入れていたときにも同様だったので、そのままスルーするだろうと、アクティベーションをかけてみるも、失敗。その後も何回かアクティベーションをトライしてみたら、ついには「このプロダクトキーでのアクティベーション回数を超えました。別のキーを入れてください」のようなことを言われて、アクティベーションできなくなった。えええ?
困ったなあ、と、今度はBootCampで起動してみると、またもアクティベーションの催促。ところがこっちは、そのまますんなりアクティベーションが通ってしまった。うーん。
じゃあ、これで大丈夫かな?と、またVMwareに戻ってくると、今度は起動直後のアクティベーションの催促はなくなった。26日以内にアクティベートしてね、というようなバルーンが出るだけ。なんかリセットされたのかな?と思って、そのままアクティベートをトライしてみると、やっぱりアクティベーション回数を超えている、と怒られた。うーん、マイクロソフトに電話して、アクティベーションを続行しなくちゃいいかんのか。面倒だなあ。
結局、BootCampパーティションに入れてすぐにアクティベートせずに、VMwareでの起動を確認してから、アクティベートするべきだったなあ、と思うのだった。

Kernelのバージョンとできてることのまとめ

一応、SL-C860で以下の使い方ができるのが目標、だということを再確認しておく。


  • D01NXが使える
  • MacBookをUSBケーブルでつなげば、ルーターになる(usbnetが有効)
  • 単体でもブラウザが使える(Androidが単体動作する)

で、現在できているところまでの、KernelのバージョンとAndroidとかその他のデバイス周りの星取り表。




































バージョン Android Android Power Wi-Fi usbnet D01NX AndroidでPPP
2.6.23 m5-rc15 OK OK OK OK N/A
2.6.24 1.5 NG OK NG NG NG
2.6.26 1.5 OK OK OK NG NG

現状、Kernel 2.6.23がベター。
ホントはブラウザだけなら、AngstromのGPEとWebKitと日本語化でもいいんでは、とも思うことがあったり。

Android SDK m5-rc15とD01NX

Android SDK m5-rc15では、rilがアクセスするシリアルデバイス名をKernelのコマンドラインに、android.ril=ttyACM0 と追加する必要がある。ttyACM0はD01NXを取り付けた時にできるttyデバイス。
Androidを起動しても、残念ながら、アンテナマークに変化なし。
Fn+←でコンソールに降りて、dumpstate でデバイスの状態をダンプして、RADIO LOGの項目を見てみると、確かに、D01NXとATコマンドでやりとりできているらしい。だけども、ATコマンドのいくつかはエラーが出るし、Exceptionも発生してる。一応、電波強度をとっている形跡もあるんだけどなあ。
とりあえず、AndroidとD01NXがなんらかの通信ができそうだ、という希望がもてたので、次に進もう。

D01NXをSL-C860 + Kernel 2.6.23で認識

半日ほどかけて、Angstrom stableブランチを最初から落とし直して、Kernel 2.6.23にしてビルド。まずはAndroidのパッチは当てずに、console-imageを作成し、kernel-module-usbcoreとkernel-module-cdc-acmのモジュールipkを作成(といっても、勝手に生成される)し、さらにuucp(cuコマンドを使うため)をビルドした。
console-imageをSL-C860に焼いて、モジュール2つとcuをipkgでインストール。さらに、vmb_csとvmb_hcdをコピーして、depmodを行った。このあと、D01NXをCFスロットに差し込むと、あら不思議、/dev/ttyACM0 ができますよ!
cuコマンドを使って、ttyACM0とATコマンドのテストを行って、ちゃんとつながっていることを確認。やったー!
Androidが使うというATコマンドをかたっぱしから入れていったら、ERRORを返したのは、以下のコマンドだけ。

AT+CMUT
AT+CIMI
AT+CNM

ところで、よくよく見たら、ネットインデックスのATコマンドリストには3GPPのほとんど載ってないじゃん。確かに、ほとんどはoptionalだけども。
さて、次は、m5-rc15と接続できるか試してみようかな。
それとも、vmbドライバを自分でbitbakeして問題がないかのテストをしようか。

古いAngstrom用のipkgがすでにない

こちらを参考に、Kernel 2.6.23版のc7x0用Angstromをダウンロードしてきて、さあ、D01NXを動かすぞ、と思ったのだけれど、Feedからすでに2.6.23用のipkgは削除されているようで、kernel-module-cdc-acm がインストールできない。がーん。
stableブランチをチェックアウトして、環境構築からやり直しかな。とほほ。