長年使っていたmovaがもう限界
バッテリーがダメダメなので、FOMAに乗り換えることに。iPhoneではMNPやらメアドの件やら面倒なのでやはりDoCoMo。普通の携帯にしようと思っていたのだが、AndroidもPG組めれば面白いかな?とか頭を過ぎり日本仕様のこいつにする。3Dなんてまったく眼中になかったのだが、いざ見てみるとこれが面白い。確かに裸眼で立体的に見えるので何気に感動する。きっとNintendo 3DSもこんな感じになるんだろう。
正直、画面の操作性はiPhoneには敵わない。ギリギリ及第点かむしろダメかもしれないw 画面をスクロールさせようとしてタップ認識してしまうことが多々ある。これはiPadやiPod touchではほとんど無いだけに設定や作りの問題だと思うので改善して欲しいところだ。それと同じ画面を複数の操作経路で出せるのも紛らわしい。それこそAppleを見習うべきだ。シンプルで複雑なことが出来るiPhoneと同じ事を複雑にやる必要のあるAndroidではiPhoneに分がある。
それでも結構気に入ってるんですけどねw
2010/12/15 水曜日
Android Phone
2010/12/10 金曜日
またつまらぬものを斬ってしまった、、、
購入してから随分と経つが、、、
何故か忘れた頃に無性に動かしたくなるのがZaurusだ。これまでにもkernel換装したり、Fedoraを入れたり、Qtを入れたりと、Crossコンパイラ大活躍だが一切実用にはならない事ばかりしてきたw TouchScreenの液晶にUSBまで使えてARM系で組み込みをやる人にはもってこいの教材だと思うんだがなぁ、、、もっと評価されるべき機体。
で、ここ数日、予定の作業がずれ込んで時間が空いたので、ちょこっと移植してみた。完成度は低いものの、そこそこの速度で動くもんだと改めてZaurusに感心したw
pxa27xにはIntelらしくMMX命令が拡張されているのだが、iwmmxtオプションでgccでも使える。alsaもOSSに比べると使いやすいが奥が深そうなのでこれ以上の深追いはやめとこう。タイマー分解能が高いのかusleepもそこそこな精度で指定できる。
本当はiPhoneの勉強でもしようかと思ったのだが、金払わないと開発できないなんてアホらしいのでパスした。
2010/5/2 日曜日
Vanilla
新し過ぎたのかな?とも思い2.6.29で試してみる。
しかし、相変わらず結果は同じ。そもそも、2.6.29がzaurusで動作するのか?ということでkernel.orgよりvanilla kernelを落としてビルドしてみるが、普通にzaurusで動作。うーむ、やはりandroid用のkernelとの相性なのかなぁ、、、vanillaの.configでandroidをビルドしてみてもダメだ。せめてシリアルコンソールでもあればそれなりにログでもチェック出来るのだが、画面真っ暗ではどうしようもない。
vanillaとandroidのソース差分を眺めてみるが、単なるドライバの追加だけでなく本体にもガッツリ手が入ってる。もう、こうなるとお手上げだw Zaurusで成功しているのは1.5とかの時代のものでkernelも2.6.25あたりだ。fbのダブルバッファリングにパッチを当てたりと多少の手が入って動いているそうなので、仮に現状のkernelが動作してもandroidのユーザランドが走るとは限らない。eabiを切らないといけないのかなぁ、、、
ということで諦めたw
迷宮のアンドロイド
ビルドを済ませて、bootディスクへ
起動の途中で、LEDが消えた
あやしげなdmesg、画面ごとIn the dark
止まるあなた、、、、
Android、GoogleからShipping Free
今更ながらZaurusに入れてみようかと、Googleからソースを落としてビルド。もの凄い量のソースが送り込まれてきて延々ビルド、というか放置。手順がサッパリわからず、四苦八苦しながらもエミュレータまでは動作した。じゃ、次はkernelかとgitで落とした最新版を必須オプションが入るようにconfigしてビルド。何やら数箇所エラーが出たが手動で適当に直しながら無理やり通した。kernelはAndroid固有のドライバが加わっているだけなので、まずは既存の環境でこの新しいkernelの動作確認をしてみようとやってみるが、見事にハング、、、とほほ
どこかconfigがおかしいのだとは思うのだが、さすがにkernelが起動してくれないとどうにもなりません。Fedora化とかは容易に出来たけど、やはりAndroidは当方には敷居が高いw
2.6.32では新しい過ぎるのかな、、、
2010/3/3 水曜日
アンドロイド特集
インターフェース誌で特集されていたので読んでみる
CQ出版らしく組み込むにはどうすればいいの?って視点なのが面白い。今まで漠然としていたAndroidのイメージがよりわかりやすく解説されていた。アプリケーションをJavaで書くというのは知らなかったので、これは将来iPhoneアプリよりも数が出揃う可能性もあるのかな?と思えた。どう考えてもObjective-CよりはJavaの話者の方が多いだろうし。
AndroidはglibcでもuclibでもなくBionicというライブラリを使ってるそうで、細かいところでは一般的な組み込みLinuxとは異なっているようだ。kernelもメモリ管理やIPCに手を加えているので標準とは若干異なる。ちょっと遊びでいじってみようかと思ったが、かつてのkernel 2.6移植の仕事の時みたいな苦労を再びやる根性がない、、、w
載せるだけなら(職人の方であれば)簡単そうなので、今後、携帯に限らず普及するかもしれない。
2009/12/24 木曜日
Netwalker
Zaurusが生産中止になってから登場したARMマシン
電子辞書ではあるが、中身は立派なLinuxマシン。どうやら、世のハッキング好きには格好のターゲットになったのか、AndroidもZaurusからNetwalkerにシフトしているようでバイナリとかが見当たらない。
頓挫w
2009/5/28 木曜日
ARMの本
本棚を整理していると以前、組込をちょっとやった時の書籍が出てきた
懐かしいなと思いパラパラめくってみる。kernelのソースいじるのに斜め読みしただけなのだが、フェッチ、デコード、実行の順で命令が処理されるので実行時のPCは実際の+8だとか面白いことが書いてある。ARMで「へぇ〜」と思ったのはブランチする時、戻り番地はレジスタに入れるってとこだろう。そしてret命令もなく直接PC書き換えて戻る。昔のCPUでは多くはスタックに積んでretしていたので新鮮な驚きだった。RISCではこれが常識なんだろうか?メモリアクセスを極力減らすってことなんだろう。分岐を減らす為にほとんどの命令で条件付実行が可能だ、これもキャッシュの為かなぁ?
仕様書を集める癖があるので、ARMから提供されているPDFとか読みもしないのに溜っている。ABIまで集めていたか、、、>過去の俺。Marvell 88F6281のPDFもあるな、、、これは新型のLinkstationの用だな、、、何するつもりだったんだろうw 実機も持ってないのに。
今となってはHDDの肥しである
2009/5/20 水曜日
Zaurus Qt/E on DirectFB with tslib
Linux Input Subsystemではクリックが認識されなかったので
tslib 1.0を間に噛ませるように変更。ところが、tslib単体では動作するのに、Qtからplugin経由でloadさせるとエラーになってしまう。どうもtslib.soからinput.solinear.soをloadする際にtslib側の関数がinputlinearから見えないのが原因らしい。多分、Qtがtslibをloadした際にこれ以降シンボル参照を禁止しているのではないか?とQtのソースを見ると、確かにRTLD_LOCALを指定してdlopenしている箇所がある。これをコメントすればいけるんじゃないかと思ったが相変わらずダメ。まぁ、参照している関数も小さなものだし面倒なんでinput.solinear.soに入れちゃえと改造すると食いついた。これでやっとクリックに反応するようになりました。
まだキーボード入力が解決してないけど、、、
追記:inputではなくlinearなので修正
2009/5/17 日曜日
Zaurus Qt/E on DirectFB
2009/5/15 金曜日
Zaurus FC10 起動画面
何故か起動画面が縦横入れ替わってしまっていたのだが
そもそもZaurusのfbは480×640なので縦長のiPhoneみたいな画面で正解である。従って何もしなければコンソール画面のfbconも横に倒したように文字が表示される。しかしfbconには回転指定が可能なので時計回りに90度回転させれば丁度640×480のようになる。そこでkernelのbootパラメータにfbcon=rotate:1とか指定してみたがダメ、、、起動時に手動でkernelパラメータなんて渡せたっけ?、、、うーむ、面倒なのでkernelソースを覗いてみるとdrivers/video/console/fbcon.cの中にinitial_rotationなんて直球な静的変数があるじゃありませんかw 確かに受け取ったkernelパラメータをここに入れている。こいつを最初から”1″にしとけば問題ないだろうとやってみると見事640×480なワイド画面wになった。
どうもこれだけだと味気ないのでロゴマークも出しとこうと思ったのだが、あのペンギンは、、、ということで適当に拾ってきたfedoraのロゴを加工してkernelのソース中のペンギンと入れ替える。pngファイル(224色以下)をkernelソースに変換するツールを実行:
% pngtopnm logo.png | pnmtoplainpnm > logo_linux_clut224.ppm
出来上がったppmファイルをdrivers/video/logoの同名のファイルと入れ替えでkernelをビルド。現在、kexecなkernelのお陰でシステム一式が2GBのSDカードに入っている。わざわざflashに書き込まなくても抜き取ったSDカードの/boot/zImageを入れ換えるるだけでkernel換装が出来るのでメンテナンスがとても楽。
そうして入れ替えた起動画面はこちらw
