2012年11月5日月曜日

Flucardを妄想

最近はWiFi付きのSDカードといっても選択肢はずいぶんあり、
私の把握している範囲でも
Eye-FiFlashAirFlucardPQI Air Cardがあります。
個人的にはDTIのCloud@SDに注目していたのですが、
期待はずれだったので結局まだこの手の製品には手を出していませんでした。
個人的にはストレージとして別途マイクロSDカードが必要なPQI Air Cardかなと思っております。
NAND Flash ROMには劣化がつきものであまり信用してないので、
この部分が入れ替えられるこの製品にはメモリサイズの問題以上に意義があります。

まあ私が買うとしたらPQI Air Cardなんでしょうけど、
比較対照しながらいろいろ見ていてFlucardに興味が湧いてきました。
というのもFlucardのファームウェアを見たらなんとLinuxじゃないですか。

Fluecardのサポートページから
"firmware_367.zip"なるファームウェア(更新用ファイル)を取ってきて展開すると、
どうも2種類のハードそれぞれ用のファームウェアがあるように見えます。

"program.bin"をバイナリエディタで見ると、
どうみてもARM(ARMモード)の命令が並んでいますし、
先頭の8ワードが完全に割り込みベクタで、
しかも眺めているとu-bootに間違いありません。
u-bootだとするとGPLなのでリバースエンジニアリングは禁止されていないはずなので
Androidの開発(アプリケーションじゃなくてファームウェア)用のクロス開発環境を利用し
arm-eabi-objdump -b binary -m arm -D program.bin > program.bin.asm
のように逆アセンブルしてみました。
コードを見るとコプロセッサの15番を触っていて多分これがMMUと推測できます。
LinuxはMMUなしとかMPU用の実装もあるはずですが、
わざわざそんなもの選択するほどの理由があるとは思えないですし、間違いなくMMUでしょう。
MMU付きのARMというとCoretex-A系だと性能高すぎと思われ、
昔のARM9系なARM926EJ-SぐらいがCPUなんじゃないかと思います。
SoCとしてはSDのホストインターフェイスが2つとデバイスインターフェイスが1つ付いていて、
前者にeSD/eMMCとSDIOのWiFiモジュールをつないでシステムを構成し、
カメラ等の機器からくるコマンドやデータを後者で受けて
ARMで処理しているんでしょうね多分。

またimage3(Image)を眺めると2.6.32.28のLinuxカーネルであることはわかりますし、
initramfs3.gz(initramfs.gz)は先頭8バイトを削除してgunzipとcpioで展開すると
完全な(initじゃない)rootfsが現れます。
必要なソフトはOSSでどうにでもなりそうです。
改造も出来そうな気もします。

って、ネットサーフィンしてたらとんすけさんや
OSAKANA TAROさんがいろいろ書かれているのを見つけました。

面白そうなので買ってみてもいいのですが、
今Raspberry piも持て余していますし…

0 件のコメント:

コメントを投稿