2011年07月06日

JZ4760 Android MID

基板設計や FPGA で遊んでいたので、こちらはしばらくお休みしていたのだが... 久しぶりに JZ4760 を検索してみたら、なんと Android 2.2 の MID が出ている。

Android の主力は ARM だから MIPS の android を出すには相当がんばらないといけない。

どんなものか見るために買ってみたいような...

想像では、tcc89xx と同じような感じではないかと思う。MIPS の 600 MHz は、普通の ARM11 の 800 MHz と同じような性能だろう。動画の能力は tcc89xx ほどはないが、H.264 720p ぐらいはなんとかしているはず。

まぁいまどき買うようなマシンではないのだが ... Linux のソースが手に入ったりするし、いじるには面白そう。

さて、見付けたのは次のもの

aliexpress:


E430 1 個 $66.98 (freeshipping)
E430 2 個で $131.96 (freeshipping)

いま Paipalのレートは、83.3 円ぐらいだから、5600円ぐらい。2 個だと 11000円で ほんの少し安くなる。

スペックは、

  • OS Andriod 2.2
  • Memory 256MB DDR2
  • Storage 4GB NAND Flash
  • LCDSize 4.3 inch LCD (480*272)
  • Camera NO
  • WIFI IEEE 802.11b/g
  • ports Mini-USB , MicroSD, 3.5mm headphone , TV OUT
  • Battery 1400mAh
  • Weight 140g


PMP に毛が生えたようなスペックと値段だが、WIFI があるのと RAM が多め なのが PMP とは違う点。あと、G センサは付いてない。

taobao:


KTMID 480元

Yahoo!ファイナンスでは、1元 12.56 円。代行を通すことで 4割り増しになるとすれば、8440 円。

こちらは、7 inch で (たぶん) 800x480 。WIFI は、802.11 b/g/n。DDR II 256 MB/Nand flash 4GB なのは同じ。
あと G センサが付いているようだ。

バッテリーは 3000 mAH で 8H 使えるらしい。

ちなみに Jz4760 は、600 MHz 。USB OTG が付いたので 外部の装置が使える。キーボードやマウス、3G のドングルは使えるらしい。

実はこれも aliexpress で買える。が、少々高めのようだ。

追記: E430 というのは、『ronzi A3』というものだった。

    OSAKANA TAROのメモ帳:ronzi-a3関連』が詳しいようだ。

    taobao で『溶智』を検索すると 299元ぐらいらしい。『ronzi A5』 というのもあって 5 inch でマルチタッチになっている。

      299 元の 4割り増しだと 5260円ぐらい。taobao で買っても特に安く手に入るわけではなさそうだ。

      ronzi A5 は 399元。まだ入手できないようだ。

      去年買った T552 が 265元だったことを考えると 299元の ronzi A3 は随分お得な感じがする。CPU 周波数が 1.5 倍でメモリが 8倍。USB HOST機能付き!

      ronzi A5 は、その前に買った SmartQ5 (889元) のようなものか。半額以下でメモリも増えている。(ちなみに、解像度は 800x480 らしい)

      OS の出来の問題があって無視できない -- というより重要なのだが。それにしても 安くなったものだ。

このマシン(ronzi A3/A5)の魅力

    OSAKANA TAROのメモ帳:ronzi A3 その4 firmwareアップデート
    に詳しいが、USB Boot が可能なので、firmware をおかしくしてしまっても 元に戻せる。tcc89xx と同じようなものだが、使うためではなく、いじるために買うので重要な要素なのだ。

    Linux カーネルも Ingenic 社が Open Source として積極的に公開している。うまくすれば、Andoroid マシンではない ものに仕立てることも可能。

    Andoroid マシンではないもの の候補のひとつは、dingux。うまく移植できれば dingux アプリを動かすことができるはず。

    あと、携帯できるサーバマシンとか。32G MicroSD とか USB メモリ とかを付けて ネットワークに WIFI を使うとか。-- 3G のドングルを付けてルータにするとか。他のものでも同じようなことはできる。だが安いというのは大きなメリットで気軽に専用機にできる。据え置きのサーバでもメリットがある。UPS 付きでかつ低消費電力だ。DISK は 外部電源付きの USB DISK が使える。

    電子工作レベルの専用機も楽しいかも知れない。OS は入れない or Free の RTOS ぐらいにしておいて、自分で MicroSD や LCD を操作する。

      これ、ライブラリを作って放置中。USB Boot でロードして、LCD に文字を表示する程度なら動いた。ただ LCD はコントローラ内蔵の いわゆる SmartLCD だから簡単だった。4.3 inch タイプは VIDEO みたいにスキャンしないといけないので、ちょっと難しい。

      USB Boot も実は具合がわるかった。原因は libusb で扱えないような仕様が一部あったため。android の ツールを利用するなら なんの問題もなさそう。

      ライブラリは、Jz4760 には対応していない。対応させるのは可能なのだが、デバイスが膨大にあるので、すごい手間。だが、この手間をかけると Jz4755 とどこがどういう風に違うのか分かってくるので、いずれはやっておきたい。

    あと、内蔵 Flash が SDカードインターフェイス(デバイスは不明)というのも良い。Nand Flash だと扱いが面倒なのだ。ちょうど SmartQ5 の MIPS 版のような感じで root イメージの解析や置き換えが楽そう。

    A3 vs A5 という観点でみると、A5 のメリットは タッチパネル と 解像度。android として 使うなら 明らかなメリットだが、改造したり開発したりする場合のメリットではない。もしメモリが 512MB あれば 開発マシンとして大きなメリットだが、そうでなければ入手しないかも。

    前にも書いたが メモリが多い 安価な MIPSマシン など他にないのだ。256 MB あって Disk がつながりネットワークにもつながれば 立派な開発マシンとして使える。MIPS マシンには思い入れがあるので、かなり嬉しい。

      Disk がなくとも 高速なネットワークがあれば良い。それは、Hi-Speed の USB device があればクリアできるので、Jz4725B/Jz4755 でも OK なのだが、メモリ 256MB というのは無理。

      玄人箱HG の経験からいうと、メモリ 256MB は開発マシンの最低ライン。128MB でも出来ないことはないが、スワップしまくりになったりして、相当に厳しい。

      追記: MIPS の Android 機として使える CPU なぞ他にないと思っていたが、riverRunner さんのコメントより、ATM7001という CPU があることが分かった。

      採用機種は、歌美(gempei) HD8800PRO(4.3インチ) とHD8900PRO(5インチ) だそうだ。

      CPUの情報や Linux のカーネルソースが手に入らないと興味がわかないのだが、一応メモ。

追記: aliexpress のやつをポチった。

    まぁ安いし。いじるのは、気が向いたとき。(今は電子工作のほうがホットなので)
    急いてはいないので、freeshipping にした。たぶん 2-3週間かかる。

    記録: 2011/07/05 ぽちり。(2個セット)
    2011/07/10 shpping のステータス

    7月13日 15:24 引受 HONG KONG (日本郵便でトラッキング可能になった)
    7月16日 17:18 国際交換支店から発送 HONG KONG
    7月17日 14:16 国際交換支店に到着 NARITA
    7月18日 9:00 通関手続中
    7月19日 15:34 国際交換支店から発送
    7月20日 7:27 到着 (最寄りの支店)

追記: 分解写真発見


    (tjw2700c的空間 より)

    基板の裏には、部品が一切なく LCD が載る。LCD の型番は、KD43G18-40NB-A1

      LCD のケーブルは、40極だが タッチパネルが付くので 一般的な 4.3inch LCD とは配列が違うようだ。

      aitendo で扱っている液晶モジュール [QD04300] と同じ配列ではないかと思う。

    FLASH は普通の NAND FLASH (29F32G08CBABA)。 SDカードインターフェイスというのは、間違いだった。 (さらに訂正: 後述)

    WIFI は、USB ドングル がベース(右上)。Jz4760 には Hi-Speed 対応の OTG と、12 Mbps までの USB Host が 1つづつある。USB Host を WIFI に割り当てているのだろう。

    OS から改造する前提で、WIFI を外してしまって、USB の線を引き出したいところ。HUB を付ければ いろいろなデバイスを付けられそうでもある。

    あと、円筒型の水晶がない。... これだけで なんとなく高級感がある。

      円筒型だと手はんだになる。そして、だいたいは、ひどいつけ方になっている。固定するための 処置も必要なのだが、これもひどいのが多い。それがないので基板が美しい。ちなみに、水晶のひとつは、LCD コネクタの左上でたぶん メインクロック。あと RTC 用の 32.768 kHz がどこかにあるはずだが分からない。

    インダクタ(円柱状のパーツ)が 5つも使われている。(LCD ケーブルの下に 3つ)

      普通は電源の数 -αで CORE と LCD バックライトの 2 個の場合が多い (3.3V はレギュレータで済ます)。CORE 電圧は 1.2Vだそうだ。DDR2 に 1.8V が余計に必要だとして +1 。あと 2 つは何だろう? USB に出力する 5V と 充電用?

      大きめのインダクタが付いているのは、少しばかり頼もしい。電源の安定性に貢献しそうだし。中華PMP の中をみると 欠けていたりすることも多いので、大きいやつだと安心感がある。

    LCD ケーブルの下、NAND FLASH の右の IC は何だろう? こんなにピン数が多い IC が必要になるとは思えない。

      約2GB の /mnt/sdcard の正体なら嬉しいが.. 違うのだろうなぁ。
      ライセンス IC ? これも、まさかという気がする。ライセンス ICは、普通ファームウェアメーカの利益保護のためにあるようなのだ。これは、Ingenic 社が直接提供しているように思うし、ライセンス 料を払っていたらこんなに安く作れないような気もする。
      少なくともセンサの類ではない。-- センサにこんなにピンは付いていない。

    基板は、安物とは思えない印象。

    改造とか電子工作の観点でみると結構ポイントが高い。普通は改造する必要もないが、WIFI 用 USB に コントローラを付けたりするのが容易にできる。

      Jz4725B,Jz4755 の PMP を改造したりすることを今まで検討していたのだが、I/O を付けられないのがネックだった。これだと USB OTG を使って Disk を繋げたり、WIFI 用 USB の先にいろいろ付けることができて、応用できる範囲が広がる。

      オシロとかロジアナといった専用機を作ることもできそうだし、USB カメラを付けてドライブレコーダを作ることもできそうだ。

      別のケースに入れることが出来ると、さらに楽しそうな... 。

        PSP のリプレース用ケースに入れられるかも知れない。それが出来るとボタンを入れるスペースが手に入る。USB キーボードのようなものを電子工作で作れば、結構楽しめそう。マイクロコントローラは、(例えば) AT90USB162/ATMEGA32U2 といったものを使う。

        だが、クラムシェルにしてみたい。DS の リプレース用ケースには入らないのだろうか?

    ... といっても Linux を自分でビルドして 仕込むとか が出来ないと。いままで調べてきたが、tcc89xx なんかよりは敷居は低い。最新のソースコードが入手できる。チップの扱い方のドキュメント(programming manual)は、公開されていないようだが、Linux を使う限り 必要ないかも知れない。Linux を使わない場合でも ソースコードを見ればだいぶわかる。

      jz4760_pm.pdf で検索したら落ちていた。リンクは提示しない。ググルヨロシ。

      jz4760_pm.pdf を少し見てみた。まず、これを見ても全ての機能の詳細が分かるわけではない。分からない機能は、

      • MXU 命令 の詳細

        MMX/SSE のような SIMD 命令があるが、詳細 はこれではわからない。いまのところ jpeg や mplayer に対応したコードを見る他ないようだ。

      • GPU の詳細。

        これは、分かっても使いこなせない。ライブラリなどは入手できるので良しとしよう。

      • VPU の詳細。

        Jz4755 からあった ME/MC/IDCT/DBLK の機能の他に CABAC という bitstreame を扱う機能が追加されている。ME/MC/IDCT/DBLK については、Jz4755_pm.pdf に詳しく書いてあったので 合わせて見る必要がある。

      こういう込み入った機能は、あまり分からないが、あとは大体記載されているようだ。

      気になる機能

      • MDMA , BDMA

        2 つも DMA 関係の機能が増えている。一体何だろうと思ったのだが、ディスクリプタで制御できる DMA だった。ディスクリプタというのは、メモリに置いたDMA の指示で、リンクでつなげることが出来るもの。

        普通の DMA と比べオーバヘッドを減らせるのが特徴で、少し大きなメモリブロック(数KB のオーダー) なら memcpy を使ってのメモリコピーの代わりに使え、CPU の負荷を減らせる。珍しい機能ではなく、かなりの 種類の組み込みCPU が同等の機能を持っている。Intel でも そういう機能があって IOAT という名前が付いている。

        これは、Linux だと DMA Engine として利用できる。(対応した場合)。

        2 つもあるのは、何だろうと思ったのだが、MDMA は、memory-memory を含む一般的なもので、BDMA は、NAND Flash の制御(BCH) も扱えるタイプらしい。

        BDMA は 3ch , MDMA は 2ch ある。BCH を 3多重でパラレルに使えるとは思えないので、単純に 5ch あると思っても良いのかも知れない。

          そういえば ... デバイスと CPUキャッシュとの間のコヒーレンシは、サポートしていないような ... そうなるとディスクリプタのありがたみは、ちょっと減少する。まぁキャッシュスルーのレジスタにいちいち値をセットするよりは、メモリに書いて キャッシュフラッシュ一発の方がオーべヘッドは小さいのだが...

      • PMON

        CPU の機能で、キャッシュミスヒットの回数などをカウントするレジスタ。Intel でパフォーマンスカウンタと呼ばれる機能。

        本気でチューニングするには、この手の機能が必要で、Linux だと oprofiler という機能で利用できる。(対応した場合)

      • SPI-Boot

        Jz4760 から SPI-Flash からのブートが可能になった。NAND Flash, MMC/SD , USB からのブートは従来どおり。

        ひょっとしたら、SPI-Flash に ブート ローダを置いて USB ブートをサポートしない装置が出てくるかも知れない。たぶんそんなことはしないと思うが、要注意。

      • USB コントローラ

        今まで手に入れた Programmers Manual には、USB コントローラの詳細が載っていなかった。今回拾ってきた jz4740_pm.pdf jz4725b_pm.pdf jz4760_pm.pdf には、詳細がある。以前拾った jz4755_pm.pdf には載っていないが、たぶん jz4725b と同じではないかと思う。これで不明だったことが分かる。
        (どうも jz4740 と jz4725b の USB は同じようだ -- jz4760 の USB は、ホスト機能をサポートしただけあって、全然違う。)

        使えるエンドポイントは、EP1-15 (EP0 は、control) 。DMA も 8 チャネルサポートしている。

        このチップ DMA は全部で何チャネルあるのだろう? IPU や VPU , LCDC 他のメモリ転送機能まで DMA にカウントすると 32 ぐらいじゃ済まないような ...

        それはともかく、jz4755と比べ随分進化している。使いこなすのがなかなか大変そうだ。MDMA/BDMA も使っているのかどうか? DMA Engine をサポートしていたら使っていると言えそうだが、後回しになってそうなきがする。USB の DMA もサポートしているのかどうか。


    とっつきやすいのは、Dingoo Linux と互換にするようなもの。NAND Flash は デュアルブートのためにいじるだけだし、ボタンはキーボードで代用できる。LCD は フレームバッファがあればよいはず。解像度とか色数を合わせるのはやっかいかも知れない。2D アクセラレータが使えればなんとかなりそうだが... オプションで使える IPU というものもあって 仕様を合わせるのは面倒そう。

    いじって遊ぶのは楽しいのだが、今は時間が取れない。だが、いずれはやってみたい。

    あと、ビューワー系のソフト。オリジナルのサイズで展開して 2D アクセラレータ (or IPU ?) で転送を指示するだけ。jpg の展開も SIMD を使うことができる(改造した jpeg6b のソースコードが入手できる)。
    ファイルのロードが遅いかも知れないが 次のページを先読みすれば事足りる。

    普通に作ればもっさりなんかにはならないと思うのだが... android では難しいのかも知れない。

追記: Jz4770 も発表されていた。

    Ingenic のホームページを見ていたら Jz4770 が載っていた。180nm プロセスの Jz4740 -- 160nm プロセスの Jz4725B -- 130nm プロセスの Jz4760 と来ていたが いきなり 65nm プロセス。Ingenic はついに手に入れたようだ。CPUは 1GHz で 256KB の L2 付き。

    Jz4770 の機能自体は、Jz4760 を拡張したもののようだ。-- 気がついた拡張は、3Dグラフィックスと 100M Ether MAC 。あとクロックが上がったおかげで 1080p に対応できるようになった。USB は変わっていない。

    これが出れば だいぶ、ARM と張り合えるかも知れない。... といっても Cortex-A8 クラスとなんとか という感じ。

作ってみたいもの

  • NAS (のようなサーバ)

    必要な装置 : USB HUB , USB Disk , USB Network (WIFI or 100M Ether)

    基本普通に Linux でサーバを作るだけだが、UPS 機能を活かすにはだいぶ改造がいる。
    停電になったりすると USB Disk の方は電源が落ちる。で、ライトバックキャッシュを NAND Flash などにセーブしてからシャットダウン。再起動したときに USB Disk に書き戻す。

    ちなみに本体の WIFI は 12Mbps の USB に接続されているからサーバ向けには遅すぎる。WIFI にしたいとしても Hi-Speed の方にするべきだろう。

    Linux でサーバを作るというのも簡単ではないかも知れない。MIPS のディストリなどあっただろうか?
    まぁ ディストリがあろうがなかろうが、気にいったものに仕立てるのはおお仕事。玄人箱HG 向けに 自分 ディストリを作ったことはあるのだが、結構骨がおれた。

      Fedora も MIPS に対応してたのか。できたら、これをベースにしたい。... と思ったがすべて mips64el だった。

      rpm にしたいのだが、今なにがあるのだろう?

      ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/

      ここに RedHat-7.0 の mipsel.rpm があることは分かった。しかし .. 2001 年だ 古い!

      一応 rootfs の tarball はあるから chroot で動くかどうか試してみることは出来そう。

    LCD タッチパネルは、必須ではないのだが、せっかく付いているのだから 有効には使いたい。

  • PCにUSB接続して使うサブマシン

    必要な装置 : なし

    Linux の設定で、PCに USB 接続すると (USB ストレージではなく) Network でつながるようには出来る。これは、SmartQ5 で実験した。

    Network といっても PC とつながるだけ。PC 側でルータを動かさないと PC を経由して外部とはつながらない。これは、そういう使い方は想定しない。PC との接続のためだけに Network の仕組みを利用する。

    で、なにをするかというと なにはともあれ ファイルサーバ。そうしておいて PC からプログラムや 手順を書いたメモなどを読み込めるようにする。

    次の段階として、PC でアプリを動かして なにかの目的に使う。簡単なものだと フォトフレームとか、サブコンソールとか。あと、HTTP 経由でのメモ帳とか。

    わりとなんでも出来そうだが、PC 単体でできることなら意味が無い。USB メモリで事足りるものも意味はない。

  • dingux アプリを動かせるもの

    必要な装置 : キーボード

    dingux そのものといっても良いかもしれない。違うのはカーネル。(とブートローダ)

    ディストリは用意する必要はない。dingux 自体がディストリ。

    最初の 2 つは、別に これでなくても出来るのだ。SmartQ5 でも良いし tcc89xx の android マシンでも良い。だが、dingux 互換にするには Jz47xx でないと無理。

    以前 Jz4725B などでやろうとしていたが、途中で放置してしまった。当時は Jz4725B/Jz4755 は、Ingenic のカーネルはサポートしていなかった。(今はどうか知らない) 。一方 Jz4760 は ものが出来る前からサポートされていた。この差は大きい。 Jz4760 なら安易に作れるかも。

  • オシロとかロジアナとか。

    必要な装置 : 計測デバイス (USB)

    USB Host or OTG の先に キャプチャするデバイスを付けて コントロールする。ー 要するに PC の代わりにする。別に オシロとかロジアナみたいな高級なものでなくとも良い。arduino でデータを取って表示してログするだけでも有用な場合がある。

    PC でできることをこれでやる意味はある。ひとつは消費電力。あとは設置の自由度。PC が専有されないというのも魅力。

    それは良いのだが、電子工作のネタにしたい。できたら、USB 装置をケーブルでつなげただけというものには、したくない。もっと一体感があって専用装置と見紛うようなもの --- なんて考え出すとなかなか 進まなくなる。

クロックアップとスワップ

    携帯総合研究所:クロックアップとスワップでHT-03Aの動作を軽快に

    こんな記事をみつけた。スワップON/OFF するツールはあるようだ。... といっても ただのランチャーみたいなもので、動作させるスクリプトは仕込んでおかないといけない。

    クロックアップの方は使えるのだろうか? Linux でのクロック取得/変更の API はアーキテクチャ非依存で Jz47xx も対応していたような気がする。(うろ覚え)。たしか 最大周波数はブートローダから受け取った値を使っていて、それ以上に上げられないよう制限をかけていた。

    これを試してみる価値はあるかも知れない。

    ちなみに、SWAP ファイルは MicroSD に置いた方が良い。NAND Flash が壊れると いろいろ具合が悪い。 MicroSD なら壊れても交換可能だし、メーカと 全体容量にもよるが、なかなか壊れない。NAND Flash は良品が付いているとは限らない。中古品の可能性もある。壊さないよう大事に使うに越したことはないのだ。
    (ジャンクの PMP の基板を見るとたいがい NAND Flash だけがない。外して再使用されているとしか思えない。そして再使用先は、こういった安物の PMP/MID であろう。)

    注意!) これらの操作はシステムを壊す可能性があります。試してみるなら自己責任でお願いします。

注意!

    OSAKANA TAROのメモ帳:ronzi-a3関連』より:

    Market関連:
     Android Marketがあるが、おそらく非公式対応。このため時期により使えない場合あり。
     その他にHiApk(安卓市場)もインストール済み。
     Android Marketで検索すると、いろんなアプリが出てこないが、様々な要因があるようだ。
     OpenWnnやATOK系が出てこないのは、NDKを使っているためで、回避しようがない。

    MIPS なので ARM native のアプリは動かない。そこは割り切る必要がある。

    ファームウェアの完成度が低く 不安定でもっさりという情報もある。android として使いたい人にはお薦めできない。せめて PMP としての完成度が高ければ、とりあえずの使い道もあるのだが、それに関しての情報はまだない。

    一般の人にとっては、安いだけの android マシンで いまのところ魅力は少ない。カスタムファームウェアが出回るような状況にでもなれば魅力が出てくるかも知れない。

ファームウェアについて

    ちょっと アップデートファームウェアに含まれるファイルをチェックしてみた。

    ツールエントリ 実際のファイル名 サイズ ファイルタイプ
    mbr-xboot.bin mbr-xboot-60_rz43_1104280101.bin 862820(B) MBR
    boot.img boot_rz.img 2678(KB) ANDROID!
    recovery.img recovery.cpio.img 2984(KB) ANDROID!
    system.img system.img 219805(KB) ext4
    userdata.img userdata.img 67312(KB) ext4
    cache.bin cache.img 30724(KB) ext4
    vfat.bin vfat.img 8(KB) ZERO

    boot.img と recovery.img の先頭は、ANDROID! で始まっている。そういうファイルは、tcc89xx の Android マシンの アップデートファームウェアに含まれていた。

    tcc89xx (E7002とか)』の記事から抜粋すると

      boot.img と recovery.img は同じ形式で ANDROID! で始まる。たぶん ブートパラメータ+カーネル+initrd

        boot.img/recovery.img 詳細

        split_bootimg.pl を使うと kernel と initrd (と ブートパラメータ) を 取り出せる。
        kernel 自体は boot.img/recovery.img で同じものを使っている。
        initrd は、ASCII cpio + gzip のファイル形式。
        これを 展開すると ... init.rc やら init.tcc92xx.rc やらが出てくる。
        初期化でなにをやっているかは、これをチェックすれば良い。

        逆に 作り直すには、mkbootimg を使うらしい。これは未チェック。

    これらは、たぶん /dev/mtdblock に直接書き込まれる。それ以外は、たぶん ウェアレベリングを行う UBI が提供する ブロックデバイス 上に置かれるデータだろう。ファイルタイプ MBR としたデータは そのブロックデバイスの先頭に書かれるパーティションデータ。

    単に /dev/mtdblock に書きこむデータでも NAND FLash の OOB も合わせて更新しなければならない。そして更新するプログラムには、Linux カーネルそのものを使うのが理にかなっている。


      Linux で更新するのであれば、USB は一旦リセットされて違う ID に切り替わるのではないか? と思える。更新ツールのドライバは一体どの ID に反応するようになっているのか?

      このあたり、後で調べてみたい。

    まだ単なる推測に過ぎないが、boot.img/recovery.img のどちらかを USBBOOT で直接メモリに書きこんで Linux を起動して、ファームウェアを アップデートする仕組みなのだろう。

    (訂正) この推測は相当に間違っていた。USBbootTool.exe だし、今までにあった USBBOOT のツールの延長線上のもの。USBBOOT でしか動かないし Nand Flash などに書きこむ機能しかない。当然カーネルも送り込まない(はず)。で、書きこみ先も SDカードインターフェイスのストレージで Nand Flash ではないようだ。(後述)

    それはともかく、system.img を書き換えることで済むカスタマイズは割と容易だ。
    カーネルを置き換えたり、dual boot 化したり、ブートパラメータを変更したりするには、boot.img/recovery.img を編集する ことになりそう。


    $ perl ../split_bootimg.pl ../boot_rz.img
    Page size: 2048 (0x00000800)
    Kernel size: 2052096 (0x001f5000)
    Ramdisk size: 687722 (0x000a7e6a)
    Second size: 0 (0x00000000)
    Board name:
    Command line:
    Writing boot_rz.img-kernel ... complete.
    Writing boot_rz.img-ramdisk.gz ... complete.

    $ perl ../split_bootimg.pl ../recovery.cpio.img
    Page size: 2048 (0x00000800)
    Kernel size: 2052096 (0x001f5000)
    Ramdisk size: 1000538 (0x000f445a)
    Second size: 0 (0x00000000)
    Board name:
    Command line:
    Writing recovery.cpio.img-kernel ... complete.
    Writing recovery.cpio.img-ramdisk.gz ... complete.

    split_bootimg.pl はそのまま使えた。

    さて、initrd の方を見てみると...

    init.rc: # mount yaffs2 mtd@system /system
    init.rc: # mount yaffs2 mtd@system /system ro remount
    init.rc: mount ext4 /dev/block/mmcblk0p1 /system
    init.rc: mount ext4 /dev/block/mmcblk0p1 /system ro remount
    init.rc: mount ext4 /dev/block/mmcblk0p2 /data nosuid nodev
    init.rc: # Do this before we mount cache so eventually we can use cache for
    init.rc: #mount yaffs2 mtd@cache /cache nosuid nodev
    init.rc: mount ext4 /dev/block/mmcblk0p3 /cache nosuid nodev
    init.rc: socket vold stream 0660 root mount

    こんな風になっていた。... 変だ。予想と違う。UBI も見えない。... どうも 例の ピンの多いデバイスは、SmartQ5 で使っていた SanDisk の iNANDのような デバイスのようだ。

    4GB の Nand Flash が存在するが、たぶん使っていない。 (間違い: 後述)

    これは嬉しい誤算だ。Nand Flash の扱いは面倒で 自由に使うのは難しい。Android を捨てて別のシステムを入れるとしても、Nand Flash なら書き換え回数とか の仕様を 同じにしておかないとマズイところを 全く自由に使えるのだ。SmartQ は 1GB しかなく不足ぎみだったが、一応 2GB あるようだし、ひとつのシステムを入れるだけなら十分な容量。

    さて、UBI を使っていないなら、MBR のファイルは 物理的にパーティショニングしていることになる。どんなものなのかちょっと見てみると

    Device Boot Start End Blocks Id System
    /dev/block/mmcblk0p1 4162 12484 262144 83 Linux (/system)
    /dev/block/mmcblk0p2 13004 29648 524288 83 Linux (/data)
    /dev/block/mmcblk0p3 30298 31338 32768 83 Linux (/cache)
    /dev/block/mmcblk0p4 33289 254213 6959104 b W95 FAT32 (/??)

    ちょっと変。cache.img が 30724KB なのから考えると Blocks は 1KB 単位。system.img も 210905 KB だからちゃんと入る。... だが、FAT が 7GB も取っている。... これはとりあえず取っておいて、後ろは使わないということ?

    あと、Start がずいぶんずれている。大きな隙間だが ここに boot_rz.img とかが入っているのだろう。

    ところで、NAND Flash と SDカードインターフェイスの Flash の両方付いているのはなにか変。いったいどういう接続になっているのだろう?

    ようやく分かった。ieronziからダウンロードした ファームウェア のアップデートツールに SK6633 , SK6811 とかのキーワードが含まれていた。SK6633 というのは、NAND FLash を MMC/SDカードインターフェイスに変換するコントローラ。SDカードの中身みたいなもので、あんまり高価なものではないのだろう。

      正確には、JEDEC eMMC4.41 対応 だそうだ。(SK6633 は eMMC4.4) バス幅は、x1,x4,x8 だが、MSC0 から ブートするためには x4 である必要がある。

    直接 NAND Flash を扱えるのに わざわざこのチップをいれているというのは、扱いやすさを狙ったものだろう。ただ、ウェアレベリングがどのレベルで実現できているかは不明で、アテにするのはマズイかも知れない。


      不明だったチップはこの写真の右。


      shindoのブログ:SDカードの内部 より引用

      SDカードの中に入っているのはこれ。--- 見たことがある チップの形だと 思ったのだが、思い出せなかった。これですっきりした。

もうすぐ

    ぽちったのが、日本郵便のトラッキングに出るようになった。あと 1週間前後だろう。

    adb で接続すれば、root で操作できるらしい。とりあえず /proc をチェックしたり どんなドライバが使えるかチェックしたりするつもり。

    あとは、MIPS 版 RedHat 7.0 を chroot で動かしてみる。うまくいくようなら、これで自分ディストリをビルドしてみる。

      ビルドするだけなら、chroot の環境があればなんとかなる。(メモリが足りなくなるはずで、swap は必要)

      どのディストリをビルドするかについては、悩ましい。Redhat 7.0 だと古すぎるのだ。それに どのディストリも膨大だ。

      実は、玄箱 HG 向けに 自分ディストリとして、RHEL 4.0 を シュリンクしたもの(GUIなし) を作っている。 これも新しいわけではないのだが、一旦これを作ることを目標としようかと思う。

      同じものが出来たら、これを元に さらに新しいものをビルドするかも。新しくするときの やりかたは、arch にあまり関係ないので そのときは 玄箱 HG も合わせてバージョンアップするつもり。

      こういう古いものから作っていくのは、けっこう難しく面倒。挫折するかも知れない。

追記:7/20 到着 とりあえず記録

  • MID とのみ書かれた箱が, プチプチに包まれて 外箱?(箱じゃないかも) にはいっていた。

  • 備品は、USB 型 AC アダプタ (5V , 1A) と USB ケーブルのみ。

  • 本体右下 ロゴが入るところは、MID とのみ刻印 (写真とおなじ)。

    削った痕跡もない。

  • 充電は 82% ぐらいで即電源が入った。

  • Welcome が出て android

    Ronzi A3 そのものではないということ。正規の OEM品ということだろう。

  • 言語は日本語に設定してあった。

    これは、ちょっと好印象だった。そこまでの動作確認が出来ているということで、初期不良の可能性がかなり減る。-- 海外通販で一番嫌なのは初期不良での交換だから、嬉しい対応。

  • 日付はあっていたが、タイムゾーンは GMT のまま。

  • 端末情報:

     モデル番号 RK43
     Androidバージョン 2.2.1
     カーネルバージョン 2.6.32.9
     ビルド番号 RK43_60WFRT_RZA3_20110504_1

  • いまのところ、adb に接続できていない。

    SDK が古いかもということで、ダウンロード中。

    ところで、Linux から 見える USB の情報

    T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#= 12 Spd=480 MxCh= 0
    D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
    P: Vendor=18d1 ProdID=dddd Rev= 2.16
    S: Manufacturer=Ingenic
    S: Product=USB Mass Storage
    S: SerialNumber=INGENIC108A
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
    I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
    E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
    I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms


    Product名が、"USB Mass Storage" になっているので勘違いしないよう注意。USB のインターフェイスは 2 つあって、#0 が USB MassStrage Class 、#1 が Android adb 用。

    adb 用といっても 専用の USB デバイスという気がしない。Linux の USB Gadget の 1 つを 使っているだけに思える。

  • adb が使えるようになった。原因は、inf の編集をする所を間違えたためだった。(amd64 の所を書き換えていた)


    # cat /proc/cpuinfo
    system type : JZ4760
    Hardware : lynx
    processor : 0
    cpu model : Ingenic Xburst V4.15 FPU V0.0
    BogoMIPS : 525.92
    wait instruction : yes
    microsecond timers : no
    tlb_entries : 32
    extra interrupt vector : yes
    hardware watchpoint : yes, count: 1, address/irw mask: [0x0fff]
    ASEs implemented : mxu
    shadow register sets : 1
    core : 0
    VCED exceptions : not available
    VCEI exceptions : not available


    そうそう、Jz4760 から FPU が付いたのだった。
    BogoMIPS 525.92 ... ってことは 526 MHz ?
    microsecond timers がないから MIPS32 互換じゃなくて準拠だとか。


    # cat /proc/meminfo
    MemTotal: 184792 kB
    MemFree: 6228 kB
    Buffers: 3116 kB
    Cached: 47776 kB
    SwapCached: 0 kB
    Active: 67200 kB
    Inactive: 76676 kB
    Active(anon): 44040 kB
    Inactive(anon): 50584 kB
    Active(file): 23160 kB
    Inactive(file): 26092 kB
    Unevictable: 1352 kB
    Mlocked: 0 kB
    HighTotal: 0 kB
    HighFree: 0 kB
    LowTotal: 184792 kB
    LowFree: 6228 kB
    SwapTotal: 0 kB
    SwapFree: 0 kB
    Dirty: 0 kB
    Writeback: 0 kB
    AnonPages: 94348 kB
    Mapped: 29360 kB
    Shmem: 288 kB
    Slab: 6896 kB
    SReclaimable: 1620 kB
    SUnreclaim: 5276 kB
    KernelStack: 1960 kB
    PageTables: 3792 kB
    NFS_Unstable: 0 kB
    Bounce: 0 kB
    WritebackTmp: 0 kB
    CommitLimit: 92396 kB
    Committed_AS: 2705840 kB
    VmallocTotal: 1015800 kB
    VmallocUsed: 76316 kB
    VmallocChunk: 934396 kB

    MemTotal 184792 kB ということは、256 MB から 77352 kB も抜かれていることになる。
    フレームバッファとか TV 出力とか 2D アクセラレータとか IPU とかで使う最大サイズを割り当てていくとこういうことになるのかも。
    184MB の内訳で注目するのは、(anon) と (file) 。
    (anon)の合計が 94624 kB 。Swap の対象はここ。
    (file)の合計が 49252 kB 。これは、ファイルのキャッシュ。

    Swap を設定していなければ、(anon) は減らない。アプリを起動していくと (file)を食いつぶしていき、それでも足りないと Linux が 適当に選んだプロセスを kill していく。ここに至れば正常動作ではなくなるが、その前に (file) が少なくなりすぎると 異常に遅くなる。

      ちなみに、プログラムのコード(text) は、(file) -- ファイルのキャッシュに 含まれる。遅くなるのは、再ロードが頻発するため。

    特にアプリを起動してないのに anon が 94MB もあるのは、相当に厳しそうな感じ。

    追記: 立ち上げ直後の Meminfo を再度チェックしたら (anon) の合計は、57 MB だった。あと、総メモリは、command line で mem=192M と指定していた。

    64MB ものメモリを何に使っているのか? 昔見たソースだと IPU 用のメモリなどは カーネル管理のメモリから割り当てていたのだが...

    ところで、dmesg をみていると SDカードを認識する前で

    JZMMC: CMD5 error report--Timeout while responsing
    mmc:jz_mmc_stop_dma
    JZMMC: CMD5 error report--Timeout while responsing
    mmc:jz_mmc_stop_dma
    JZMMC: CMD5 error report--Timeout while responsing
    mmc:jz_mmc_stop_dma
    mmc:jz_mmc_stop_dma
    JZMMC: CMD5 error report--Timeout while responsing

    というメッセージが出ている。stop_dma が 2 個連続で出ているところを見ると システム用と 挿した microSD の 両方とも 同じ現象のようだ。 JZMMC のドライバがバグっているのでは?と思えてくる。

    あと、ソースコード自体は、cpufreq をサポートしているはずだが ...

    /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

    とかは確認できなかった。

    Linux を見ると arch/mips/jz4760/cpufreq.c がソースコード。

    MAX_FREQ = __cpm_get_cclk() / 1000;
    /* in kHz. Current and max frequency is determined by u-boot */

    というコメントがあり、boot のパラメータで 最大周波数が決まることが分かる。さらに付け加えておくと、好きな周波数にできるわけでなく、 MAX_FREQ の 1/2 , 1/3 , 1/4 ,1/6 ,1/8 にできるだけのようだ。 そうなると BogoMIPS の 526 MHz が MAX_FREQ で 600MHz には決してできないように思えるのだが ...

    コードや jz4760_pm を見ると、boot 時の クロック の設定をそのまま使い、CCLK(= CPUクロック) の 最終段の分周器 を変更するということらしい。PLL は 2 つあるのだが、デバイスにも供給するので、動的に変更したり、好きな値を設定するものではないようだ。

    ちょっとオーバークロックにしてみるとかが出来なくて残念。ただ、クロックをどういう風に供給するかちゃんと設計した上で、安全な PLLの設定変更の方法が分かれば 動的に変更できるようになるかも知れない。

電源Off で充電できるか確認

    Jz47xx の 中華PMP だと USB に電源を接続すると必ず 無意味な充電アニメーションを表示していた。
    こいつは、USB に電源を接続してもなにもおきない。充電ランプもないから充電しているかどうかはハッキリとは分からない。

    もし本体で充電制御していたら、電源Off では充電できないことになる。不安なので一度確認してみることにした。

    結果は OK 。問題なく充電できた。

    実を言うと、2台買ったうち1台液晶を割ってしまった。結局、他のものに使うしかなくなったのだが、それは望むところでもあって液晶がないことは大きな問題ではない。ただ、本体で充電制御していたら厄介なのだ。これで野良カーネルでも動かせそうで安心した。

    ちなみに、ボタンだとか、USB,MicroSD の detect,スピーカーON/OFF 等 GPIO の割り当てを発見しないといけない。-- Jz47xx はピンが多いから単純な 1:1 の割り当てだと思えるのでそれほど苦労しないと思うが面倒ではある。

    話題が飛ぶが、Jz47xx 自体は、ハイバネーションやサスペンドをサポートする機能を持っている。例えばSDRAM を セルフリフレッシュモードにして、消費電力を押さえるとか.. だが Ronzi A3 とかは サスペンドにしても消費電力が多いようだ。まぁ Note PC でもイマイチだし、他の中華 Android でも事情は同じようなもの。大メーカが作ったスマートフォンだけがまともに対応しているような気がしてくる。

    中華 Androidは、いろいろ出ているが、チューニングという点では、ほとんど期待できない。コストをかけられないのだから、そういう傾向になるのは、必然と思える。だから、CPUの開発元がカーネルソースとかドキュメントを公開しているものを選ぶべきだろう。さらにいうと、カーネルの 置き換えに失敗したりして、動かなくなっても再インストール可能なものが望ましい。そういうものでないと カーネルを改造しようとする人が現れない。

    Ingenic は、Android としては 遅いのが難点だが、メーカが頑張っているし 今後は期待できそう。Jz4770 の機種が出るころには、買いというレベルになっているかも知れない。

追記: Jz4770

  • ftp://ftp.ingenic.cn/3sw/01linux/tmp/

    を見てみたら、

  • jz4770-20110610.rar 96465 KB 2011/06/13

    こんなものがあった。ダウンロードして覗いてみたら、vivante gpu の SDK やらそのドキュメントなどが含まれていた。カーネルや U-Boot のパッチなども含まれ、jz4770 の開発に必要な一式が入っている感じ。

    何時 Jz4770 が出荷されるのか知らないのだが、このぶんだと意外に出荷が近いのかも知れない。2次キャッシュ付きの 1GHz だが、RK2918 などの Cortex-A8 と同じようなもの。ARM でないというハンデがあるから、 RK2918 より高いということはないはず。きっと求めやすい価格帯で Android マシンが出てくるだろう。楽しみだ。

追記

ronzi A3 は、bigpad でも 扱っている 価格は、5300 円前後と安いが、別途送料がかかる。日本語のサイトだが 場所は中国。aliexpress のようなものみたいだが、Paypal やクレジットカード以外に、デビットカード、またはE-チェック(お客様の銀行普通口座を使用する)が使えるとのこと。

日本語は怪しいが、怪しいサイトではないようだ。中国のbigpad.jpからタブレットPCが無事届きました。 というレポートがあった。

追記:

G500 が 9480円で発売された

5 inch 800x480 で GPS 付き。マウンタがあるように、カーナビを意識したつくりで、G センサはたぶんない。

GPS に価値を見出すなら、良さそうな感じ。ただ、感圧式タッチセンサーはイマイチらしい。

値段的にはどうなんだろう? 450 元 なら x12.5 で 5625 円。4 割増しなら 7875円。ショップで買えるのならこんなものかな。

MIPS Androidの簡単なまとめ によると jz4760 android が中国で続々出ている。良いことだ。

ちょっと taobao を検索してみた。

  • IQQ M1 (溶智 A5) は、だいたい 399元。だが、最も売れている所は、369元。

    これ、カラーバリエーションがあるようだ。

  • IQQ M2 369元。M2 が既に出ている。値段も変わらない。辞書が付いたのが違い? -- 日本人にはメリットではないが ...

    消費電力が少ないことを謳っているようだ。1800 mAH で 4-5 時間使え、サスペンド(9mA 消費)で 200時間持つみたいなことが書いてある。ライバルは、RK2818 (not RK29xx) -- まぁそうだろう。

    改良したのなら、A3 のファームウェアも出して欲しい。

    追記 メーカーページ http://www.soiqq.com/

    ここを見ると M1 も 辞書がある。消費電力についての記述も同じ。(動画再生時 390mA で 4.6時間、サスペンド 9mA で 200時間保持)。また、両方とも JZ4760B で 660 MHz だそうだ。

    さらには、M? なんて機種も載っているのだが ... これまた同じ。いったいどういうことなのだろう?

    ところで、メーカーページには、ダウンロードのコーナーがある。firmware がダウンロードできるものしか選ばないつもりなので、firmware が出たら購入を検討するかも。

      firmware がないと、いじった後、元に戻せない。CFW も出る可能性がないわけで、いくら良さそうでも買うつもりはないのだ。

  • 博派 Q700 (カメラ付き / GPS なし) は、399元

  • 博派 Q720 (カメラなし / GPS 付き?)は、450元

  • 博派 Q500 (カメラなし / GPS 付き 5inch)は、450 元

  • 山水 V608 は、368元前後。-- これカラーバリエーションがある。よくみると、RK2818 なんて書いてある。

  • 山水 V616 は、結構ばらつきがある。488 元としておく。

    これ、FLASH 10.1 なんて書いてある。本当? CPU は、、ちゃんと JZ4760B と書いてあるんだが...

      ... ググると ヒットする。FLASH も MIPS 版が出ているのか。

  • 山水 V618 は、500 元。

  • KTMID 390元

    なぜか安くなっている。Q700 の値段を見れば、こんなものなのかも。

    ところで、カメラ付きのモデルの魅力に気がついた。もちろんカメラを使うのではない。-- カメラ用に出ている I/O を別の目的に使うのだ。

      ほとんどの製品は、製品に不要な I/O は線を引き出しておらず使えない。カメラインターフェイス(CIM) と共用になっている機能は結構あるので、なにか拡張するのに使えるかも知れない。

      データシートを見ると CIM と共用なのは、TSSI/SSI1/MSC2/EPD だそうだ。あと すべてのピンは GPIO にも使える。カメラ用インターフェイスはあまり知らないのだが、D0-D7 , PCLK/HSYNC/VSYNC/MCLK の信号線がある。これらを全部使うものなら、TSSI/SSI1/MSC2 といったシリアル系の機能 が使える。TSSI は、TS Slave Interface だが TS のストリームを出力する装置などないだろうから無視。EPD(Eink ディスプレイ?) は Display のインターフェイスらしいが、他のピンと合わせる必要があり使えない。SSI は、SPI を含むシリアルインターフェイスで、MSC2 は MMC/SD カードインターフェイス。

      MSC は、USB device の次に高速なインターフェイス。SDIO や SD カードに使う手もあるが、電子工作的には、FPGA をつなげたりすると面白いものが作れるかも知れない。

      ちなみに、カメラ付きは、Q700 と KTMID のようだ。

  • ronzi A3 の液晶 65元

    関係ないが、ronzi A3 の液晶だけ売っているところを見つけたのでメモ。ただ、わざわざ買いたいとは思っていない。taobao で買う機会があれば、これも買っておこうという程度。

    65 元 x 12.5 x 4割増し = 1137 円。随分安いようにも思えるが、単品で買うなら 4割増しでは済まないし、なにより面倒。

  • VX530LE/VX570/VX585HD 用液晶 46 元
  • 麦迪 T953 M17FHD M15L M16HD M16HD T955 T951用液晶 45元
    なども見つけたのだが、どれも同じに見える。ただ、タッチパネルを付ける端子はあるもののタッチパネル自体はついていない。
  • VX580R VX575 VX620 VP30 VP40 用タッチパネル 18元
  • VX530T VX530VX570T用タッチパネル 13.5元
    タッチパネルは、別売のようだ。同じに見えるのだが、この微妙な価格差はなんだろう?

    それはともかく、液晶まるごとなら、65 元の方が無難そうだ。タッチパネルのみなら、
  • Repair Parts Replacement Touch Screen/Digitizer for 4.3" GPS $4.92 (dealextreme)
    というのもある。ケーブルがすこし長いようだが、付けられないわけではなさそう。

    4.3inch の調査はこれぐらいにしておこう。

    ところで、原道N5 内屏 で検索すると、原道N5 の液晶が出てくる。よくよくみると 40 pin で 4.3inch のものとピン数が同じ。-- ひょっとすると 互換性があるかも。(注意: 800x480 なので接続できたとしても、カーネルその他の 再ビルドが必要。-- 普通手に負えない。)

    メモ: 40 pin タイプの信号線

    (参考: PSP Type)
    1 : LEDK GND
    2 : LEDA GND
    3 : GND VCC(2.5V)
    4 : VCC VCC(2.5V)
    5-12 : R0-R7 ←
    13-20 : G0-G7 ←
    21-28 : B0-B7 ←
    29 : GND ←
    30 : CLK ←
    31 : DISP (Display On/Off) ←
    32 : HSYNC ←
    33 : VSYNC ←
    34 : DEN (Data Enable) N.C.
    35 : N.C. AVCC(5V)
    36 : GND AVCC(5V)
    37 : XR (touch panel) N.C.
    38 : YD (touch panel) TEST1
    39 : XL (touch panel) TEST2
    40 : YU (touch panel) TEST3

    注意) PSP 用の液晶も 40pin だが、一部共通のところがあるものの、互換性はない。

おまけ、本当に 4割増しで買えるのか?

    タオバオ新幹線』が、明朗そうなので、ちょっと検証。

    上記の IQQ M1 を 369元 で 買うとする。国内送料が書いてないが、12元かかると仮定しておく。日本への送料は、500g 以内なら 130 元。 半額セール中で 65元のようだ。

      商品の重さ + 500g だそうだ。IQQ M1 は 400g で、170 元。これの 50% だから 85 元が正しい。

      ちなみに、369元のところは、中国国内送料は無料。


    為替手数料 は、1元につきプラス 1.5円 (レートは、12.5 円で 14.0 円 -- 手数料の割合は、12% )
    代行手数料 は、9,000円以下の商品を買い付けた場合 980円。(それ以上は 9% )

    計算すると 7336 円。一方、商品自体の値段は、369 x 12.5 = 4612.5 円。

    倍率は、1.59 倍で とても 4 割増しに収まらない。さらに Paypal だと +3.5 % で 1.65 倍まで上がる。

      4 割増し というのは、それ以下で買うのは難しいという基準のつもり。もし、国際送料を無視できるなら、Paypal 込み でも 1.42 倍に収まる。

    これぐらい余計にかかるのなら、aliexpress や dealexpress といったところで発売されるか、国内で発売されるのを待った方がよさそう。(あれこれついでに買うものがあれば別)

    例えば 450 元の G500 が 9480円なら 1.69 倍。あんまり変わらないように見えるが、初期不良の対応がまったく違う。

    追記: 結局 ここで M1 を買うことにした。

      M2 を買いたかったが、予約みたいなので諦め。ちなみに M2 はボタンが銀色。-- それ以外の違いは分からない。ちなみに、液晶とかいろいろ一緒に購入している。

        あ、ボタンの位置や数も違う。筐体の厚みも違うかも。

      中国人スタッフもいて、電子部品のような面倒そうなものも扱ってくれるようだ。

      重量を先方に聞いて国際送料を計算し、払込は 1回で済ますようだ。ただ、IC 1個 100g で 9個で 900g となってしまう例もあった。(トレイ付きとはいえそんなはずは ...)

      そうそう。振込先は、楽天銀行 or 東京三菱UFJ 。

追記 2011/9/29 IQQ M1 入手

    これは、普通に Android として使うために購入。別記事を立てようと思うがとりあえず。

    デザインは、無骨でただの直方体のよう。ボタンも白で目立たない。

    電源ボタンは、イヤホンジャックの横。上面左側に、キャンセル、メニュー、ボリューム +/- の 4 つのボタン。

    電源 Off のまま USB で接続すると ... PMP で良く見るような充電のアニメーションが表示される。カーネルを立ち上げていないようで結構凝ったつくりになっている。(ちなみに、サスペンド状態ではなにも表示されない)

    さて、起動。起動時間は、Ronzi A3 と似たようなもの。画面上部にガチャピンのようなアイコン。-- これは、Advanced Task Killer というものだそうだ。

      こういうのを標準として入れてくる。

    ホーム画面?は、Gセンサーに追従するが、アイコンとかパーツ毎にリドローしているような...でももっさり感はあまりしない。

    もっさり感バリバリなのが、Angry Birds 。スクロールもガタガタだし、紙芝居的。背景を表示しないようにすると、まぁ遊べるようになる。ほおっておくと画面が暗くなって 最後にサスペンドするので要注意。

    それに比べて動画は問題ない。付属のものしか見ていないが、まぁ良いかんじ。ちなみに アプリは、Media Player

    サスペンドでは、サウンドの回路も Off しているようで、ポップノイズのような音が聞こえる。問題は、サスペンドでどれぐらい持つかだが、200 時間は無理でも結構持つヨカン。
    Wifi を 自動 Off してくれるかどうかは、ちょっと疑問。M1/M2 のファームを比較してみたのだが、M2 で入っていた off するプログラムが M1 では入っていない。

      サスペンドは、問題ないようだ。全然バッテリーが減らない。

      時計のアラームをサスペンド中に設定しても、ちゃんと鳴る。ただ、スピーカーの音が小さすぎて目覚ましにするのは厳しいようだ。


    たぶん、もっさりと評される部類だが、私はサスペンドの方を評価する。もっさりは、Dalvik turbo で多少改善するかも知れないし。あとは、安定していたら、とりあえず合格。

    ところで、持ち運ぶためのケース

    Stylish 4.3inch Protective Leather Case for SmartQ V5 - White $3.54

    というのがぴったり。Smart Q5 とほぼ同じ外見だから当然だが、4.3 inch の Ronzi A3 でもフィットする。

追記 液晶交換

    液晶を割ってしまった 1号機 の液晶を交換した。

    交換に使ったのは、これ -- VX570R用(58元)。Ronzi A3 用のものが 65 元であるのだが、つい安いのを選んだ。

    結果は OK 。タッチパネル のキャリブレーションに不安があったが 問題なし。

    これで復活はしたのだが、いじっている間に バッテリーのケーブルが外れてしまった。

    もともと開発用だし、バッテリーは交換用として 保存しておき、常に USB ケーブルから電源元を取って動かすことにしよう。常時電源をつないでおいてもバッテリーのことを心配する必要がない -- まぁ、これはこれで メリットがないわけではない。

    ケースに収めるかどうかも未定。ネジが 5 つあってケースに基板を固定している。ネジをつけなくとも ケースがしっかりホールドしてくれそうなのだが ... ついでに無線LAN を外して USB HOST を引き出したいし。しばらくは裸のままにしよう。

    ついでにメモ バッテリーのプリントは、

    P325080
    KY 20110426

    50 mm x 80mm x 3.2mm 厚 -- 1400mAH とのことだったが、容量は書いてない。  

    オリジナル液晶

    KD430G18-40NB-A1
    20110331=1

    タッチパネル BB253C<U>

    バッテリーがない場合の不具合

  • 日付が元に戻る -- これはしょうがない
  • サスペンド状態になると 終わる。REBOOT するしかない。

    充電中はスリープモードにしない -- というのは効いているかも。

追記: Ramos V65pro

    Ramos の V65Pro というのも Jz4760/B らしい。taobaoで検索してみたところ、Ronzi A3 とほぼ同じスペックだが、数が出ているように思える。価格も 299元とか。あと、Gセンサがあるようだ。

     参考記事: http://pad.zol.com.cn/248/2489410.html
     メーカーページ: http://en.mumumusic.com/v65pro/spec.html -- Jz4760B だった。
     ファームウェア: http://www.ramos.com.cn/support.php?product_id=58
         RK43A_60BWFRT_RAMOSV65_20110817_1 (2011-09-13 , 244MB)

    Onda VX570R も似たスペックで 250元とか少し安い。だが、肝心の CPU は 何か分からない。RK28xx ?
    まぁ関係ないのだが、液晶を流用したので、どんなものか知りたかったのだ。

    ところで、ファームウェアを書き込むツールは、Ingenic が公開している。

  • ftp://ftp.ingenic.cn/3sw/00tools/usb_boot/

    バイナリだけでなく、ソースも公開されている。ソースコードを見てみたのだが、すなおにファイルのデータを書いているような...

    bin ファイルは 1 つで 400 MB ぐらいある。このファイルに含まれるのが、system までならこれぐらいのはず。もし、system に 他のパーティションの tar ファイルが含まれているのなら、system までがあれば良いようにも思える。ちょっと解析してみたい。

      だいぶ分かった。

      00: 4e 49 42 00 07 00 00 00 34 00 00 00 07 00 00 00 NIB
      01: bc e8 5c 18 88 07 00 00 fc 1a 0d 00 fc 42 39 00
      02: fc 32 6a 00 fc 92 a8 0c fc fa ac 0f fc 0a 8d 11
      03: c0 dd cf 06 88 07 00 00 74 13 0d 00 00 00 00 00
      04: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      先頭は、"NIB" で始まっている。-- これから NIB ファイルと呼ぶことにすr.
      NIB 以降は、little-endian で 4 バイトづつの 値が入っている。

      最初の 0007 は、セクションの数。mbr-xboot.bin,boot.img,recovery.img, system.img, userdata.img, cache.bin, vfat.bin の 7 つのファイルに対応している。

      0x10 の 185ce8bc ファイルサイズで、次からの 7 つのエントリが それぞれのセクションの オフセット。

      これだけ分かれば、取り出すことができる。だが、その次のデータは何なのか?
      たぶん書き込み位置を示す情報だと思うのだが、0 が多い。また、先頭が 0x788 で、ファイル上のオフセットと一致する。いまのところ、これだけしか分からない。

      個々のファイルを取り出す コード をとりあえず作った。

    • split_nib.c



posted by すz at 01:11| Comment(19) | TrackBack(0) | Jz47xx