Androidのソースコード公開

Googleの携帯電話プラットフォームAndroidのソースコードが公開。
http://source.android.com/
いままではカーネルとWebKitなど一部が公開されていたようだけれど、Project LayoutとGitWebを見ると、dalvik VMなどまで公開されている。これ、ホントにすべて公開されているんじゃ?
すでにザウルスでもAndroidが動いているけれど、今回のソースコード公開で、さらに完全なザウルス向けAndroidが登場してきそうだなあ。
ビルドするにはHDDが6GBいるらしいので、今使ってるVMの8MBでは足りないねえ。HDDを増量するところからやらないといけないか。
D01NXも、やっぱり、Androidで動かすことを検討した方がよさそうだなあ。

D01NXドライバはロードされる?

ふと、SL-C860に、SL-C3x00/1000用のD01NXドライバを入れて、カードを挿したときの挙動を見てみた。
デバッグを有効にしたカーネルを作って、SL-C860に焼き込み、syslogを起動しておいて、カーネルのログを出力させてみたところ、
usb.c: registered new driver hub
hub.c: usb_hub_thread exiting
usb.c: deregistering driver hub
ds: instance is NULL
というログが得られた。
dsのログは、自分で追加したもの。カードサービスの登録に失敗する理由を探るために入れていたもので、ドライバのインスタンスがないから登録できないよ、ということ。
しかし、ドライバは2.4.20用なのだけれど、SL-C860のカーネルはバージョンの違いなどおかまいなしにロードしようとしている様子。これは、SDカードドライバがプロプライエタリなので、それを読み込ませるための細工なのかしら。(確か、標準ではGPLドライバしかロードしなかったような)
ここで思った。hub.cがエラーを返している、ということは、usbcoreに互換性の問題があるからではなかろうか、と。となれば、usbcoreを2.4.20用のものからバックポーとしてしまえば、いいんじゃないかしら?と。
でも、先ほどのログは、usbcoreがロードされていなかったために起こったのかもしれない、と思った。
試しに、usbcore をmodprobeしておいてからカードを挿したときのログは、
usb.c: registered new driver hub
ds: instance is NULL
となっていた。少なくとも、hub.c: usb_hub_thread exiting のエラーはなくなった。
いや実際は、先にエラーが出て消えているだけかもしれないけれど。
もう少し詳しく見るには、usbcore にデバッグログを仕込むことかな?
ちなみに、カードを取り出したあと、lsmod をしてみると、usbcoreは消えていた。vmb_usbにつられて削除されたらしい。

D01HW アウトレット復活

USBタイプのイー・モバイルデータカードD01HWのEMチャージ用アウトレットが100台限りで復活。
ああ悔しい。
職場の後輩は「絶対来ると思っていた」と申し込んだとさ。
さすがに、もう一本買うってのもばかばかしいので、D01NXでがんばろう。
それに、SL-C860で使う、という目標があった方が面白いし。
そんなに頻繁に使うわけでもないしねえ。
なんていってたら、1万円分の利用料、使い切れるかな?
でも、EmOneが欲しいなあ、と思う今日この頃でもあったり。

USBドライバの移植…手も足も出ない…

カードサービスまではできたものの、その次、USB HCIのドライバを移植しようとしたのだが…
このUSB側の方が本体なのだが、どう手を付けたらいいのかさっぱり。
Kernel 2.4と2.6ではデバイスドライバのモデルが大きく異なるので、なんともならない。
ザウルス用のCF-USBカードのドライバのソースコードを見てみたら、こっちの方が素直そうな気がしたので、これをベースにVMB5000のハードウェアのアドレスとかを入れたらなんとかならんかな、と思ったのだが、そもそも、デバイスへのアクセス方法がまったくわからない。IOをmmapでマッピングするんだと思うのだが、ベースアドレスとかどうゆう風になってるんですかね?
うーん、まったくさっぱりわからん。
もう、ずいぶんとあきらめムードになってきた。
NetFront 3.0だと、Hotmailも開けないしなあ。
OpenZaurusかAngstrom+OPIEにしようかなあ。

カードサービスまではできた

D01NXドライバ(VMB5000ドライバ)のSL-C860向けの移植、とりあえず、カードサービスとして登録できるところまでは確認されました。
イー・モバイル純正のドライバ(SL-C3000など用)をインストールあとに、作成したモジュールを、/lib/modules/2.4.18-rmk7-pxa3-embedix/pcmcia/vmb_usb.o としてコピーしてやれば、地球アイコンまで出るようになりました。
当初は、dummy_cs.c のコンフィグをそのまま使っていたのだけれど、それだとインスタンスが作れていない、とかゆうエラーがpcmcia/ds.c の中で出ていたようで、ちゃんと、VMB5000のドライバの中身に従って、変更。IRQの属性を、IRQ_TYPE_EXCLUSIVE から RES_SHARED に変更しただけだけど。
で、現在のところ、CFカードのリソースが登録できただけで、まだUSB部分については未実装。
ここからは、急激にハードルが高くなるなあ。
まずは、usbcoreのAPIをコールして初期化するのかな?