2019年03月21日

SBCラック (まとめ)

sbc-rack1.jpg

SBC-heatsink8.jpg
SBC-heatsink4.jpgSBC-heatsink5.jpg
SBC-heatsink6.jpgSBC-heatsink7.jpg
SBC や HUB, 電源を載せるラックを検討してきた。結果をまとめておこうと思う。

SBCラック

    sbc-rack2.jpg
    エヌアイシ・オートテック(NIC) では、90mm 幅の ベーシックフレーム AFS-1590 というのを好きな長さで切ってもらうことが出来る。これをを 140mm に切ったものを ヒートシンク+棚板とするのが基本的な発想である。これを取り付ける支柱は、スライドドアフレーム AFR-2030 275mm 。20mm のアルミアングルに放熱フィンが付いたような形状をしている。
    これだけだと、ひし形に歪んでしまうので、ブラケットを付ける。図では、アルミアングル AFL-2020 を 15mm で切ったもの。これでも良いのだが、少々気に入らないので、AFSR-2020 15mm に変更しようと考えている。

      アルミアングル にタップして取り付けているのだが、ネジ穴を完全に垂直でできるわけがなく気に入らないのである。裏からナットで止めれば良いのであるが、・・・というかそれが一番かもだが、デザイン的に AFSR-2020 を使ってみたい。これを止めるには、スリットに四角ナット 8mm を入れる。六角レンチの iso7380 のボルトでガチガチに締めるのだ。

    なにをどのように載せるかによるが、天板・底板を 木材で作っても良い。90mm 幅の ファルカタ・桐材を使おうかと。高価な木材だと意味がないが、これだと格安に作ることが出来る。いや・・・値段ではないのだ。必要があって AFS-1590 を使う。強度も放熱性能も必要がないところに使うのはいかがなものかと考えてしまうのだ。木材では、最初は木ネジで済まそうかと。何度も付けたり外したりして、ネジ穴が怪しくなってきたら、Injection nut なるものを埋め込んで対処するつもり。

    また、パネルを一応付けられるようにと考えた。 長辺を正面として、サイドには 12mm の両方メスのスペーサ、正面には 18mm のスペーサを使おうと考えている。なんというか アクセスするのに不便だし、デザイン的にも取ってつけたようなものになりそう。いらないとは思うのだが、付けたい理由ができたときのため最初から検討しておく。

      AFSR-2020 の場合困ったことになるのだが、スリットに iso7380 の頭を入れて、裏に六角レンチが入る穴を空けようかと。径は M4 だと 4mm あれば良いようだ。レンチは 2.5 。

    書き忘れたが、ネジ・ナットは全部 M4 。結構な数が必要で、コストもばかにできないぐらいになる。

続きを読む
posted by すz at 06:27| Comment(0) | TrackBack(0) | 日記

2019年02月27日

HYSTOU MINI PC

デスクトップ Linux マシンを新調することにした。
もう何年も使っているし、調子悪いし。ファンの音も怪しいし・・・というのが一応の理由ではあるが・・・
いろいろ検索しているうちに欲しくなってしまったのが、本当のところ。

hystou-p12a.jpg
買ったのは HYSTOU というメーカの製品。産業用?
    CPU N3160
    メモリ SODIMM DDR3L (2 - 8GB)
    ストレージ SATA x1 (2.5inch ベイ) , mSATA スロット , mPCIe スロット(wifi 専用)
    USB USB3 x2 , USB2 x4
    HDMI x2 , COM port
    GbE x2
    13.9 cm x 12.8 cm

こんなスペック。GbE が 2 ポートあるのが気に入った。産業用は2ポート付いているものが結構ある。ルータにするのではなく、性能のためでもなく、おそらく冗長性のためである。あるいは、イントラネットと物理的に切り離すためかも。で、ちょっと設計が古そうでもある。産業用は長期間供給するのが重要なので世代交代はあまり頻繁ではなかったりする。

    NIC は Realtek RTL8111E。マザーボードの写真でカニチップが 2 個見える。(1つは mSATA の下)。個人的に 2ポートあると嬉しいのは仮想化。パススルーを使うとオーバヘッドが低減されるのだが、デバイスをまるまるゲストOS に渡さないといけない。HOST で1つ使うなら 2 個必要。もし DMA engine が使えるなら、優位性がないという気もするが。(VT-d はサポートされてなかったから関係なかった)

    あるいは、2台のゲストOS を稼働させても良いかも知れない。メンテナンスは COM port のみとか。

    そういえば HDMI が 2個あるが、こちらはパススルー出来るのだろうか?

最初に見つけたのは、GeaBest のここ 。mPCIe wifi が付いて $136.99 。

で、何気に aliexpress を見たら、こんなショップが。

hystou-p12.jpg
Nano ITX マザーボード単体 でも買えて $90.53 。ベアボーンが $124.69 〜。
Wifi いらないので こちらのベアボーンにした。他のオプションもなし。

マザーボード単体は、SBC のようなもので、最初それでも良いと思ったのだが・・・

    ARM の SBC が大型化してきている。高性能化で電力消費もより大きくなって 12V 電源のものも増えてきている。裏面に SoC を配置して 大型ヒートシンクを裏に付けるタイプもちらほら。12cm角の Nano ITX までにはなっていないが、あまり変わらないような気がしている。

hystou-p12b.jpg
CPU が裏面にあって、ヒートシンクを自前でなんとかしないといけない。固定用の穴が開いているが汎用のものなどなさそうに思える。
35mm 角の対角線に穴が開いているような感じで、50mm 角とかのヒートシンクを加工しないとダメそうだ。干渉するフィンも削らないといけなくて難易度が高い。その上、なにもない裏面に付けるのは収まりが悪い。
hystou-p12c.jpg
120mm x100mm 7mm 厚のヒートシンクが見つかった。これを使ってボード自体の取り付け穴にマウントすることは出来そうだ。ただし 7mm 厚の所に穴を空けなくてはならない。全体を取り付けるためのネジ穴も別に必要。・・・まぁめんどくさいのである。

N3160 は TDP 6W (マシン全体の消費電力は 12W) 。こんな大きなヒートシンクは必要さそうだが、致し方ないだろう。

・・・とか考えたが、結局は安易にベアボーンにした。ケースがヒートシンクになっていてなにも考えなくてよい。$35 ほどの追加でACアダプタと SATA ケーブルが付くわけで、むしろ安いのかなとも思う。

    CPU を J3160 に変更するオプションもある。だが、機能的には同じみたいなので、パス。

あとメモリは買わないといけない。(HDDは持ってる)。 アマゾンで DDR3L の 8GB が 4300円 ぐらいだったので、これもポチった。

    このマシンではないが、HYSTOU FMP06 N3160 でググるといくつかレビューが見つかる。BIOS は、仮想化に対応している・・・当然か。BIOS の設定がやたら多く、デフォルトが適切ではないらしい。要注意。

      Over Clocking mode
      Boot Performance mode
      EIST ( Enhanced Intel Speedstep Technology
      このへん。
      あとデバイス関係が、無駄に enable されてるらしい。

    熱が籠るという問題もあるらしい。内蔵 mSATA が熱暴走とか。BIOS の設定も関係ありそうなんだが、気にかけておこう。もし問題が起きたとしたら、ケースの放熱を良くすれば良さそう。ヒートシンクをケースに張り付ければ良いのではないかと思う。12W だし普通に使う分には問題なさそうだが・・・


追記 2/28 発注 3/5 到着

付属品は、SATA 電源ケーブル, SATA ケーブル, AC アダプタ (12V 3A), VESAマウント用の鉄板, CD , ユーザマニュアル、保証書、マウスパッド(緩衝材?)

OS を何にするかは、考え中。Oracle Linux 7.6 が候補。? RHEL クローンの1つで、ARM 版もあるし。ソースRPM も iso ファイルで手に入る。(2枚組)。私のネットワーク環境は貧弱なので、どこかで一気にダウンロードしたい。そうするために都合が良いのである。ARM も込みだと 6枚。

x86_68 版は、ISO を USBメモリに焼くには、rufus を使うと良いらしい。

    ARM 版は、どうするべきか? 先にインストールした PC の Linux で、rpm を 空の FS にインストールしていく。u-boot とカーネルは armbian のものを使う。かなりの手間だが、以前にやったことがある。なんとかなるだろう。

    CentOS の ARM 版は、Disk イメージがあるので、rpm のセットを参考にしても良い。なぜ CentOS をそのまま使わないかと言うと、作業を通じて何が入っているのか把握したいため。

     ・http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos-altarch/7.6.1810/isos/

ダウンロードをようやく完了した。あとはボチボチやっていこう。続きを読む
posted by すz at 22:28| Comment(0) | TrackBack(0) | 日記

2018年12月15日

JMS578/JMS567 USB3-SATAブリッジ

JMS578/JMS567 という USB3-SATAブリッジチップがある。USBディスクなんかでよく採用されてて有名なもの。まともなデーターシートなど入手できないが、回路図はあるのである。続きを読む
posted by すz at 15:41| Comment(0) | TrackBack(0) | 日記

2018年12月07日

Nanopi M4 購入

RK3399 のボードを買おうかとずっと思っていたのだが、Nanopi M4 にした。

基本的には、ビルドしたりするだけのサーバマシンの用途。CPU が高速でメモリが多いものを希望していた。
I/O は、GbE は必須として、ストレージ。native SATA が良いことは良いのだが、USB 3.0 なら別に問題ないだろうと。そう割り切ると Nanopi M4 は、HUB 内蔵で 4 ポートも使えるので魅力的。

また、Nanopi M4 は、専用ヒートシンクがでかい。RK3399 にはヒートシンク必須だと思うが、自分であれこれするのも面倒だし、かなり魅力的に思える。

決め手になったのが、Black Friday セール。ギリギリになって気が付いた −− 日本では既に土曜日。深く考えずにポチってしまった。

一応お安かったようである。4GB + ヒートシンクで $86.98 + 送料 $7 。今の値段は $101.99 + 送料。

(続く) 
続きを読む
posted by すz at 14:21| Comment(0) | TrackBack(0) | 日記

2012年09月28日

MEDIAS N-04C覚書き

DTI の ServersMan SIM 3G 100 に加入することにした。通常 100kbps だが、速度を切替えることができる。高速時 の 転送量あたりの価格が安いのに魅力を感じたのだ。

    1GB/月 程度使っても 3100円/月 程度に抑えられる。しかもチャージの有効期間が長い。これなら、自分の使い方を調整しながら 使えそうだ。... というのが目論見だが ...

    431 : いつでもどこでも名無しさん : 2012/09/18(火) 22:01:33.14 ID:???0

    ターボ使ったことあればわかるけど、一度切断して再接続する
    これはターボ用に用意した別枠の帯域を使用するため
    ゆえに、帯域も狭いので定員制になっている。つまり抽選式ターボ

    こんな情報があった。帯域が別なのは良いことだ。二つの回線契約をしているようなものだ。ただ、抽選式か。混んでいると切り替えで待たされることもありそう。安いからトータルの帯域は狭いんだろうな。でも従量制だから使わせた方が良いはずで帯域は適切なところまでいずれは拡大されるに違いない。

    SoftBankの帯域制限の基準を見ると、高めの定額サービスでも 1,000万パケット/月(約1.2Gバイト/月)で制限かけるとか書いてある。安いやつは、なんと 300万パケット/月(約366Mバイト/月)。1Gバイト/月は多いという認識なのか ...

ところが、驚くべき事実が ...

    3G のドングルとかルータを持っているので、端末は気にしていなかったのだが ... 速度切替ができるのは、Android と iPhone(予定)のみらしい。

    b-mobile の同種のサービスでは、PC からでも変更できるようなので気にしてなかった。

3G のドングル を Paladin に付ける手もあるかも知れないのだが ... テザリング(ルータ化)することを前提に スマホを買ってみることにした。



選んだのは MEDIAS 旧機種の N-04C 。安かったし。まぁ よくわからないのでお試しのつもり。

    この機種は、
     ・ ServersMan SIM 3G 100 の 対応機器一覧
     ・ iijmio の 動作確認済み端末
    に入っている。標準SIM かつ Xi 未対応が条件? ただ、気になるのは テザリング ×。

    たとえば、b-mobile の IDEAS なら文句なしに テザリング ○ で安心なのだが、画面が しょぼすぎ。Rstrem A1 を最初に検討したのだが、すでに放出は終わっていて 安価かつ国内版(技適あり)なのは見つけられなかった。

    あと気が付いた点としては、iijmio のリスト でアンテナピクト表示○ 。セルスタンバイ問題が解消している可能性が高い。

さて、テザリングができないのは何故? というレベルから調べたのだが ...

    docomo の APN に強制的に切り替えるため!

だと分かった。docomo と直接契約している場合は、テザリングするとまずいことになるかも知れない。b-mobile, IIJmio,DTI とかは契約上の縛りはない。この仕組みも邪魔なだけ。

どうも framework-res.apk に情報があるらしく編集しなければならないらしい。そうなると root にならなければならず、さらに いじるのであれば、元に戻せるようファームウェアも入手しなければならない。

だんだん泥沼に入っていく感じがするが .. しょうがない。情報を集めてやってみることにした。

    ApnChanger
    というアプリがあるらしい。N 系ではダメだろうが、いけるやつもあるとのこと。P-01D が出来たという情報が書いてあった。これは新品でも安いらしいし、少し後悔。

adbドライバの入手

    adb というのは、Android 端末と USB でつないで Android 端末を操作するツール。Android 端末で shell が使えたり、ファイルを転送したり、アプリのインストールができたりする。普通は、汎用のドライバの inf を書き換えて使うのだが、N-04C では、なにやらうまく行かない。

    メーカサイトに adbドライバ があるので、ダウンロードしてインストール。

ファームウェアの入手

     ・ MEDIAS N-04C の OSバージョンアップ(メーカサイト)

    ここから、PC で update.dat をダウンロードできる。ただ、IMEI(製造番号) を入力しなければならないし、何のバージョンが入っているか管理しているらしく ダウンロードできるものが限られる?

    手に入ったものが何かは分かった。

    ビルド番号:A1022101 (2011/10/20 版)

    AndroidOSバージョン:2.3.3
    update.datについて:
    ファイルサイズ:180,771KB
    MD5:7E73C089F1B5C801E9393AAA15680571

    サイズから見てフルアップデート。これさえあれば心強い。

    最新バージョンは、A1030501 で差分アップデート。これは 接続後アップデートできる。A1030501 にしたとしても、A1022101には戻せる。そして 弄るのは A1022101 を使う。

      弄る対象は、もうひとつある。A1021401 という前のバージョン。2011/9月製造までの機種なら、ここまで一旦ダウングレードすると SIM フリーになるらしいのだが ...

      一応入手したのは、2011/3月製造 で可能性があるが、だいたい docomo 以外もっていないし予定もない。メモだけ。

      初期ビルド A1011001
      9/21ビルド A1021401→A1022001
      10/20ビルド A1022101→A1030401 or A1030501

      SIMフリーなのは A1021401とA1022001。

      ビルドバージョン:A1021401
      AndroidOSバージョン:2.3.3
      update.datについて:
      ファイルサイズ:180,738KB
      MD5:806DC91957CE3EEC440AF245C9EC94B5

      ビルド番号:A1022001
      update.datについて:
      対象ビルド: A1021401
      ファイルサイズ: 3,612KB
      MD5: 8A31EC7A961167CD1C3E4AC0C25EEE46

ファイルを変更できるようにする(レベル 0: 準備 )

    auto-rootkit_bh_fix.zip というファイルを入手すると必要なものが一応含まれている。後のバージョンでも良い。あと adb が必要。android sdk でも良いが、いろんなツールにも添付されている。後の目的もあるので、APK Multi-Tool のサイトから

     APK Multi-Tool Windows Version 1.0.9

    を入手することを推奨しておこう。あと xml を編集できる エディタ。SAKURAエディタ が良いようだ。

    これらを使って 手動!で やってみることにする。必要なファイルは SD に置き 端末側の shell を使う。普通のやりかたではないので、マネするのは薦めない。なにをやっているかの解説だと思って読んで欲しい。

ファイルを変更できるようにする(レベル 1: 仮 root )

    とにかく root 権限を奪取するのが第一ステップ。zergRush というツールを使うと一時的に root になれるそうだ。ただし、A1022101 (かそれより前のもの) が対象。

    $ cat 1/zergRush > /data/local/tmp/zergRush
    $ chmod 755 /data/local/tmp/zergRush
    $ /data/local/tmp/zergRush

    こんな風にする。cp は使えないので、リダイレクトでファイル生成。そして実行権を付けて実行。/data/local/tmp も意味があるようだ。ここでないと ファイルを作れない?

    [+] Killing ADB and restarting as root... enjoy!

    成功するとこんなメッセージが出て、adb が一旦終了。

    $ /data/local/tmp/sh
    #

    /data/local/tmp/sh が作られているので、実行するとプロンプトが # になる。

ファイルを変更できるようにする(レベル 2: 恒久的 root ただし /system 以外)

    reboot すると、折角得た root 権限が無効になってしまう。root 権限を常に得られるように 起動時に動かすスクリプトを仕込む。ついでに busybox も 仕込んでおく。

    # cat /2/local.prop > /data/local.prop
    # cat /2/data_local/autoexec.sh > /data/local/autoexec.sh
    # cat /2/data_local/_su > /data/local/_su
    # cat /2/data_local/su > /data/local/su
    # cat /2/data_local/busybox > /data/local/busybox
    # cat /2/data_local/libemoji-wrapper.so > /data/local/libemoji-wrapper.so
    # chmod 555 /data/local/autoexec.sh
    # /data/local/autoexec.sh
    # exit
    $ /dev/_su
    # rm /data/local/tmp/*

    /data/local.prop で autoexec.sh を実行するように指定。autoexec.sh では、su , _su を /dev にコピーして 実行権を付けている。あと、busybox も実行権を付け直す。

    autoexec.sh は、今実行して、/dev/_su が使えるか確認しておく。一旦 /data/local/tmp/sh を抜け、zergRush と生成ファイルを削除。

    最後に reboot して、/dev/_su で # になるか確認しておこう。

    ここまでやって、A1030401 にバージョンアップするのが普通らしいのだが、私はこのまま。A1030401 だと若干手順が変わる。最新の A1030501 にするとどうなるかは、分からない。

ファイルを変更できるようにする(レベル 3: /system の変更)

    これで root にはなれるようになった。だが、 /system は、ライトプロテクトがかかっているので、もう一段手順が必要。

    # cat /4/sysunlock.ko > /data/local/sysunlock.ko

    この sysunlock.ko は、カーネルモジュールで、ロードすると ライトプロテクト解除。アンロードすると ライトプロテクト しなおす。という仕組みになっている。ライトプロテクトしなおすのを忘れると 赤画面になって
    起動しなくなる(いわゆる 赤面)場合がある。そうなってもあわてることはない。A1022101 で初期化すれば普通は最初に戻る。

    /system を書けるようにする手順(A1022101)

    # insmod /data/local/sysunlock.ko
    # mount -o rw,remount /system /system

    /system を書けるようにする手順(A1030401)

    # insmod /data/local/sysunlock.ko patchaddr=0xC05C2F91
    # mount -o rw,remount /system /system

    どうもこれが正しいらしい。私は、A1022101なので上。

    元に戻す

    # mount -o ro,remount /system /system
    # rmmod sysunlock
    # lsmod

    とても重要なのに、間違った説明も見受けられる。最後に lsmod で確認したほうが良い。

不要な system アプリの削除

    /system/app に置かれたアプリは、端末上からは削除できない。たちが悪いことに、使わないのに勝手に起動したりして、メモリを圧迫したりする。メモリがなくなれば、リブートという結末になったりする。また、アップデートされると 新しいのは、/data/app にインストールされるので、アプリ用エリアを圧迫する。

    というわけで、使わないものは元から消すことにした。

      cd /system/app
      mv MyLifeLog.apk MyLifeLog.apk.org
      mv MyLifeLog.odex MyLifeLog.odex.org
      mv ScPedometer.apk ScPedometer.apk.org
      mv MediasLauncher-s.apk MediasLauncher-s.apk.org
      mv MediasNaviShortcut.apk MediasNaviShortcut.apk.org
      mv MediasNaviShortcut.odex MediasNaviShortcut.odex.org
      mv docomo_market.apk docomo_market.apk.org
      mv BeeTV.apk BeeTV.apk.org
      mv EstarAP1DL.apk EstarAP1DL.apk.org
      mv BookShelf_preset.apk BookShelf_preset.apk.org
      mv TabihikakuNet.apk TabihikakuNet.apk.org
      mv Twipple.apk Twipple.apk.org
      mv andronavi.apk andronavi.apk.org
      mv toruca.apk toruca.apk.org
      mv TravelCamera.apk TravelCamera.apk.org
      mv TrendSearch.apk TrendSearch.apk.org
      mv TrendSearch.odex TrendSearch.odex.org

    とりあえず、ひとが作ったリストを使わせてもらった。動作中のものが多々あるので、消さずに rename すること。reboot 後に *.org を消すのは問題ない。(ただし、意味もない)

    私が使いそうにないものは、まだまだある。様子を見ながらリストに追加していこうと思う。

    さらにいうと、使うものでもアップデートされるものは、/data/app に移した方が良いと思う。あとで、領域を占有されるよりはマシだろう。いざとなれば、アンインストールも出来るし。

    追加削除(候補)

      cd /system/app
      mv CarrierMailService.apk CarrierMailService.apk.org
      mv CarrierMailService.odex CarrierMailService.odex.org
      mv spmode_mail.apk spmode_mail.apk.org
      mv iD.apk iD.apk.org
      mv PhoneBookCopy.apk PhoneBookCopy.apk.org
      mv gguide.apk gguide.apk.org
      mv Evernote_launcher_docomo.apk Evernote_launcher_docomo.apk.org
      mv SyncMLApp.apk SyncMLApp.apk.org
      mv Quickoffice.apk Quickoffice.apk.org
      mv GenieWidget.apk GenieWidget.apk.org
      mv MobileFeliCaMenuApp.apk MobileFeliCaMenuApp.apk.org
      mv MobileFeliCaWebPluginBoot.apk MobileFeliCaWebPluginBoot.apk.org
      mv ManualDownloaderN04C.apk ManualDownloaderN04C.apk.org

framework-res.apk の編集(の準備)

    まずは、ツールを入手。APK Multi-Tool のサイトから

     APK Multi-Tool Windows Version 1.0.9

    を入手する。

    これを使って framework-res.apk を解凍して、書き換えたものから、再構成。

framework-res.apk の編集(する内容)

    framework-res.apk/res/values/strings.xml の config_tether_apndata を変更する。

    標準ではspモードの

     docomo tethering,dcmtrg.ne.jp,,,,,,,,,440,10,0,*

    になっているが、例えば b-mobile U300 だと

     bmobile tethering,dm.jplat.net,,,bmobile@u300,bmobile,,,,,440,10,0,*

    に変更する。DTI でどうなるかは分からない。SIM の台紙に書かれているそうだ。

     DTI tethering,ynmbl.net,,,user@3gd.ynmbl.net,3gd,,,,,440,10,0,*

    拾った情報だとこうなのだが、来ない事には確認できない。

    パラメータは、名前,APN,プロキシ,ポート,ユーザー名,パスワード,サーバー,MMSC,MMSプロキシ,MMSポート,MCC,MNC,認証タイプ,APNタイプ だそうだ。

    この方法以外に、

     bools.xmlの config_tether_dun_required を false にする。

    という手があるらしい。これでいけるのなら、個別の設定をせずに済む。

    884 : SIM無しさん : 2011/11/06(日) 18:56:57.97 ID:t60u1rWb [5/6回発言]
    A1022001でconfig_tether_dun_requiredをfalseに設定すると、
    bmobileもsoftbankもスリープ不要で1分以内にテザリング開始する。
    APNの強制書き換えはされるけど効いてない。
    ネックは/systemの変更が必要になるとこだけだな。

    こんな情報は見つけた。A1022101 もいけるかも知れない。

    メモ:

      /system/etc/customization/settings/com/android/settings/custom_settings.xml
      ここに上記の設定が入っている端末もあるらしい。最終的に settings.db に入るデータが本物であり、他は デフォルト値。そして settings.db自体を書き換えてしまうわざもあるらしい。書き換えないにしても、settings.db をチェックして、別のファイルの設定になっていないかチェックしたほうが良いかもしれない。Settings.apk というのを持っている機種もある。

      さらに、Settings.Secure.TETHER_DUN_REQUIRED というのがあって、こちらの方が settings.db より強い。これは、どこに設定すべきものだろう? ひょっとして initrd の方だったりして。実は initrd をいじった方が楽?

      Xperia 2011 の Android 2.3.4 root 関連情報:Android 2.3.4でのテザリングについて
      docomo 公式テザリングの仕組み

framework-res.apk の編集(手順)


     APK Multi-Tool Windows Version 1.0.9

    の使い方ということになる。.. のだが バージョンが違うと手順は微妙に変わる。やったことを列挙するに留めたい。

    コマンドプロンプトで Script.bat を実行。

      20 Clean Files/Folders
      7. Clean All Folders/Files

    これを実行するとディレクトリが出来る。 place-apk-here-for-modding に framework-res.apk をコピー。

      24 Set current project
      Choose the app to be set as current project?
      set INPUT=Enter It's Number:
      1
      9 Decompile apk

    これで中身が展開されるので、
     projects/framework-res.apk/res/values/strings.xml
     projects/framework-res.apk/res/values/bools.xml
    を編集

      21 Select compression level for apk's
      Enter Compression Level (0-9) :
      0
      11 Compile System APK files
      Aside from the signatures, would you like to copy
      over any additional files that you didn't modify
      from the original apk in order to ensure least
      # of errors (y/n)
      y

    「続行するには何かキーを入力してください」が出るが、キーを押すまえにやることがある。

        keep/resources.arsc の削除

    これが重要。

    キーを押すと
     place-apk-here-for-modding/System_framework-res.apk
    が作成される。これが、編集したもの。

他の話題

    L-04C

    【L-04C】 文鎮化してしまった時の初期化の方法

    これは! リスクなしに自由にいじれる!こっちのほうが良かったか。

    N-04C も同じメーカの SoC なので、本来は 同じ機能を持っているはず。
    ... そういえば、リカバリのとき 音声ボタン(大) を触ってしまったのだが、変になった。バッテリーを外したが、実は USB からブートしようとしていたりするのかも。(USB をつなげて見ればなにか分かる?)

追記: 削除プリインストール アプリ 候補

    (方針)/system/app のアプリは 端末からアンインストールできない。アンインストールする可能性があるものは、一旦消す。使ってみたいものがあれば、取り出して 通常アプリとしてインストール。

    消したとしても /system の領域が減るだけで /data が増えるわけではない。GMail とか Google 系は、古くても基本消さない。

    # からはコメント。拡張子(apk) は省略 odex ファイルがあるものはそれも削除
    この情報をもとに 削除するスクリプトは作れる。(実際は削除じゃなくて mv(rename))

    # 携帯機能
    ManualDownloaderN04C # 取説
    # install_flash_player # FlashPlayerのショートカット
    MyLifeLog # Days
    ServiceTwitter # twitter連携
    ServiceMixi # mixi連携
    ServiceFacebook # Facebook連携

    # Google
    # Maps # Googleマップ(古い)
    # Gmail # Gmailアプリ(古い)
    # YouTube
    # Email # Emailアプリ(使い勝手悪い)
    # Vending # マーケット
    # MarketUpdater # マーケット更新ツール
    # Browser # 標準ブラウザ(使い勝手悪い?)
    # DownloadProviderUi   # ダウンロード
    # Mms  # メッセージ

    # MEDIAS
    # MEDIAS # MEDIAS?
    MediasLauncher-s
    MediasNaviShortcut # MEDIAS NAVI

    # docomo1
    iD # iD
    toruca # トルカ
    PhoneBookCopy # 電話帳コピー
    spmode_mail # spモードメール
    CarrierMailService
    docomo_market # docomoマーケット

    # docomo2
    BeeTV # BeeTV
    gguide # Gガイド
    EstarAP1DL # E★エブリスタ
    BookShelf_preset # BookShelf
    TabihikakuNet # 旅比較ねっと
    Evernote_launcher_docomo # Evernoteインストーラ

    # biglobe
    Twipple # Tripple
    andronavi # andronavi

    GenieWidget # ニュースと天気
    Quickoffice # QuickOffice
    TravelCamera # ソトメモ
    TrendSearch # Topics
    MobileFeliCaMenuApp # おサイフケータイ
    MobileFeliCaWebPluginBoot # おサイフケータイ Webプラグイン

    ScPedometer # 歩数計
    SyncMLApp # 電話帳バックアップ

おまけ:とりあえず、入れたいアプリ

    ・ Quickoffice

      削除の後、あらためて インストール。

      Quickoffice.apk.org を SD カードに Quickoffice.apk にコピーしてリネーム。で、ファイルブラウザとか のツールでファイルを指定して インストール

    以下 Google Play から
    注意: デザリングを有効にすると ダウンロードが開始されない場合がある。一旦開始されたら デザリングを有効にしても、ダウンロードは中止されない。(複数のファイルでも止まらない)

    Advanced Task Killer

      タスクキラーは、Android 2.x では入れないと不安。

    ZDbox

      いわゆるツールボックス。便利そう。Optimize ToolBox を愛用してたのだが.. 乗り換えるか。

      本体の調子が悪い。勝手にリブートしたり。これ入れたせいかも。使用停止して様子み。

    ES ファイルエクスプローラー

      とりあえず定番ファイルブラウザ。-- Google Play を見ると定番という感じはしないが ... Paladin とか中華アンドロイド機にプリインストールされていたりするので、なじみがある。

    ツールボックス

      カメラとか 各種センサとかを利用したツール。ちょっと入れてみよう。

    トラフィックの統計情報

      3G/Wifi 別に 今日と今月の 通信量が分かる。

      これみて、使い方を検討しよう。

    ServersMan SIM 3G Unlimited

      これは、書いておかないと。これ目的で N-04C を買ったわけだから。

      レビュー見ると辛辣なレビューがある。が、このアプリに関係ない DTI への不満だったりする。だが有用な情報も含んでいる -- (割り当て待ちで) 切り替えに時間がかかることがあるらしい。これは覚えておこう。また、切り替えても遅いらしい。ユーザが急に増えれば対応が遅れる場合もあるだろう。従量制なんだから いずれは解決すると思いたい。


    以下、Google Play 以外から

    AndroidOptimizer (Optimizer Tool Box)

      愛用しているんだが、中華アンドロイド機に付いてきたものを使い回している。Google Play にはない。

      ここに v2.7.0 があるが ... 動かしてみたら DX Tool Box という違うアプリだった。中国語版で良くわからないのでパス。

      今使っているのは、英語版 2.0.8 。独自のアップデートパスを持っているみたいで、アップデートしてみたところ 2.3.0 になった。だが、やはり中国語版で良くわからない。

      ただ、URL は分かった。http://www.dashi.com 探せば英語版があるのかも知れないが とりあえずパス。

    MCpuMon

      developer.mips.com にあるツール。CPU 使用量のグラフを見ることが出来る。

      起動すると、タスクバーに登録される。バックグラウンドで動かしておいて後でチェックも出来る。

充電について

    買った時に付いてきたケーブルを PC につないで使ってきた。充電しながら使い続けられる。これは、なにげに嬉しかったりする。Android タブレットのなかには、消費電流の方が充電電流より多いものもあるのだ。ただ、CPU 100% になったりすると 温度が上がって充電が止められる。

    で、使っているうちにケーブルが断線したっぽい。ときどき接続が切れていたから、間違いなさそうだ。そうなると充電すらできない。mini-B のケーブルは沢山あるんだが、micro-B は持っていない。困ったことだ。

    100 均にいって、充電ケーブルを入手してみたら ちゃんと使えた! 通信もできる。とりあえず事なきを得た。



    ものは、ローソン100 の 『スマートフォン 充電・転送ケーブル』 。このケーブルは、micro USB プラグのところが はめ込み式のケースになっていて分解出来る。だから、充電専用ケーブルにも改造できる。

    xperia充電用ケーブル改造 その2

    ここが参考になる。ただやるなら自己責任で。



    ちょっと補足。micro B コネクタは、後ろから見てこういう配置になっている。#4 は ID なので、これだけ結線されていない。

    #2 と #3 を切って それ同士を結線しているわけだ。実際にやってみると、#3 の線をむいて #2 の端子にハンダ付けするのが楽だった。

    ただ、電源が #1,#5 に配線されているので、ショートするとたいへんまずい。ハンダ付けの経験がなかったり、自信のないひとはやめておいたほうが無難。

おわりに

    なにも考えず買ってしまった N-04C だが 望みどおりの使い方が出来るようになった。機種解析をした方々、情報をまとめた方々には感謝する。ありがとう。

付録:情報元
posted by すz at 23:23| Comment(1) | TrackBack(0) | 日記

2012年06月01日

GCW Zero

(DATE: 06/01/2012 00:29:01)
Jz4770 でググってみると GCW Zero ってのが見つかった。



http://boards.dingoonity.org/other-game-systems/gcw-zero/
http://obscurehandhelds.wordpress.com/tag/gcw-zero/

Jz4770 採用の ゲームコンソールだそうだ。Android 不採用 、320x240 (640 x 480 になるかも ) ってすごい割り切り。

The tentative release for the console is Mid July to Early August 2012. Final Cost for GCW Zero Special Edition $110.00 to $120.00.

8 月には、出るってことか。ちなみに Special Edition は、RAM 512MB Flash 16 GB で 無印 の 256MB/4 GB と比べてグレードアップされている。開発者向け?

ゲームコンソールでは、Jz4740 採用の A320 というのが有名だが、それの後継機を目指しているかんじ。それにしても Jz4770 とは ... 5 倍ぐらいは高速だろう -- そんなに性能が必要なんだろうか?

    Jz4770 は、800 MHz で駆動するようだ。それでも 4 倍か。x2 は二次キャッシュで性能向上の分。
    クロックダウンしているのは、熱のため? それとも 1/2 , 1/4 なら 周波数変更が簡単なため?

    Dingoo Linux 用のアプリが動く。

    Special Edition で $110-$120 だから 無印はもっと安いはず。$70-$80 とか?

    追記: 2番目の記事をよく読めば ... pre-order では deposit $65 って書いてあった。またプロトタイプでは、Gemei A330 のシェルを使っているようだ。

    Gemei A330 を流用すれば、基板を作るだけでプロトタイプにはなるだろうが ... その後はどうするんだろうか? A330 の シェルと互換なのを作る?

    追記: 2012/09/13

    MIPS系Jz4770搭載のポータブルゲーム機GCW-Zero発売日決定』の記事で進展があったのを知った。10/1 らしい。

    Sneak Peek at GCW-Zeroに開発中の筐体写真があるとのことなので見てみた。




    ちゃんとケースも金型から作っているみたい。同人ハードかと思っていたが、本格的な製品らしい。基板を見ても手慣れた印象がある。

    内蔵 FLASH は、microSD が使われているが、basic/paladin の様に コントローラ + NAND FLASH チップのパターンも付いている。チップの劣化を考えると 交換できる microSD のほうが嬉しい。外部ストレージも microSD で、左下にスロットがある。

    Wifi は、USB 接続タイプのようだ。右上の青いのは、FM ラジオモジュール。その下の チップは、basic/paladin などと同じ型番の電源IC のように思える。下のほう USB mini-B の 上と右に大きめのチップがあるが、デカップリング用のコンデンサのはず。

MISPベースのスティックAndroid ippea TV (旧 PEA-887)



    http://www.ippea.com/

    JZ4770 を使っているそうだ。802.11b/g/n WIFI と USB HOST も付いている。RAM は 512 MB 。

    http://www.linuxpilot.com/industry/news/20120606iPPea

    こちらに分解写真。四方に足があるゲジゲジ付きだから Paladin などと同じ SD インターフェイスの内蔵 FLASH 。

    こういうのが出てくるのは、嬉しい。

      MIPS Jz4770 1.2G
      mini USB 2.0 port (OTG, 640Mbps)
      標準 USB 2.0 ports (12Mbps)
      MicroSD slot
      内蔵 FLASH 4GB(SD interface) / RAM 512MB;
      IEEE 802.11 b/g/n (Blutooth T.B.D.)
      HDMI 出力
      3D Air KeyMouse

    スペックを拾って訂正するとこんなところか。Blutooth が、T.B.D(定義すべき) になっているのは、BroadCom の チップだからだろう。ファームウェアとドライバの両方が必要だからメジャーな型番であることを願う。

    で、3D Air KeyMouse って何? 中段の写真にキーボードのようなものが見えるけど。まさか。

    よく見ると、中段・下段の写真は、基板のコネクタ配置と合わない。-- 関係ないのか -- 紛らわしい。... というか、ケースはまだ出来ていないのかも。

    追記:(2012/7/12) なんか紹介されている。

     http://gpad.tv/tv/mips-ippea-tv/

    そして、買えるようになったようだ。メーカの eStore で買える。$50 + 送料 $15 の合計 $65 。Paypal が 82円/ドルとして、5300 円 ぐらい。ただし、出荷は7月末。もうすぐとは言え未発売。

    追記: 2012/09/13

    使う予定もないのだが、ポチってしまった。送料込み $65 。現在 香港から 輸送中。

    記録
     12/09/02 09:40 Receipt for Your Payment to iPPea Limited service-jp@paypal.com
     12/09/02 09:43 Purchase Receipt info@ippea.com
     12/09/11 18:19 Shipping confirmation for your order cs@ippea.com
     12/09/11 18:27 More details on your shipment service-jp@paypal.com
     9月11日 16:09 引受 HONG KONG
     9月12日 15:06 国際交換支店から発送

    paypal から Shipping のお知らせが来ている! で、すぐに 引受/発送 のトラッキングが出来ている。EMS ?



    追記: 2012/09/16 : 受け取り

    現物は、確かに上のイラストの通りだった。買ったのは Black で色は違う。緑帯に黒。付属品は、micro USB OTG ケーブル(HOST) と、電源ケーブル (USB) 。電源ケーブルは、例の細いタイプ。

    かなり華奢な印象。乱暴に扱うと簡単に壊れてしまうかもしれない。

    PC と接続するには、micro USB ケーブルが別途必要。(もってないや)

      上海問屋の 299円のHUB (3port + micro USB) あたりを買っておくと、なにかと捗るかも。

    まだ使う予定がないので、そっとしまう。

    ちょっとメモ



    ・『AndroidOS4.0MiniPC YouTube動画比較テスト アンドロイド搭載スティック型
    ・『USBtypePCアンドロイド4.0USBスティックタイプミニPCでインターネット・動画

    動画でレビューしているサイトを発見。モニタによってはこんなに綺麗に収まるのかと感心した。サイドのコネクタが気になっていたのだが、電源ケーブルが干渉しても、反対側の micro USB から給電できそうだし、あまり困らないのかも。

    つなげるのはマウスのみが普通なのか ...

    同じスティックタイプの AK-212MiniPC(Allwinner A10 1GHz)とあまり変わらないそうだ。どちらも大したことがないという意味だろう。ただ消費電力的には ippea TV の方が有利なはずで、それゆえにコンパクトに仕上がっている(と思う)。 コンパクトにできたおかげてモニタの裏に収まるとか ... バランスは良いと思う。
posted by すz at 00:29| Comment(2) | TrackBack(0) | 日記

2011年11月24日

microSDリーダ

microSD リーダで 気に入ったものが見つかったので紹介しておこうかと。

Ultra-Slim USB 2.0 TF/Micro SD Card Reader w/ (Pink), (Black) , (Blue)


ものは、これ。DealExtreme という 中華系のショップで購入。

気に入ったポイントは何か ....

  • 1) USB の (Type Aオス)コネクタ部分が金属製

    ここがプラスチックのものもあるが、安っぽい以上に PC 側を痛めてしまないか心配なので嫌。



    以前このタイプを好んで使っていたのだが、これは逆に リーダ側が弱くあまり持たない。

  • 2) 幅が狭く、隣の USB コネクタと干渉しない

    ちょっと幅があると、隣に USB ケーブルすら挿せなかったりする。干渉しないものでないと困る。

  • 3) コンパクトでありながら、microSD がすっぽり入る

    microSD が飛び出しているものがあるが、ちょっと怖い。microSD が折れてしまうとダメージがでかいので、全部が入ってしまうものが良い。

      USB メモリ形態がデフォルトということ。いくつも持っていて、ケース代わりにっしている。

  • 4) コンパクトすぎない。ストラップも付けられる

    あまりに小さいと、存在感がなく どこかに忘れそう。

    これは、ちょうど好みの大きさ。

    ちなみに、ストラップになるのではなく、他の機器と同様に ストラップを付ける穴がある。
    ちゃんとしたものでないと、microSD が 入れ替えできなくなるので注意。

  • 5) microSD のスロットがしっかりしている。



    百均の microSD リーダは、1) - 4) をクリアしているのだが、microSD の端子の接触がどうにも 不安。実際 接触不良になりがち。それどころか、隣の端子とショートする不安まである。



    こいつの中味も、プラスチック製なのだが、これとよく似たものが使われている。ただし、挿入を検出するスイッチが付いていてより高級なもの。

    形状から見て、かなり安心。

    ただ、放熱性という点では、金属のスロットより劣る。連続書き込みで結構熱がこもった。

  • 6) 低価格 ($2.0 ぐらい)

    100円よりは少々高いが、これぐらいなら十分安い。

  • 7) 『取り外し』が効く

    これはたぶん保証外 なのだが、USBに挿した後でカードを入れても認識した。
    ドライブの取り外しで、unmount した後、カードを抜いたあと 入れなおすと再認識もした。

    基本的には、内部のチップは HotPlug に対応しているようだ。このサイズ・形で、ちゃんとした Push-Push コネクタが付いたら 自分的には完璧なのだが ...

    色が付いているパーツは、すこしめくることができるが、破壊しないで外すのが難しそう。実際には覗いただけ。

      支援隨插即用及熱插拔功能

      スペックらしきものを見つけたのだが、こういう風に書いてあった。

      たぶん 隨插即用 が Plug-and-Play 熱插拔 が HotPlug 。HotPlug は、カードのことかも知れない。

      Linux でも umount してカードを抜けば 、detach され 再度カードを挿せば attach される。

      Vendor=14cd ProdID=125c Rev= 3.00
      Manufacturer=Generic
      Product=Mass Storage Device
      SerialNumber=125C20100726
      MxPwr=248mA

      SerialNumber は、皆同じ。あと、Max Power が 248mA なんて妙に具体的なんだが ...

今まで結構な種類の microSD リーダを買ってきている。その中で(いまのところ)いちばん気に入っている。

ただ、レビューを見ると気になることが ...

    Read Only にしかならないとか ... たぶん以前のロットは不良品だったのだろう。私が買ったのはまったく問題ない。

    ... と思ったが間違いで、6 個中 2 個(両方ピンク)が Read Only になる。まぁ余分に買っているから良いのだが ... どこか接触不良なのだろう? (中のハンダづけ不良?)

    折角作りが良いのに残念な欠点。

      追記: どうも 大量に書き込んだりベンチマークすると不具合が起きる。

      現象は、I/O エラーが起きて すぐ後に USB が再認識される。OS がリセットしているのではなく、カードリーダがリセットしているような感じ。

      この現象は、Gigastone 32G との組み合わせでよく起きるようだ。カードの特性となにか関係あるかも。

      気に入ったのに... 残念。

    ついでに ...

    Aluminum Shell Micro SD/TF Card Reader $1.48

    これも全く同じチップを使っている。

    こちらも、1) - 7) 全部クリアしている。ただ、プラスチック部分が安っぽい。

    スロットは金属製。カードだけ抜き差ししてもちゃんと認識されるが、挿入スイッチは付いていないようで、若干の不安がある。

記念に 軽く性能調査

    microSDHC は 安物ばかり買っているので 性能は全然出ていない。

    Linux で dd コマンドを使うとシーケンシャル Write/Read ぐらいは簡単に測定できる。

      Write Read
      Transcend 32GB class 2 3.8 MB/s 10.4 MB/s (上海問屋 で購入: セレクト)
      Gigastone 32GB class 4 4.0 MB/s 17.9 MB/s (デジタル達人 で購入)
      Team 16GB class 2 4.3 MB/s 17.9 MB/s (アンジー で以前購入: 現行は class 6)
      Toshiba OEM 16GB class 4 7.8 MB/s 15.5 MB/s (C16G Japan と刻印)
      Toshiba OEM 16GB class 4 9.7 MB/s 16.2 MB/s (PhotoFast Card Reader で測定)

      SanDisk 4GB class 2 15.5 MB/s 23.8 MB/s (大昔のデータ)
      Toshiba 4GB 12.4 MB/s 23.7 MB/s (大昔のデータ)

      Write: dd if=/dev/zero of=f01 bs=1024k count=128 conv=fsync
      Read: (umount - mount) dd of=/dev/null if=f01 bs=1024k count=128

    性能を気にせずに買ったとは言え、いまいち。

      よく見たら Transcend 32GB も Gigastone 32GB も まったく同じセクタ数 (62325760) だった。vfat のフォーマットも (serial 番号を除いて) まったく同じ。たぶん両者 SanDisk OEM 。

    最近は class 10 も安くなっているし、UHS-I の microSDHC も出ている。ちょっとテスト用に 小容量で良いから買って試してみたい。

    Novo7 basic などが UHS-I に対応しているかどうかもチェックしてみたかったりする。CPU の スペックでは、80MHz ( 40MB/sec ) まで対応と書いてあるし。

    ちなみに、東芝の SD-MU008GXのスペック は、DDR50/SDR50 モード Read 40MB/s / Write 20MB/s で、UHS-I 未対応 アダプタだと Read 23MB/s / Write 20MB/s だそうだ。

    これで ようやく 大昔の高価だった時の MicroSDHC の性能を超えるかんじ。

    グリーンハウスのは、メーカのスペックによると UHS-I で Read 25MB/s / Write 15MB/s -- これって UHS-I でなくとも出る性能レンジでは?

    ググったら ここに SDR50 とかの説明があった。

    • SDR104 , SDR50, SDR25, SDR12, DDR50 が新しい規格 UHS-I (?) で全て 1.8v
    • SDR/DDR は、メモリと同じ意味。SDR104 は、208 MHz/104 MB/sec , DDR50 は 50 MHz / 50 MB/sec 。
    • 従来規格は、HS (Hi-Speed) が 50 MHz/25 MB/sec (3.3v)

      Jz4760/Jz4770 は、電圧を切替える機能がないので、たぶん 従来規格の HS のみ対応。
      ... どうも 3.3v のまま 80 MHz まで動くということらしいが、カードも対応している必要があり、普通は 50 MHz まで。

      Ronzi A3 とかは、それ以前の問題(ドライバ?)で性能が出ていない。novo7 basic は、まともかも知れない。

追記: アンジーで 16G 2種類買ってみた

    ひとつは SUPER TALENT の class10 ST16MSC0A (3年保証) もうひとつは、Team class 6 (10年保証)。

      SUPER TALENT class10 ST16MSC0A
      --------------------------------------------------
      CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
      --------------------------------------------------

      Sequential Read : 19.075 MB/s
      Sequential Write : 16.095 MB/s
      Random Read 512KB : 18.482 MB/s
      Random Write 512KB : 1.375 MB/s
      Random Read 4KB : 2.608 MB/s
      Random Write 4KB : 0.012 MB/s

      Test Size : 100 MB
      Date : 2011/11/29 21:58:13

      Team class 6 TG016G0MC26A
      --------------------------------------------------
      CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
      --------------------------------------------------

      Sequential Read : 19.079 MB/s
      Sequential Write : 16.297 MB/s
      Random Read 512KB : 18.526 MB/s
      Random Write 512KB : 1.323 MB/s
      Random Read 4KB : 2.490 MB/s
      Random Write 4KB : 0.012 MB/s

      Test Size : 100 MB
      Date : 2011/11/29 21:42:02

    とりあえず CrystalDiskMark で測定してみたら、ほぼ同じ性能。-- これって中身同じかも。裏の模様(パターン)がそっくり。

      よくよく見たら、シリアル番号まで同じだった。serial number 0xf84e1690 同じどころではなかった。

    ついでに、Gigastone 32G と 最近買った Gigastone 16G class 4 も測定してみた。

      Gigastone 16G class 4
      --------------------------------------------------
      CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
      --------------------------------------------------

      Sequential Read : 16.219 MB/s
      Sequential Write : 8.481 MB/s
      Random Read 512KB : 15.975 MB/s
      Random Write 512KB : 0.704 MB/s
      Random Read 4KB : 2.170 MB/s
      Random Write 4KB : 0.041 MB/s

      Test Size : 100 MB
      Date : 2011/11/29 22:41:45

      Gigastone 32G
      --------------------------------------------------
      CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
      --------------------------------------------------

      Sequential Read : 19.024 MB/s
      Sequential Write : 4.225 MB/s
      Random Read 512KB : 18.411 MB/s
      Random Write 512KB : 1.026 MB/s
      Random Read 4KB : 2.277 MB/s
      Random Write 4KB : 1.113 MB/s

      Test Size : 100 MB
      Date : 2011/11/29 22:56:53

    あ、32GB のほうは、Random Write が速いではないか。なるほど、これは単なるウェアレベリングじゃない。ランダムな位置に書いたデータを一ヶ所に集めているに違いない。そういう高度な処理をすれば、シーケンシャル・ライトも同じ処理になって相対的に性能が低くなるのも理解できる。あと、それほど高度な処理が必要なら TLC (1セル あたり 3bit) かも知れない。TLC だと 書き換え可能な回数が減り、データを保持できる期間も(同じ冗長度なら)短くなるはず。MLC が 1万回/10年なら 3000回/3年 ? -- ちゃんと調べてないから分からない。後で調べておこう。

    かつて PhotoFast に CR-9000という 6 枚までの SDカードを SSD 化する ものがあったが、こういう特性のカードを使うなら OS Disk にも使えるかも知れない。SD カードはリムーバブルなので、Random Write でも書き込みは完了しているはずで いわゆるプチフリとも無縁のはず。

    ただ、4MB/sec はいかにも遅い。6 枚でも 24 MB/sec にしかならない。シーケンシャル・ライトは 4倍ぐらいは欲しいところ。
posted by すz at 21:53| Comment(0) | TrackBack(0) | 日記

2011年10月26日

コンパイラについて

MIPS 版の RHEL 6 をビルドするという野望は捨てていないのだが、ちょっと息抜き。

    MIPS のコードを生成できるものとして、gcc 以外に pcc がある。pcc は、もともと UNIX で使われていたもので、gcc より起源が古い。だが、オープンソースでなかったので、 (gccを採用した) i386 unix や linux の台頭 とともに一度は消えた。

    これが、オープンソースになり、ほとんど re-write されて復活したのは、わりと最近。 NetBSD とかもこれでビルドできるらしい。あと、rpm もあって、使ってみることは簡単にできる。

    ほかに、オープンソースの まともなコンパイラとして、clang(+llvm) というのがある。詳しくは知らないが、BSD 系で採用されるかも知れないらしい。

    なんで、こんなことを書いたかというと ... RHEL 6 のビルドの最初の障壁が gcc だから。どうにもうまくいかなくてうんざりしてきている。

    もちろん、クロスはなんとかなるのだが ... qemu を使ってのセルフがどうにも ... 一回作った gcc で、もう一度 gcc をビルドするのだが ... qemu での実行になるので終わらない。rpm の作成ではエラーが出ると そこで終わりになるのだが、延々ビルドした後、internal error が出てしまう。原因はメモリの使いすぎのような気がする。

    とにかく、gcc は遅かったり、メモリを使いすぎたりするので 困るのだ。そして 一番の障害が gcc 自身のビルド。その傾向がバージョンが上がるにつれて著しくなっている。

tcc (Tiny C Compiler)

    最適化は、ない(か ほとんどない?) がコンパクトかつ超高速な コンパイラとして tccがある。

    最初に紹介されたときは、Linux kernel がビルドできるという触れ込みだった。それだけではない。TCCBOOT というのがあって、なんと ブート時に カーネルをビルドして立ち上げる なんてことが出来た。(ただし、いまも出来るかどうかは知らない)。

    これは、直接バイナリを出すので、アセンブラもリンカも必要ない。そして C のソースコードを スクリプトとして使える機能がある。最新版は、0.9.25 で、x86_64 にも対応している。あと arm にも対応しているのだが 残念ながら MIPS には対応していない。

    コードを見ると arm-gen.c は 2000 行もない。MIPS に移植するのもそれほど困難ではないような気がする。

vcode: a portable, very fast dynamic code generation system

    誰か tcc MIPS 版を作っていないか探したところ、見つからなかったかわりに、こんなのが見つかった。

    ちょっとだけ見たのだが、MIPS のコード生成部は 1000 行に満たない。それだけ短いのだが、コメントも入っていて MIPS のコード生成部を作る参考になりそうな感じ。

    ちょっと、tcc MIPS 版を作りたくなってきた。テストは、実機を使うまでもない。qemu の user モードで十分。

    ちなみに、tcc も (ターゲットの) libc や libgcc を使う。これらは別途用意しておく必要がある。

lcc, A Retargetable Compiler for ANSI C

    そう言えば lcc なんてのもあったのだった。これは、x86 と ALPHA , SPARC , MIPS に対応している。コード生成部を作る参考になるかもしれない。

tcc の調査

    まず、tcc を作ったとして、android で動かせるものなのかどうか。

    1) ライブラリ

    tcc がリンクしているライブラリは、

      libc.so , libm.so , libdl.so

    これらのランタイムは、system/lib/ にある。
    ビルド時に使用するのは、NDK の platforms/android-8/arch-mips/usr/lib (など)

    これだけなら、大丈夫そうだ。

    ただ、これしかリンクしていないということは... リンカの機能も独自に作っているということで、なかなか 面倒な話がある。

    arm-gen.c 以外のもの を ARM_ で grep すると ...

    libtcc.c , tccelf.c , elf.h , tcctok.h で見つかる。特に行数が多いのは、elf.h と tccelf.c

    これらは、リロケーション情報を扱っていたりして、勝手に作れば良いというものではない。binutils と互換性があるように作らねばならないので、結構面倒そう。

追記: Android セルフ コンパイラ

C4droid (C/C++ compiler)

ふと、Android で動くコンパイラがあるかもと思って探してみたら あった。

もちろん ARM 用だろう。組み込みのコンパイラは tcc だが、gcc plugin なんてものもあるらしい。
posted by すz at 23:34| Comment(0) | TrackBack(0) | 日記

2011年10月16日

Android TV BOX

pandawill.com を眺めていたら、結構 Android TV BOX の機種を扱っている。

CPU は、tcc8902, rk2918, S5PV210 とおなじみのもの。メモリは 全部 512MB 。HDMI とイーサネット、WiFi も全部付いている。USB Host も付いていて、ハードディスクも付けられるようだ。SDカードも GG 以外は付いているようだ。

まぁ 特に欲しいというわけではないのだが、Jz4770 を採用したものが出たら考えてしまう。

ちなみに、Jz4770 も 100M イーサのインターフェイスは、持っている。USB は、OTG が 1 つと 12 M までの USB HOST が 1 つ。HDMI も持っているし、TV-Out や VGA の出力ができる TV エンコーダもある。

いずれは、出てくるかも知れない。

追記: Jz4760/B なら既に出ていた。

どうも IV-BOX X1 または IV-BOX X3 がそれらしい。ちなみに IV-BOX X5 というのもあって、こちらは RK2918。



内部写真まで公開しているが、X1 は Jz4760B 。CPU ボードが別になっていて面白そう。ちょっと興味がある。

  • X3 の方が上位機種に見えるが Jz4760 らしい。

  • X2 もある。どうも全部同じ サイズの CPU ボードを使うみたいだ。

  • メモリは、2 個ついている。たぶん 256 MB なのだろう。

  • 右端は、USB 接続の Wifi のはず。

  • 左端の USB は、USB 2.0 OTG のはず。

  • イーサネットが付いている。Jz4770 にはあるが、Jz4760/B にはないはず

  • HDMI も 付いている。Jz4770 にはあるが、Jz4760/B は VGA までのはず。

    なにか腑に落ちない。Jz4770 の方が安く作れそう。だがしっかり Jz4760B と書いてあるし ... まぁいずれ Jz4770 のを出してくるに違いない。

    追記: ここは終わってしまったようだ。メーカ自体が。ううむ残念。

http://www.aliexpress.com/product-fm/500900322-4760B-android-TV-android-TV-bot-PPtv-android-android2-2-wholesalers.html
Aliexpress だとこれ。$82.11+送料 $29.67

http://item.taobao.com/item.htm?id=12887821957&
taobao だとここらしい。400元。

追記: ACII.jp で、『〜師範、ARMって何ですか!〜』なんて記事が


    編集I:でもこれ、将来的にはものすごく安い値段になる可能性がありますよね?

    hito:Androidタブレットから「液晶とタッチパネルとバッテリを除いたもの」と同じなので、ものすごく安い値段で売れる可能性はあるでしょうねぇ……。数出てくるようになれば、って感じですが。

こういう記載があるのだが... Android TV BOX はスコープに入っていないのかな? まさに、「液晶とタッチパネルとバッテリを除いたもの」なのだが ...

すごい値段なのかどうか? 出る数が違うから、タブレットとさほど変わらないような気がする。

追記: Male A1000

    Mele A1000 is a $70 hackable, Linux-friendly ARM-based PC
    Mele A1000 Android 2.3 STB Unboxing and Review

    これは、Allwinner A10を使った もの。

    DealExtreme だと送料込みで $100 (ちょっと)。

    A10 って SATA (3Gb) が付いているのか。SDIO も UHS 対応 4ch 。Marvell のようなサーバ向けチップではないけど ... 結構いろんなインターフェイスが付いている。

    こういうのを JZ4770 で出して欲しいのだが ...

    それはともかく、http://rhombus-tech.net では、Allwinner A10 を使った CPU ボードを $15 ぐらいで出そうとしているそうだ。形状は、PCMCIA ?

    「Raspberry Pi」 みたいなものだが、インターフェイスがない分 安くできるのか?

    そういえば EKEN の タブレットは、独立した CPU ボード構成だった。$20 で WM8650 ボードが売ってたから $15 は 可能 と言えば可能。(ただ RAM 256 MB という条件になるかも)

    追記:
    後継機 Mele A2000 が出ている。 今の価格は、A1000 が $92.60 で A2000 が $98.20 (FreeShipping)。機能は同じで、デザインが良くなった?

追記: 2012/05/23

    49ドルのAndroidミニPC「VIA APC」発表、7月出荷。Neo-ITX フォームファクタ

    という記事が出ている。WM8650 の後継 CPU の WM8750 を積んだマシンで、Cortex-A9 800 MHz 。一応メモリは 512MB なので、使えるレベル。

    ただ、SATA がないので、Neo-ITX フォームファクタ であるメリットはなさそう。やはり SATA 付きの Male A1000 の方が楽しめそう。( ただし、私は MIPS 派なので 手をださない)

    Deal Extreme の これ は、同じようなものだが、Android TV BOX なのでケース付き。リモコンまで付いている。スペックも VIA APC に劣らない。どうせなら、こっちの方が良いとのこと (@ naobsd ) 。この手のものは、パワーユーザがどれだけ付くかで 選ぶのが吉。

    ただ、電子工作としてみた時には、少々事情が異なる。( カーネルをいじれないと面白くないが) GPIO とか I/O が出ていることが 重要だったりする(場合もある)。USB HOST が使えれば、なんとかなりそうなものだが ... やりたいことによって 重要度は変わるだろう。

Cubieboard

    Allwinner A10 には、Cubieboard なんてものが出ている。

    電子工作でいろいろいじれたりするし SATA が付いているのもポイントが高い。結構欲しいような ... JZ4770 で出たら飛びつくのだが ...
posted by すz at 17:49| Comment(0) | TrackBack(0) | 日記

2011年09月05日

Android端末を選ぶ基準

あくまで私見だが、私の中華Android端末を選ぶ基準というのを書いておこうと思う。中国製の Android 端末はやたら沢山あるしこれからも出てくるだろう。私の基準に合わないものも多数ある。私の基準に合うものが、日本のショップで売られると入手性がよくなるわけで、私の望むところであるから、この基準を主張しておこうと思う。なおこの基準は、前々から記事に書いていた。別に目新しいわけではないが、ここでまとめておく。

1) ファームウェアが最低でもひとつ入手できること。

これがないと、カスタムすることもできないし、元に戻すこともできない。最後までファームウェアが出てこないこともあり得るから、確認してから買うべきだとおもう。

普通は、アップデートとして提供される。だから、出たばかりの製品ではファームウェアが出ていない可能性が高い。アップデートが出るまで待てということでもある。


  • http://www.smartdevices.com.cn/support/download/

    Android の前に Ubuntu が動作する SmartQ5 を出したところ。その後 SmartQ V5 などがヒット。

    いまや値段が高めに感じるが、ファームウエアについては安心できる。

  • http://www.eken.com/support/

    中華Andoroid が知られるきっかけになった EKEN M001 を出したところ。

    VIA WM8505/8650 が中心だが、ファームウエアは割と頻繁に出ている。これを元にした CFW も定番が存在するようだ。

    VIA WM8650 は、600MHz でもっさり気味とも言われるが、EKEN M009S などは低価格で、とりあえず使ってみたい人にはお薦めかも。

    ちなみに、EKEN M009S の互換機らしきものも存在するようだ。(EKEN とは書いてなくてわずかに安い)

  • http://www.pandawillforum.com

    ショップのサポートフォーラムだが、Gpad G10 (TCC8902) のファームウエアがダウンロードできる。

    いまは、Android 2.3 の β3 が最新のようだ。

  • http://www.ieronzi.com/technic.asp
  • http://www.soiqq.com/down.asp?sid=7

    Jz4760/B MIPS アンドロイドを出しているところ。Ronzi A3 は、ファームウエアが存在するが、IQQ M1 == Ronzi A5 の ファームウエアは未だにないようだ。
      -- 9/12 IQQ M1/M2 のファームウェアがダウンロードできるようになった。

    以上は、私が知っていることを列挙しただけで偏った内容。中華Android 端末は、膨大な種類があるから欲しい機種の情報を事前に探しておくべき。無名のものも多数あり、ファームウエアの入手に難があるものもある。要注意。

2) ファームウェアを確実に更新できること

ハードウェアが物理的に壊れていたら別だが、いわゆる文鎮になる可能性がないものがベスト。

SDカードや USB からブートできる CPU は存在する。そういう CPU を採用していれば、ファームウェアが完全に壊れても元にもどせる。

また、ファームウェアが置かれる NAND Flash と別の SPI Flash から ブートできる CPU もある。SPI Flash のブートローダを書き換えすることがないようなつくりで、SD カードや USB からブートできるようなものなら、CPU に機能があるものと同等と思ってよさそう。

    SPI Flash は、8pin の IC で 容量は 512K〜2MB 程度のものが良く使われる。PC の BIOS 用に使われることもあるらしい。

    この容量なら、u-boot がはいる。(+ カーネルも入らないことはないが、普通は入れないだろう)。

この条件は、単に使う人より、CFW を作るような人にとって重要な条件。ちょっと失敗したぐらいで、文鎮になってはかなわない。ただ、単に使う人にとっても、CFW の出やすさやそれを入れるときの安心感にかかわってくる。

Andoroid で使われる CPU のうち、自分が興味をもったものしか知らないのだが、

  • SDカードや USB からブートできる CPU

    Jz4760/Jz4760B (MIPS) (USB からブート)

    TCC8902 (USB からブート)

  • SPI Flash からブートできる CPU

    VIA WM8650

    (注意) SPI Flash にどんなブートローダが入っているかに確実性は依存する。しかし、それについて情報を持っていないので、リスクがある。

    もし、u-boot が入っているなら、ソースコードは入手できる。コードを見ればどういう機能をインプリメントしたか分かるはず。

性能がいまひとつの、安物ばかりで申し訳ないが、いまのところこれしか知らない。

TCC8902 の次の世代の TCC8803 あたりは、USB ブートの機能を持っていると思われるが、確信まではできない。

RK2818 や その次の世代の RK2918 が USB ブートの機能を持っているといいなとは思うのだが、前の RK2808(Moonse E7001) では 文鎮化した話をよく聞いたような気がするので、あまり期待できない。

3) サスペンドでの消費電流が少ないこと

サスペンドして長時間もたないと、持ち歩いて 使うのはなかなか難しい。だが、この条件を満たさない機種の割合が 非常に多いと感じる。

持ち歩かなくとも、すぐに使える状態にできないと 使う頻度が減る。やはり重要な要素だと思える。

サスペンドが使えなくとも数秒で起動するなら問題ないのだが、それはもっと難しいだろう。

こうなってしまうのは、理由があると思う。たぶん 薄利で 販売するし、製品寿命が短いために、開発費をかけられないのだ。そうであれば、残念なことに今後もあまり期待できない。

これを条件としてしまうと、買いたいと思える機種がなくなってしまうかも知れない。次の 4) の条件を満たすのなら、"望ましい" ぐらいにしておく。

4) カーネルのソースコードが入手できること

私は、そういうものしか興味がなく、カーネルのソースコードが入手できないものは買わない。

ただし、GPL 違反だと声高に主張するつもりはない。いまのところ 中国国内向けのものをなんとか入手している感じがあり、へたをすると 単に買えなくなるだけかも知れないという不安がある。それに、著作権の問題であり、第三者が声高に主張するのは筋違いとも思う。

ただ、私は決してカーネルのソースコードが入手できないものは買わない。ソースコードが入手できると、上記のサスペンドの問題が解決できる可能性が出てくる。自分が解決できなくとも、誰かがするかも知れない。そういう意味で 使うだけの人にとってもメリットがある。

    ちなみに、本来 GPL 違反に問われるのは、販売者であるはずだ。バイナリを渡した人に責任があるのであって、ビルドした人に責任があるとは書いてない。もちろんビルドした人に最終的に責任が行くが、責任がある期間は有限だ。その期間内にソースコードを入手しておかないと、中古として売ったりすると GPL 違反に問われるリスクを負うことになる。

    GPL違反の問題は、厳密に適用すると 一般のユーザにも関わってくるような種類の問題だ。だからあんまりアレコレ言いたくないのだ。

カーネルが入手できる CPU

  • Jz4760/B

    ftp://ftp.ingenic.cn/3sw/01linux/ にパッチがある。

  • tcc89xx/88xx

    http://www.telechips.com/ の Technical Support に Open Source SW というリンクがあり、カーネルが置いてある。最新は 2011/08/22 の日付。

  • VIA WM8560

    http://ftp.gpl-devices.org/pub/vendors/Wondermedia/WM8650/
    公式サイトは知らないが、ググったら 見つかった。

    GPL的には、Android のそれぞれの機種でカーネルのソースコードが入手できないといけない。その機種に対応するために多少の修正が入るはずでそれがなければビルドできない。だが、ソースコードだけあっても、データシートが入手できないと実際に改良することは難しい。とりあえず、CPU メーカが ソースコードを公開していたら 条件クリアということにしておく。

      本来必要なのは、CPU メーカが出しているソースとの差分(patch)と .config 。これだけあれば、リリースされているものと同じものが再構築できるはず。これぐらいならメールに添付できるぐらいの量。

    ちなみに、TI や Freescale といった有名所は、さがすまでもなく条件はクリアしているはず。

条件は以上。人によっては、静電式のタッチパネルであることとか、いろいろな条件があると思う。だが、上であげた条件は、それ以前のもので、機能や性能がいくらすぐれていても選択枝には入れない。

追記: 文鎮化を避けられる他の CPU

AML8726-M Cheerchip AMLogic -- Novo8 が採用しているこの CPU は、SD カードからのブートができて、ツールもあるらしい。

詳しくは知らないが、とりあえずメモ。

Novo7 の「Allwinner A10」はどうなのだろう? ちょっと興味がある。
posted by すz at 06:52| Comment(0) | TrackBack(0) | 日記

2011年08月30日

開発環境の整備(1)

新たにマシンを組んで開発環境を整備することにした。

なにの開発環境かというと、当然ながら Jz47xx の開発環境だ。OS は、64bit の Linux で RHEL 6.1 clone 。

    後述するが、64bit の Linux というのは重要な要素。64bit が使えるマシンを持っていなかったので、わざわざ新調することにしたのだ。

    CPU は、AMD Fusion E-350 。64bit だけでなく、仮想化の機能も使ってみたい。低消費電力も重視しているので、これになった。

    RHEL 6.1 clone と書いたのもわけがある。Scientific Linux や CentOS が有名 だが、そのどちらでもないし、最終的に 全部自分でビルドしたものに置き換えるつもりなので、野良 clone になりそう。

さて、64bit Linux を使う思惑の説明をしておこう。

    (1) qemu は、マシンそのもののエミュレータのほかに、Linux のバイナリの実行もサポートしている。... 要するに mipsel の 32bit の環境を作れば、chroot することで 動かすことができる。

    (2) 64bit の x86_64 の環境は、/lib64 , /usr/lib64 を使うようになっていて、32bit の 共有ライブラリと共存できる。この特徴を利用して、i386 + x86_64 環境ではなく、mipsel + x86_64 環境にしてしまおうというのが思惑。

    (3) rpm 関係をはじめとして、devel 以外の環境は x86_64 のものを使えるし、noarch パッケージも ビルドする必要はない。これはありがたい。

    ちなみに、x86_64 では i386 などを動かせるという 定義を rpm で しているわけだが、mipsel も 動かせるという定義に変えないといけないはず。ちょっと面倒かも。

こういう思惑で進めていて、うまくいけば RHEL 6.1 相当の mipsel 環境ができあがる。ただ、失敗するかも知れない。なかなか難しいのだ。

    どう進めていくかもうすこし説明しておこう。

    (1) まずは、chroot する x86_64 自体のビルド環境を作る。実環境は壊したくないし、最終的に mipsel の ビルド環境も chroot して作る予定なわけで その予行演習にもなる。

    (2) まず、devel パッケージをいれて、最低限度のものはすべてビルドできるようにする。

    最低限度のもの ... という定義はかなり面倒。ちゃんとビルドできることも確かめておかないとならない。... でビルドできることを確かめる過程で 野良 clone ができてしまうわけだ。

    この作業を進めていたが、だいぶ目処が立った。ただし、ビルド環境のみを重視しているので、gnome などは排除している。

    (3) 次に qemu と クロスのビルド環境を作る。

    クロスといっても fullset はすこぶる面倒。fortran とか java とかあるし それらに必要なライブラリ群も膨大になる。まずは、gcc と g++ をなんとか作り上げる。

    この作業も進めているが、gcc をビルドするのに glibc が必要だったりする。その上なぜか 実行できるかチェックしていたりして ... qemu の環境も必須だったりした。

    ちゃんとした glibc はないので、Ingenic のサイトから とってきた glibc のバイナリ から の crtX.o とか libc.a とかを借用することで、gcc はなんとかビルドできた。

    また、ヘッダファイルも一式必要のようだ。target は mipsel-linux にした。これは、x86_64 の ヘッダファイル と Linux カーネルの mips の asm からとりあえずでっちあげて /cross/mipsel-linux/include に置いた。(あと prefix は /cross )

    ちなみに使った gcc は、4.4.3 (patch なし) 。あくまで仮置き。

      この gcc で Jz47xx のカーネルがビルドできるか試してみたところ OK 。動くものが出来たかどうかは分からないが、たぶん大丈夫だろう。たとえ、ここでやめても一応成果にはなった。

    gcc と g++ ができたら、次は glibc のビルド。 glibc が出来れば、ちょっと一息つけるのだが、まだ出来ていない。

    (4) それが出来たら、少しづつパッケージをビルドしていく。パッケージをビルドするのは、依存関係があるから 一筋縄ではいかない。エラーになったら 依存関係があるもののビルドをやって、再度ビルドしなおし。たいへんな作業なのだが、x86_64 環境を作る過程で かなり練習している。ただ devel パッケージを当てて端折ったところもあるから、難しいところも出てくるはず。

    (5) パッケージがだいぶ揃ったら mipsel をメインにして 新たなビルド環境を作る。ビルドのほとんどは gcc (g++) の実行が占める。これを qemu のエミュレーション でやっていたら終わらないので クロスの gcc は残す。ほかに ビルドが出来なかった devel でない環境は x86_64 のものを流用する。

    このビルド環境で再度作ってみる。一回作れたので問題はないはず。

    (6) 最後にできたものを 実機にもっていく。ひょっとしたら大きな落とし穴があって動かないかも知れない。... といっても glibc ぐらいのもののはずで、(5) の環境で作り直す。

    ちなみに、softfloat にはしない。Jz4760 は fp があるし、ないものでも カーネルでのエミュレーションでなんとかなる。

    (7) 最終目標は、自分自身をビルドできる最小セット。ビルドに関係ないものは切り捨てるし、最小にするために、SPEC ファイルも書き換える。(gnome とか ビルドしないつもりだし、ドキュメント関係も 切り捨てるつもり)。予想では RHEL 6 全パッケージの 1/4 〜 1/3 ぐらいの規模になる。

... とまぁ遠大な計画。まだ (3) の途中だし挫折するかも知れない。すくなくとも時間はかかる。時間がかかると、途中で別のことがしたくなって中断するかも。

前に redhat-7 の環境をどうのということを書いたが、よくよく見たら ビルド環境がなかったのでパス。もっともそれがあったとしても RHEL 6 レベルに到達するのはかなり難しい。今回は、RHEL 6 どうして arch の乗り換えという方針。これなら成功すれば 一気に最新の環境が出来上がる。うまくいけば ppc も作りたい。arm までは手を出さない。(RPM ベースでは arm の実績はないようだ、ppc や mips は 64bit 版がある)

追記1 -- 気がついたことを追記していこうと思う

  • glibc は、RHEL のビルド途中のもの (すなわち正規のパッチを当てたもの) のビルドがなんとかできた。(ただし gcc,g++ までで addon も rtkaio は失敗)


    ftp://ftp.ingenic.cn/3sw/01linux/00toolchain/
    jz-crosstools-src.tar.bz2 67863 KB 2009/04/03 0:00:00


    ビルドするにあたり、これに含まれている ビルドスクリプトが大変参考になった。

    ちなみに、正規の glibc は mips に対応していない。ビルドするには、glibc-ports を glibc のディレクトリに置いて addon のリストに top ディレクトリを加えるそうだ。

  • ただ、gcc はあくまでクロス用のものしか作れていない。なにが不便かというとライブラリを /cross/mipsel-linux/lib に置かないといけないということ。/lib , /usr/lib を使うようなものにしたかったのだが、挫折。

    だが、よくよく考えてみれば、本当にクロス... というか native で動かしたいのは、cc1 と cc1plus のみ。 rpmbuild で mipsel 用の gcc の パッケージが作れれば それを当ててから cc1 と cc1plus を置き換えれば良い。当面は rpmbuild でビルドしていくこと をやっていこう。

    binutils は、cc1 と cc1plus ほどは CPU を消費しない。mipsel のパッケージを作って エミュレーションで動かしても良いかも知れない。

  • rpmbuild についてだが、--target=mipsel を付けるだけでビルドできるものがあった。/usr/lib/rpm/macros を編集しないといけないと思っていたのだが、単純なものはそれすら必要ない。

    ただ、作ったものは rpm でインストールできない。結局は /usr/lib/rpm/macros を編集しないといけない。

  • rpmbuild では、mipsel だけの依存関係は見てくれない。x86_64 の rpm があれば通ってしまい、必要なものがないのにビルドしようとする。

    これは、困るので一旦 devel パッケージ群を アンインストールすることにした。

    ビルドが通ったら、x86_64 の devel をインストールして、mipsel の共有ライブラリを /cross に コピーしていく作戦。

    実は、言うはやすし、なのだ。devel パッケージは 200-300 個ぐらいある。やってられないので、早めに gcc の rpm を作って rpm コマンドが使えるようにしたい。

  • rpm で、システムの arch を見ている。/bin/arch や /bin/uname 経由なら 割と簡単にごまかして mips に見せかけられそうだが、システムコールで見ているとちょっとやっかい。これは調べておかないと。

    ちなみに mipsel のバイナリになってしまえば qemu が "mips" を返すようになる。"mipsel" でなくて構わないのか? という気がするが カーネルがどうなっているか調べて 必要ならそれに合わせようと思う。

追記2 -- いくつか失敗したのでメモ

  • gcc や binutils は、本来 rpm を作成する予定のソースコードを使い、機能に関するオプションも同じにしておく。

    gcc の パッケージのビルドは、作成した gcc を使ってライブラリを作成する。作成した gcc とは、mips だから cc1/cc1plus を含め qemu で動作する。そうなると時間がかかってしょうがないのだ。

    正規のパッケージを作成するときは止むをえない。(セルフ環境が出来ていたら、そちらを使った方が良い)。だが、とりあえず、バイナリが使いたいだけなので、ビルドを一旦止め x86_64 の cc1 に置き換えるとかした方が良い。

    最終的なクロス環境でも x86_64 の cc1/cc1plus 置き換える予定だから、同じオブジェクトが出るようにしておいた方が良いという理由もある。

    binutis は、シビアではないと思うが、些細な差異が問題が出るといやなので同じにしておく。

    ちなみに --target は、mipsel-linux で良いと思う。

  • x86_64 で動かす クロス用の 環境がビルドできたら、mipsel に見せかけるように環境を変える。/usr/bin の gcc とか as,ld などは、mips のものに置き換える。

    あと /usr/include や /lib /usr/lib も置き換え。/cross/mipsel-linux 以下にあるものをコピー。
    (簡単なプログラムが ちゃんと コンパイルできて、動作するかも確認しておく)

    /usr/lib/rpm/macros は、x86_64 を mipsel に置き換える。あと %mips mipsel を追加。

    /bin/uname , /bin/arch も mips を返すようにすべきだが、まだやっていない。

追記3 binutils/gcc/glibc の変更

    ビルドを進めていたのだが、gcc のビルドで internal error になる。x86_64 の cc1 を置き換えても同じ結果。

    だんだん面倒になってきたので、mips64el で実績のあるパッケージを使うことにした。64bit だが、実績のないものより随分マシ。

    RHEL6 の gcc は、4.4.5 ベース。だが、/usr/lib/gcc/x86_64-redhat-linux/ を見ると 4.4.5 は 4.4.4 のシンボリックリンクで 4.4.4 と共用できるようにしているように見える。

    さて、gcc-4.4.4 というと fedora 13 。

  • http://fedoraproject.org/wiki/Architectures/MIPS

    ここを見ると、fedora 13 は、mips64el への移植プロジェクトがあって、バイナリとソース RPM をリリースしている。

    で、オリジナルの fedora 13 のパッケージと spec ファイルを比べると、どこに変更が必要かわかる。binutils でさえパッチが追加になっていて、一筋縄ではいかないような感じ。RHEL6 をベースにして target だけ変更すれば良いような甘いものではなかったらしい。

      ちなみに差分について、メモに残しておく。

      binutils
      Patch101: binutils-2.19.51.0.2-ls2f.patch
      Patch102: binutils-2.20-loongson2f.patch

      +%ifarch mips64el
      +# no this feature in mips
      +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fstack-protector//g'`
      +%endif
      +%ifarch mips64el
      + --disable-multilib \
      + --disable-fixed-point --without-ppl --without-cloog \
      + --disable-checking --disable-werror \
      +%endif
      +%ifnarch mips64el
      mkdir -p %{buildroot}%{_prefix}/sbin
      gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
      strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
      +%endif
      +%ifnarch mips64el
      %post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade
      +%endif
      +%ifnarch mips64el
      %{_prefix}/sbin/libgcc_post_upgrade
      +%endif

      glibc:
      +Source2: glibc-ports-9f99a41.tar.bz2
      +Patch2: %{glibcsrcdir}-fedora-mips.patch

      +mv glibc-ports-* ports
      +%ifarch mips64el
      +%define _lib lib32
      +%define _libdir %{_prefix}/lib32
      +BuildFlags="-Wp,-U_FORTIFY_SOURCE"
      +GCC="gcc -march=mips3 -mabi=n32 -mplt -fPIC -fexceptions -Wa,-mfix-loongson2f-nop"
      +GXX="g++ -march=mips3 -mabi=n32 -mplt -fPIC -fexceptions -Wa,-mfix-loongson2f-nop"
      +%endif
      +%ifarch %{portarches}
      +AddOns=,ports$AddOns
      +%endif
      +%ifarch mips64el
      +/lib32
      +/usr/lib32
      +%endif

    • gcc のビルドにすごく時間がかかるのだが、ほとんどは、fixed-point の生成。(さらに エミュレータ環境では これのための時間が飛躍的に増える) 使いもしないのに、やってられないので、disable することは重要。
    • glibc に mips を対応させるには、 glibc-ports が必要。
    • -march=mips3 -mabi=n32 これはどうすべきなのだろう?
    • redhat 系の mips では、64bit が標準で 32bit は lib32 を使うものらしい。-- これは 気に入らない。x86_64 のように lib と lib64 を使うようにして欲しかった。まぁ好き勝手に作るので、32bit 専用で lib を使うようにしたい。
    • 上でも書いたが soft-float にはしない。Jz4760 は FP を持っているし、次に出る Jz4770 も持っている。その前のものは FP がないが、別にカーネルでのエミュレーションで問題ないはず。soft-float にすると FP を持っている CPU がそれを生かせない。-- こっちのデメリットの方が大きい。

    さて、この fedora 13 (MIPS) の binutils/gcc/glibc をビルドして、x86_64 の環境も入れ替えることをまずやろうと思う。

    ... これはなんとかなった。いろいろ問題があるもののパッケージも作れた。

    次は、cross 用の もののビルド。

    binutils は簡単だ。

    --define "binutils_target mipsel-linux" --without testsuite

    このオプションを追加するだけで良いらしい。

    問題なのは、gcc 。

    ../configure --prefix=/usr --target=mipsel-linux --enable-shared \
    --enable-threads=posix --enable-__cxa_atexit --disable-libunwind-exceptions \
    --enable-gnu-unique-object --enable-languages=c,c++ --disable-libgcj \
    --disable-multilib --disable-fixed-point --without-ppl --without-cloog \
    --disable-checking --disable-werror --disable-libgomp

    クロスの環境は、これでなんとか。ただし、include ファイル一式と glibc を用意しないといけなかった。(さらに mipsel の gmp-devel, mpfr-devel libz-devel 相当も用意した)

    実をいうと、この bootstrap となる環境をどう作ったのか良くわかっていない。最終目的のモノが出来てしまえば それを使うようにすれば良いから 気にしないことにする。

      いちおうメモしておくと、もともとの ヘッダーファイルは fc13 mips64el のパッケージから。glibc は Ingenic が提供しているバイナリ(たぶん soft-float) 。それを元に中途半端に作ったものを入れ替えつつ試行錯誤した。

    さて、これを元に glibc

    インストールした gcc/g++ は、prefix なしの as/ld を使うようなので、binutils のコマンドを /cross/mipsel-linux/bin とかに prefix なしでコピーしておく。

    で、build 用ディレクトリは、x86_64 用に rpmbuild で作った上で、glibc-ports , を ports に rename して入れ、glibc-2.12-2-gc4ccff1-fedora-mips.patch を当てる。


    export PATH=/cross/mipsel-linux/bin:$PATH
    ../configure \
    CC="mipsel-linux-gcc" \
    CXX="mipsel-linux-g++" \
    CFLAGS="-fexceptions -DNDEBUG -g -O3" \
    --prefix=/usr --enable-add-ons=ports,nptl,c_stubs,libidn --without-cvs --enable-kernel=2.6.18 --with-headers=/usr/mipsel-linux/include \
    --enable-bind-now --with-tls --with-__thread \
    --enable-multi-arch --disable-profile --enable-experimental-malloc --disable-nss-crypt \
    --build=mipsel-linux





  • 追記: 2011/10/04

      なんだか 遅々として進まない。

      MIPS 用の gcc パッケージのビルドで失敗する。... ひょっとしてメモリ(というより空間)不足?

        MIPS の 32bit は、ユーザ空間(kuseg) が Max 2GB で小さい。3GB とか 場合によっては、4GB 弱使える i386 より不利な面がある。 クロスなので、メモリ自体は不足しないと思うのだが、リソース制限がかかってエラーになっているかも知れない。

      それはともかく、飽きたので まずは自分自身をビルドできるものをちゃんと作ることにした。

      それは、随分進んだ。(jdk の 2-3 のパッケージを除き)ビルドしたパッケージだけを使って自分自身を作れている。 だいたい必要な SRPM 数は 600 弱。java なしで済ませられると 500 以下にできるのだが、まだうまくいっていない。ちなみに gnome は外してある。latex など一部のドキュメント・ツールと emacs も外している。

      当てたパッケージの総数は、1000 弱。

      これを fix させてから再び MIPS に挑戦するつもり。

    追記: とりあえず今の状況とビルドメモ

      まず、RHEL6 野良clone だが、ほぼ自分自身がビルドできるようになった。

      できないのは、gcc の i686 ライブラリのパッケージのみ。32bit の環境まで作れば問題ないはずだが、面倒なのでパス。

      作ったのは、1301 の rpm に加えて java 関係 をビルドするためのパッケージ 205 と i686 glibc パッケージ 8 。まぁ 1500 個ものパッケージがある。

        http://nmj.sumomo.ne.jp/my-rhel6/

        ここに野良ビルド版の 全て -- ソースRPM と RPM を置いておく。ただ、大きいので予告なしに消すかも知れない。

      これを元に mips 版を作るのが目標

      0) 準備

      ビルドする環境は、作った RHEL6 野良clone 。これの tarball を元に chroot での環境を作る。まず、この環境の 32bit は mips にするので、i686 パッケージは全部アンインストールしておく。
      次に qemu をビルドして、/usr/bin/qemu-mipsel をインストール。あと これを実行するように binfmt_misc を設定する。

      1) クロス版 binutils の ビルド。

      RHEL6 では、オリジナルの binutils でクロス版も作れるようになっている。

      # rpmbuild --define "binutils_target arm-linux-gnu" \
      --define "binutils_target mipsel-linux" \
      --rebuild binutils-xxxx.src.prm

      とりあえず、こんな感じで作って インストールする。

      ちなみに、これで作った binutils は、普通のクロス用と違う。ld のパスが セルフ用と同じになっている。/lib /usr/lib がデフォルト。

      2) クロス版 gcc の ビルド(1)

      つぎに gcc だが、mips の libc やヘッダファイルが必要 。で、gcc が出来たら glibc を作って libc やヘッダファイルを作る。--- 巡回してしまっていて ゼロからのビルドは大変難しい。おすすめは、

        ftp://ftp.ingenic.cn/3sw/01linux/00toolchain/

      から toolchain のバイナリ と ソースを取ってくること。ソースにはどうやってビルドするかが分かるスクリプトも付いている。

      クロスの環境は、/usr/mipsel-linux に作る。この下に 最初に使う libc,libm と include ファイルが必要になる。

        インストール先は、上記だけで済まない。/lib と /usr/lib/gcc/mipsel-linux , /usr/libexec/gcc/mipsel-linux を使う。


      gcc のソースコードは、RHEL6 のもの -- gcc-4.4.5-6.el6.src.rpm を使う。これを普通にビルドし、configure を終了したところで止める。

      このソースツリーを使って mips 用の config をする。

      # ../configure --prefix=/usr --target=mipsel-linux \
      --build=x86_64-redhat-linux --host=x86_64-redhat-linux \
      --disable-threads --disable-checking --with-system-zlib \
      --enable-__cxa_atexit --disable-libunwind-exceptions \
      --enable-gnu-unique-object --enable-languages=c,c++ --disable-libgcj \
      --disable-libmudflap --disable-libgomp --disable-libssp \
      --disable-shared --disable-libstdc__-v3

      最初は、シェアードライブラリがない ので disable にする。また、libstdc も無理なのでパス。
      これで configure して make , make install 。

      3) glibc のビルド 。

      これもまた、RHEL6 のものを使う。glibc のビルドでは、カーネルヘッダのみあれば良い。前に使った include ファイル や libc.libm は一回捨てて、カーネルヘッダのみを /usr/mipsel-linux/include に展開する。とりあえずは、ingenic のサイトの toolchain の ソースに付属するもので良い。

      さて、mips の glibc をビルドするには、glibc-ports が必要 ... なのだが、RHEL6 の glibc は、正規版ではなく、ある時点でのスナップショットのため完全に対応する glibc-ports がない。

      しょうがないので、glibc-ports-2.12.1.tar.bz2 をベースにする。上記のように glibc のソースを展開したあと、これを展開して、ports に リネーム。

        実をいうと、glibc-ports-2.14 の ports/sysdeps/mips だけ入れ替えている。ただし、fpu/ftestexcept.c , fpu/feupdateenv.c はエラーになるので 12.1 に戻している。


      # ../configure CC=mipsel-linux-gcc CXX=mipsel-linux-g++ \
      AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib --prefix=/usr \
      --enable-add-ons=nptl,c_stubs,libidn,ports --without-cvs \
      --enable-kernel=2.6.18 --enable-bind-now --with-tls --with-__thread \
      --disable-multi-arch --disable-profile --enable-experimental-malloc \
      --disable-nss-crypt \
      --host=mipsel-linux --build=x86_64-redhat-linux \
      --with-headers=/usr/mipsel-linux/include

      いまのところこれ。add-ons から rtkaio を除いているし、disable-nss-crypt の指定をしている。nss-crypt がビルドできるようになったら enable して glibc を作りなおさないといけない。... ただし先の話。

      ビルドが完了したら インストールするのだが、x86_64 の環境を壊してしまうとまずいので、install_root を指定する。

      # make install_root=/tmp/new-glibc install

      たとえばこんな風にする。new-glibc にインストールされた、lib 配下を /lib に移動する。
      そして、usr/include を /usr/mipsel-linux/include に移動。

      あと usr/lib を /usr/mipsel-linux/lib に移動。ただし問題がいくつかあって fix しないといけない。

      • いくつかの .so は ../lib のもののリンクになっている。これを /lib になるように張り替える。
      • libc.so などは、テキストで、/usr/lib を指しているところがある。これを /usr/mipsel-linux/lib になるように編集する。


      4) クロス版 gcc の ビルド(2)

      正しそうな 環境ができたので、作りなおす

      (1回目) --disable-shared --disable-libstdc__-v3
      (2回目) --enable-shared

      最終的には、--disable-libmudflap --disable-libgomp も削除しないといけないし、gcj もビルドしないと。でも、それは先の話。

      さて、これで gcc と glibc が出来た。このバイナリ一式があれば、gcc も glibc も再ビルドできる。整理して、ダウンロードできるようにしておこうと思う。

    ここまでがクロスの環境。

    さて、ここからは、qemu-mipsel を使った 擬似セルフ環境に移る。

    (前に戻れなくなると困るので、以上の chroot 環境を fork する。)


      5) rpmbuild できるように 環境を切り替え

      まず、

        /usr/lib/rpm/platform/xx/macros
        /usr/lib/rpm/rpmrc

      に mipsel の定義を追加。

      次に、/usr/bin/gcc など を mips 版に置き換える。setarch が使えると便利なのだが、調べていない。手動で置き換えても ... まぁなんとか。

      こうすると、次から ビルドするものは すべて mipsel になる。rpmbuild での指定は、

      rpmbuild --target mipsel ....

      とする。

      簡単なものは、これでビルドできてしまう。うまくいくかどうかのチェックには、zlib と mingetty を使っている。

      ここからが大変。必要な パッケージは x86_64 で すべて当たっている。 依存関係が分からない状況で ビルドしていく。できた mipsel 版の rpm も rpm コマンドでインストールしない。rpm2cpio を使って /lib /usr/lib を中心に取り出して 手動でインストールする。

      /lib, /usr/lib にインストールされている ダイナミックライブラリ の 元となる ソースパッケージは、280 ぐらい。これらを地道に 作っていく。なかには、gcc (セルフ)など手強いものがある。が、クロスでの gcc ビルドは諦めた。実機で ビルドするつもり。

      追記: これなのだが、妙にうまくいっていない。

      dlopen が見つからないとか 作ったシェアードライブラリがリンクできないとか 色々。
      どうも MIPS の場合は、-fPIC でないとシェアードライブラリが作れないような ...

        dlopen が見つからないというのは、明示的に -ldl を指定していないことが理由。

      あと -D__mipsel__ が自動では定義されていない。普通は rpm の設定でごまかせるのだが、ごまかせない rpm もある。

      さらに、gcc は、/usr/mipsel-linux/xx を必要とするのだが、prefix が /usr になっているので、両方に同じものを用意しないとまずい。

      まぁ、色々あるのではあるが、bash も ビルドは出来て、qemu-mipsel では動いている。binutils の セルフ版もビルドは出来た。glibc は惜しいところまで行く。(locale 作成で メモリ不足のためエラー )

      gcc も 途中までは出来る。クロスで一旦全部作ったから、gcc や g++ のフロントエンドだけが欲しい。( cc1 などは、クロスのものを使いたいし ライブラリも全部できている ) 。エラーが起きるのは確か cc1plus の 2 回目のビルドだったと思うので、gcc , g++ はできているかも知れない。

      あと、メモリ不足の件。これは実際は 空間不足のはずで、ヒープのスタートアドレスとか ダイナミックライブラリのスタートアドレスが関係しているのだと思う。だが、どこで定義しているのかまだ分かっておらず直せていない。

    調査(1)

    • __mipsel__ を定義したいのだが、誰がどこで定義するのが正しい?

      gcc を見たら、__x86_64__ などは、gcc/config/i386 の配下で見つかった。答えは gcc 。gcc は、cpp/gcc/cc1 のパーツに別れているのだが、関係あるのは (おそらく) cpp 。

      で、定義するのは、gcc/config/mips/linux.h (の TARGET_CPU_CPP_BUILTINS() ) が普通らしい。この定義の中で TARGET_64BIT, TARGET_BIG_ENDIAN を参照して、

      __mipsel__ , __mipseb__ , __mips64el__ , __mips64eb__

      のどれかを定義することにした。

    • メモリ不足はなぜ起きるのか? まずは map から

      # cat /proc/プロセス番号/maps

      とすることで、どこに map しているかが分かる。qemu-mipsel を使っても 元の mips の mapping に従っているように見える。maps を 整理すると ...

      00400000- プログラム(cc1 など)
      xxxxxxxx- heap (text - data - bss の次から)
      40000000-40001000 ---p
      40001000-40a01000 rw-p stack
      40a01000- /lib/ld-2.12.so

      40000000- /lib/ld.2.12.so
      40b1c000- libgcc_s.so.1

      60000000- qemu-mipsel
      6d523000-6d544000 [heap] (qemu 自体の)
      2b898922c000- /lib64/ld-2.12.so

      heap や stack について、簡単なプログラムで printf してチェックしたところ、heap は、プログラムの終わりから stack は、40a10000 あたりから逆向き に割り当てられることが分かった。

      要するにプログラムが使えるアドレス空間は、ダイナミックライブラリを除くと 00400000 - 40000000 の 約 1GB ということになる。これが足りない.... ということが 起きるかどうかは、分からない。随分前のバージョンでも 数百MB なら使っているのを見たことがある。

      問題は、スタックかも知れない。 40000000 からの 1ページは、アクセス不可になっている。ということは、これがボトムで これを超えることは出来ないのかも。そうだとすれば 40a01000 までの 10MB がスタックに割り当てられた 領域。

      stack も alloca を使うと大量に消費することになるから、stack 領域の不足 の可能性は高い。

      ただ、 40000000 にアクセスしたときに copy-on-write で割り当て直すかも知れない。これも簡単なプログラムで確かめることが出来る。確かめてみたところ、40001000 には書き込めたが、40000000 だと core dump した。たぶん、stack bottom は超えられないのだろう。

      追記: 調べていたら、qemu の -s オプションでスタックサイズを変更できることが分かった。

      たとえば、qemu-mipsel -s 67108864 /bin/bash.mips として 起動すると /lib/ld-2.12.so のアドレスが 44001000 に変わる。

      で、ソースを見てみると ... ulimit も参照してスタックサイズを決めている。

      stack size (kbytes, -s) 10240

      ulimit で見てみたら、10MB にしていたのは、自分であった。そして、たとえば ulimit -s 65536 とすれば、64MB 確保されることが確認できた。

      virtual memory exhausted: Cannot allocate memory

      それはクリアできたが、やはりダメだ。... というより悪化しているかも。

    追記: 結構出来てきた。パッケージ数にして 208 個。(... といっても 1/5 ぐらい。)


    • cc1 , cc1plus

      なんとか セルフで cpp, gcc , g++ と cc1, cc1plus を作ることはできた。忘れないように書いておくが、エラーになったら prev-gcc の cc1 を クロスのものに置き換える。2 回ぐらい置き換えたら なんとか誤魔化せた。

      セルフ環境では、セルフで作成した binutils , glibc の rpm を使っている。

      binutils は、オリジナルの srpm で OK だったが、glibc は locale の作成でメモリ不足でエラー。
      まとめて変換しているところを 1 つづつ行うように修正。それでも最後はダメなので、いくつか 削除しておく。

      元のインクルードファイルは、一旦 /usr/include-x86_64 に rename して新しく作った glibc-headers と glibc の作成に使った カーネルヘッダをベースにした。

      で、基本は、cc1, cc1plus をクロスのものに置き換えて使う。

      ... これで良いかと思ったのだが、クロスは、/usr/mipsel-linux/include を要求する。これはシンボリックでごまかす。ただし、/usr/mipsel-linux/lib を作るとまずい。-ldl がないといったエラーは lib も作ったためのようで、かなりハマった。

      良く知らないのだが、cc1 は cpp の機能も兼ねるのが原因みたい。__mipsel__ などの定義も クロスでは作っていないので、有効にならない。これも要注意。

      binutils も 実をいうと良くわからない。セルフで作った ld は、/usr/lib /lib を見てくれるが、クロス用は ちょっと挙動が違うような ...

      あと /usr/bin/ldd と /sbin/ldconfig は、新しく作った glibc のものと置き換えた。

    • pkgconfig

      もともと pkgconfig は、/usr/lib64/pkgconfig に *.pc として 作られている。
      これらは、/lib64 などを参照するように書かれている。これらを全部書き換えるのではなく、
      セルフ用に 作った pkgconfig を使うようにしている。こうすると 新しく作った /usr/lib/pkgconfig/*.pc のみを参照するようになる。

      足りないものは、x86_64 の方から取ってきて書き換える。

    • linux/xx.h

      Ingenic のカーネルヘッダが元だが、足りない定義がある。問題が起きるのは、audit など

      capability.h falloc.h netfilter.h

      いまのところ上記を置き換えている。

    • libgcrypt

      -DNO_ASM を指定するとなんとか。

    • elfutils

      ビルドできていない。どうしたものか。

    • メモリ不足(空間不足)

      解決できていない。gcc のビルドや、glibc のビルドで起きている。

    • chrpath
    • いんちき spec

      rpm の依存関係がループしていたりするので、いきなり 正しい rpm は作れない場合がある。こういうのは、とりあえず作っておいて、後で作り直す。

      ... で、そういう対応をしたものが実に多かったりする。特に python とか。

      当面の目標は、python をビルドすること。これができると 大分進んだことになる。

    • PATH_MAX

      この定義がないのでエラーが起きるものがいくつかある。正しく修正したいが、どこを修正すべきか分かっていない。

    • valgrind ( arch がないというエラー )

      とりあえず、python が出来た。だが、perl も rpm もビルドできていない。あと ポイントになりそうなもので、mesa がある。

      rpm にために必要なもので作れていないのは、elfutils と nss (nspr, nss-softokn, nss-util)

    • libtiff , tcp_wrappers

      どうもおかしい。ちゃんとリンクできないみたいだ。
  • posted by すz at 00:46| Comment(0) | TrackBack(0) | 日記

    2010年11月27日

    taobaoでT552/T555購入

    Jz4755を採用した中華PMPを ついに入手できた。


    (T555)

    (T552)

    買った T552/T555 自体については、『Jz4755(T552とか)』の記事を参照してもらうことにして、まずはコストとか入手に関することをメモ。

    まえに SmartQ5 を購入したとき利用した 代行業者 ジャスティンに今回も頼むことにした。前回は、よくわからない状態で適当に選んだ。レートとかも実はわかってなかった。今回は他の業者も試してみようとちょっと調べてみたのだが、結局今回も頼むことになった。

    • 元→円のレートは、いまだと 12.5 円ぐらい。にも関わらず 16円とかの固定レートを採用している業者がある。手数料 5% とか言ったところで レートの差分が 28% もある。トータルの支払い金額が重要で要素のひとつにすぎないのだが、この不透明な感じが嫌で、そういう業者は避けることにした。
    • 手数料 10% で YAHOOファイナンスの 1.5 円増しといった業者もあった。これだと +12% 。上記より不透明さがなくここにしたいと思ったのだが、最近の取引がキャパシティを超えていて『ご新規さんお断り』状態だったので無理だった。
    • ジャスティンの場合は、YAHOOファイナンスのレートより僅かに高いだけなのだが、手数料がなんだかんだで細かく付く。単価の安いものを沢山買ったり、複数のショップで買う場合はかえって高く付く傾向。今回は1つのショップから あまり安くないものを買うので レートに上乗せしないここで買うことにした。

    買ったものは、T552 と T555 x3 。T555を沢山買い込んだのは、開発用にしようと思ったため。いくつか壊すことになりそうなので 数がいる。T552 は まずは実用として使ってみるつもり。

    購入記録

    • 2010/11/01 見積もり依頼。同日見積もり結果

      T552 265 元
      T555 180 元 x 3

      中国国内基本送料:30元(超過の場合は国際送料で精算)
      手数料:130元+追加3品目×20元=190元
      合計:1025元=12,610円(レート12.3)

      説明にある通りの請求額。

    • 2010/11/13 - 2010/11/15

      T555 について希望した色がなく、しかも生産終了で入荷の見込みがないとの連絡があり、色変更。あと、T555の後継は T556/T557 だそうだ。

        色は、粉色 / 酒色 / 白 の各色 1 つづつにしたのだが、白がなく 酒色 x 2 になった。ちなみに 粉色は 白っぽい桃色で、酒色は ぶどう色。

        T555の後継は T556/T557 というのは、たぶん違う。T556/T557 の方が古いはず。-- たとえば ここに Mahdi のファームウェアがあるのだが、T555 がない。... その後作ったのでは? と思えるが 、入荷の見込みがないのも事実だろう。


        (T556)

        (T557)

        T556 は、液晶面に ボタンが 3 つある。-- 他の目的に使ったりするには、あまり嬉しくない特徴。T557 は、全部 上にあるが、数が減っていて 5 個。


    • 2010/11/24

      発送の連絡と 2 回目の支払い

      国内送料超過分:10元=120円(レート12.3)
      航空書留:153.8元(重量:1900g)
      検品手数料:25元 (これは自分でオプションを付けた)
      合計:178.8元=2,270円(レート12.7)

      請求額:2,390円 (トータル 15000円 + 振込み手数料 x2)

      日本郵便の トラッキング:
       11月19日 引受
       11月25日 到着
       11月26日 受け取り

      期間は随分かかってしまった。欠品になってやりとりがあったから止むを得ない所がある。
      価格は? 最初のところより安いとは思うのだが、1000円-2000円も違わないはず。
      国際送料が思ったより高かったが、箱が無駄にでかかった。

        で安いのか?.. というと 180元の T555 が 3500円。265元の T552 が 5000円といったところ。
        まとめ書いしたからこの値段だが、1 個単位なら +1000円 ぐらいの上乗せ?

        中国国内なら 805元 +送料 40元で買えたわけだ。レートが 12.5 円なら 総額 10500 円。4500 円分が 手数料と国際送料。ものにもよるが、taobao で買うなら これぐらい割増になると覚悟しなければならないようだ。

        あと taobao で、20元とかの電子部品を多数買いたいのだが、ジャスティンでは難しい。頃合いをみて別のところで頼んでみようかと思っている。

      Jz4755 のマシン自体 ほかのところで見つけられなかったのだから、これぐらいで買えて満足ではある。

    T555について


    さて、J4755 の実力はどんなものなのだろう? そして、T555 は本当に Jz4755 なのだろうか?

    まず T555 。イヤホンには TV-OUT とちゃんと書いてある。ボタンの数は、6 つで 数は A-33 と同じ。電源スイッチはスライドスイッチで、いままで見てきた Jz4725B の PMP と同じ。

    サイズは、A-33 より 2-3mm 厚く、ボタンがない分、縦がコンパクト。デザインは悪くない。A-33 のような 安っぽい感じはあまりない。

    電源を入れてみても、一見しただけでは A-33 と 区別がつかない。使うつもりがない 英語ー中国語辞書がついていて、A-33 にはない FM ラジオが付いているのはすぐわかるが 意味もあまりない。

    さて、Jz4755 を実感するために ビデオを見てみる。一応 1080p / 720p / 360p の mp4 (H.264) と 240p の flv (H.264) が用意できたので見てみると..

    1080p / 720p は、対応していないフォーマットだと言われて見られなかった。H.264 の 360p や 240p の flv はまったく問題ない。Jz4725B では、低解像度 Xvid でも引っかかりのような挙動があったのだが、それもほとんど感じられない。あと 動画を再生するまで待たせられる時間が短いかんじ。

    まちがいなく Jz4755 だ。それは良いが、720p の H.264 は無理なのが残念。480p ならあるいは見られるのかも知れないが持ってない。

    バッテリーは、3 時間で 目盛り 1/2 ぐらい。Jz4725B と比べれば Jz4755 は dual core で最大消費電力が大きい ので心配していたが、処理あたりの 消費電力はさほど違わないのかも知れない。

      Jz4725B だと、240p の flv で音ズレが起きていた。ソフトの出来が悪いせいかも知れないと思っていたのだが、動画なら 2 倍速いはずの Jz4755 でこれなら チップの実力なのだろう。

      沢山買った T555 だが、本格的にソフトを作るつもりはまだない。jz4725B のカタが付いてからにしようと思う。それまでは、USBBOOT を動かしてみるとか、Jz4725B との (レジスタの)違いを見てみるとか その程度。

    T552 について


    つぎに、T552 。

    これは、事前にだいぶチェックしているので デザインに関して意外なところはあまりないのだが、前面が湾曲している。あと思ったより縁が広くその分筐体が大きい。

    ボタンはやはり 6 つ。電源スイッチもスライド式。

    電源を入れてみる。T555 と基本同じ機能(FM ラジオは付いていない)。

    問題は動画の機能だが、見れる 動画は T555 と同じだった。見れるものは、T555 と同じく問題ない。
    あと、フィルタ機能はないはずで、低解像度の動画でアラが目立つ心配があったが、480x272 程度では 関係ないようで、思ったより良いかんじ。

    画面は 3.0 inch の T555 と比べると随分大きく感じる。これ以上大きいと携帯性に難がでるし、4.3 inch (か 縁が狭い 5 inch )が丁度良いのかも知れない。
    液晶は横液晶。上下の視野角は狭いが 左右は(多少)広く 縦液晶の T555 より見やすい。

      縁が広い 4.3 inch だが、デメリットとは思っていない。なぜなら最後には改造するつもりだから。余裕があるほうが嬉しい。大き過ぎるのは困るが許容範囲内だと思う。

    液晶の画質については、好みがあるのであまりコメントしない。400x240 になれているせいか、480x272 でも 十分な感じがする。左右の視野角も十分とはいえないが別に困るほどではなさそう。

    実用として使うなら バッテリーの持ちは重要だが、まだよくわからない。

      一時間で目盛り 1/2 になってしまった。液晶の消費電力が大きいのか、あるいは .. バッテリーが弱ってたりするのかも。

    ところで、ボタンの配置は 横一列で T555 と同じなのだが、機能の割り当てが逆。混同してしまってとても困る。MENU ボタンと PAUSE ボタンは チップの機能に結びついている (MENU: USBBOOT / PAUSE: ソフト電源) ソフトで変更できる種類のものではない。こういうのにポリシーがないのはどうかと思う。
    posted by すz at 00:42| Comment(1) | TrackBack(0) | 日記

    2010年09月14日

    三脚固定用ガジェット

    三脚に PMP などを 固定するものを見つけたのでメモ。


    Universal Clamp Mount for Tripods $2.71

    DealExtreme で見つけたもの。クランプになっていて 3.8cm までのものを挟める。フラッシュライトを固定したりするのに便利。

      クランプで挟めるものを PMP に貼りつけたら 良いのかも知れない。ゴム足とか .. そう言えばダイソーで買った フェルトのシールがあった。こんなものでも 剥がれなければ使えそう。


    Anti-rust Tripod for MP4/Cellphones/Digital Cameras $6.30

    これは、PMP とかを固定するもの。100 均で買える三脚と同じ三脚が付いている。

    買ってみたら、写真と違ってラバーが付いていた。A-33(51mm) は挟めた。他のものはまだ試していないが、P5-5/PMP3100(55mm) とか Dingoo A320/A330(55mm) は挟めると思う。

    あまり、金具を伸ばせない。挟めるのは 60mm ぐらいまでのようだ。


    三脚固定用ケータイホルダー 387円 (メール便 非対応)

    これは上海問屋でみつけた。42mm 〜 85mm のものを挟めるそうだ。Neo Slim 3000 (70mm) はこれでないとダメかも。

    角度を 変えることができる普通の三脚なら、上海問屋ケータイホルダーが良さそう。

    角度を変えられないスタンドとか 100均のものとかを使うなら DealExtreme のものが良さそうなのだが ... Neo Slim 3000 は無理。
    posted by すz at 00:15| Comment(0) | TrackBack(0) | 日記

    2010年08月25日

    tcc89xx (E7002とか)

    ハイエンドの 中華PMP には Telechip tcc89xx を採用したものが多いのは知っていたのだが、android も tcc8902 を採用し 2.1 対応のものが出てきている。

    SmartQ V5/V7 も Telechip らしく 草分け的存在かも知れない。



    コストパフォーマンス的には、E7002 (green-tool で 17250円) か。海外なら リスクがあるものの 2 割ほど安い 159.99 ドル とかがある。

    ちょっと気になってきたのでメモ。
    気になった要素は、

    • Chip に USB や SD からの Boot 機能がある。
       文鎮になってもリカバリが可能そう。
        これは重要。元に戻せることが確信できないといじるのが怖い。
    • android 2.1 対応。
       対応しないチップがある以上やはり魅力
       CPU は ARM11 (ARM1176JZ)
        キャッシュは L2 なしで L1 16KB+16KB
    • H.264 1080p に対応
       動画プレイヤーとしても十分使える。
       贅沢を言わなければ末永く使えそう。
       動画アクセラレータを使うには、メーカのサポートがないと厳しい。
        SmartQ 5 (S3C6410) はイマイチだったので気にしている。
        Jz47xx は、ソースコードまで手に入るのだが高性能とは言えないのが残念。
    • 画面を回転してももっさりしない(はず)
       グラフィックエンジンで 90°回転できる。
       SmartQ 5 (S3C6410) はもっさりだったので気にしている。
    • Linux ソースとか データシートが拾ってこれた。
       リンクすると 削除されたりするかも知れないので リンクしない。
       ヒントは、TWS89x_v800_Doc.zip とかが置いてあるところ。


    といったところ。

    ファームウエアには、linux.rom, ramdisk.rom and tcboot.rom が含まれるものらしい。(rootfs も必要そうだが)

    そういう構造をしているのは、

    など。Telechip がベースを提供しているなら みな構造が同じのような気がする。

    usbboot の方法は、拾ったデータシートには書いてなかった。
    SmartQ_V5/V7_partition_recovery_howto が参考になりそう。
    T56 の情報は、ここにあるらしい。

    まぁ、これをいじるのも楽しそうではある。だが時間がいくらあっても足りなさそうなのでパスか。



    ちょっとメモ:ixsoon E6500

    リンク見ると CE 6.0 or android 2.1 のマシン。800MHz だそうだ。これも telechips tcc8902 っぽい。

    「これ」とか 230 ドルぐらいするのが多いのだが、妙に安いところがある。「これ(134 ドル)」 と 「これ (143 ドル)」。なんか怪しげ。それはともかく この怪しげなのには、telechips 720MHz と書いてある。(他だと Marvell と書いてあるところもあるのだが、2.1 は出せてないはず。) それにしても値段の違いはなんだろう? カメラとか GPS とか option が違う?

    追記:10/09/07 E7002 の アルミシェルタイプが出てきた。




    プラシェルは分解が難しいらしく、買うならアルミシェルと考えていた。(放熱効果より 分解が最優先。-- 絶対分解するから)。これは、E7001 初代アルミシェルと同じ。

    green-tool でも 予約を開始している (17,999 円 送料無料)。
    aliexpress だと これとか。162.16 ドル x PayPalUSDJPY(86.3648) = 14005 円。1 万超えるから 消費税を請求されるかも知れない(+700円)。あと国内の場合ショップによっては ACアダプタが変更になっているかも知れない。それに海外からの購入は、リスクが追加される。初期不良とか面倒だし。さらに言うと、専用ケース国内用ACアダプタ+プラグ変換ケーブルを一緒に買えない .. とかのデメリットもある。
    -- あまり得ではないかも知れないのだが ... やはり値段を見てしまう。この値段なら ... だいぶ欲しいような。

    (追記) Pandawill Gpad G10 (Free Shipping USD $148.19 ) が同じものらしい。アルミバックの色も選べるし、唯一 firmware の アップデータを提供している。ケースも売っているし、もし同じものが欲しいなら、ここがお薦めかも。

      で、ポチってしまった。そして、その日のうちに発送のメールが。あとは、はずれを引かないことを願うのみ。

      9/6 オーダで、9/7 発送で トラッキングID(RRxxxxxxxxxCN) が載ったのだが ... 9/18 現在、まだトラッキングできない。引き受けがでれば、+数日で入手できるはずなのだが ... それまでが長い。

      9/19 ... 来るとは思えないので、返金要求を出してみた。
      そうしたら、The goods have been entering Japan. Online you can check. なんて言われて拒絶された。

      といわれても、追跡できないのには変わらないので、もう一度返金要求を出してみたら... 返事がないかわりしばらくして 追跡できるようになった。昨日の日付で。

      来るんだったら、まぁいいや。

      9月19日 14:38 国際交換支店(SHENZHEN CHINA)から発送。
       - こうなれば あと数日。
       - それにしても ショップ自体 SHENZHEN だから SHENZHEN 出るまで 12日か。
      9月22日 12:24 国際交換支店(成田)に到着。
       - ついに日本にきたー。
      9月23日 9:00 税関検査中
      9月24日 13:15 国際交換支店から発送
      9月25日 6:57 到着 XX支店
      9月25日 持ち出し中

      - きたー。
      - 消費税は徴収されなかった。

    そういえば、SmartQ V5 の廉価版の V3 も出てきた。110 ドル+送料? 。-- 4.3 inch だが小さいのが良いなら これが良いかも知れない。

    aliexpress だと、これが $116.49 x 1 + $16.61(@EMS) = $133.10 。

    ファームに関して老舗が出している安心感というものあるし..
    ちなみに、V5 との差

    V5 V3
    OS Linux/Android/WinCE Linux/Android
    CPU TCC8900 600MHz TCC8902 720MHz
    Bluetooth あり なし
    メモリ 256MB ←
    FLASH 2GB ←
    Battery   2000mAH ←
    サイズ 119×78×14 ←

    うーん悪くないなぁ。こっちにすれば良かった。

    E7002 の情報:


    • 【APad】中華パッド/Androidタブレット【iped】wiki: E7002

      タッチパネルが フィルムタイプだそうだ。割れないのが嬉しかったりする。 (E7001 だが分解しようとして割った例があった)

      バッテリーのもちは、wifi使わないで連続3時間。wifi 使うと2時間ってところらしい。

      性能比較 なんてページがあって A81-E(Cortex-A8 600MHz ,TI OMAP3 3530) に比べて もっさり と書かれている。

      まぁ 動画だけはちゃんと見れるのを選択基準にしたから、それでも良いのだが .. ちょっと気になる。

        TI の OMAP3350のページに情報がある。TCC8902 は、16KB/16KB の L1 しかないが、256KB の L2 も積んでいる。アクセラレータは、DSP (こっちも L1/L2 をもっている) による ビデオアクセラレータ と POWERVR SGX グラフィックアクセラレータ。

        CPU の差は、同じクロックで 2 倍ぐらい?(L2 があるのがでかい) -- だが 画面表示は CPU だけでは判断できない。

        TCC8902 でも Image Overlay Mixer と 2D/3D Graphic Processor を積んでいる。CPU にも VFP はある。(ARM1176JZFS) 。

        OMAP3350 に勝つことはないにしても .. アクセラレータを使いこなせてない可能性は一応ある。-- 今後に期待しよう。


    そろそろファームウェアのダウンロードとかの情報を探してみる。

    お、これか?

      【android】oPad系列 M700 M701 X5A【7インチ】
      215:名無しさん@お腹いっぱい。:2010/08/28(土) 11:01:28 ID:X8U4nuOD
      ファームウェア#370きてるね
      帰ったら入れてみるわ
      http://www.androidtablets.net/forum/specific-tablets/\
      288-apad-w-android-2-1-telechips-tcc8902-pandawill-\
      g10-wiipad-slim-plus-hipad-m701-8.html#post5360

      【パチモン】中華 Androidタブレット/Apad/山寨iPad 6枚目
      276 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/09/19(日) 20:49:06 ID:jl3PNKcr
      >>273
      E7002もファーム#98で800個以上作られてビックリしたが、
      最新ファーム#121では10個まで減ったけど作られてる。
      何なのかは、まだ意味不明。



    上記のページ firmwares for HaiPad M701 / Pandawill G10 (/ Moonse E7002) に こんな情報が

      --
      How to update with USB boot mode
      1) start FWDN V7 on PC, then add lk.rom, tcc8900_mtd.img(, and NAND Data.fai).
      2) power off and slide switch on
      3) press & hold HOME icon button(act as MENU button)
      4) connect USB cable (microSD slot side <-> PC)
      5) wait boot splash image("I love you" or "HAIPAD") is displayed on screen
      (lk.rom is loaded into device and started FWDN mode now. you can release HOME button.)
      6) start flashing

      --
      How
      to update with FWDN mode
      1) start FWDN V7 on PC, then add lk.rom, tcc8900_mtd.img(, and NAND Data.fai).
      2) power off and slide switch on
      3) plug AC adapter
      4) press & hold POWER button(front button), then press & hold HOME icon button(act as MENU button) *immediately*
      boot sequence should be stopped at boot splash image("I love you" or "HAIPAD"). you can release POWER/HOME button.
      5) connect USB cable (microSD slot side <-> PC)
      6) start flashing

      ----

    USB BOOT でアップデートできるなら、まずは安心。

      追記:USB BOOT を使うときは、サイドのボタン 2 つを押しながら 液晶面のメニューボタン長押しで電源投入。

    ところで FWDN V7 ってツールの名前か?

      ググってみると、結構情報が見つかる。

      で、FWDN V7 というのは、どこからダウンロードするのだろう?
      画像検索したら、SmartQ V7 の説明ページに行き着いた。-- さすが老舗。

        画面の画像を見ると、Boot Loader, Kernel Image, Ramdisk File のファイルを指定している。あと Target には MTD もあるがファイル指定はない。

        このツール書き込みはできるが、バックアップは取れないのだろうか? .. だとすると、(絶対に動く)公式のファームを 1つは手にいれておかないと安心できない。

      それはともかく、"VTC Driver Installer" がキーワードらしい。これは、SmartDevices のダウンロードセンターのツール(工具)にも入っている。

    ファームウェアは、とりあえず 9/18 の kernel #121 ってのをダウンロードしてみる。サイズは、61.94MB, SHA1:59FCA856479553E63F64F3325128429F1E1D94C4

      ようやくダウンロードできた。中をみると(ドキュメントを除いて)

      VTC Driver Installer v5.00 for 2000_XP.EXE
      VTC Driver Uninstaller v5.00 for 2000_XP.EXE

      FWDN_V7_v2.10.exe
      FWDN_V7_CFG.ini

      tcc8900_mtd.img 121MB
      NAND Data.fai 730KB
      lk.rom 1.1MB

      といったファイルが格納されていた。FWDN_V7 などは同梱されていたのか。

      ところで、これはどういうものなのか? CFW ? .. とか思ったのだが.. 違った。
      HaiPad M701 の公式ファームウェアで、ダウンロードセンターからリンクされてた。

      .. ただ、買ったのは、HaiPad M701そのものでもなく、同じものとされる Moonse E7002 でもなく、同じと思われる MID-70-R7 である。本当に使えるのか不安はある。

      追記:HapPad M701/Moose E7002 とは ファームウェアの互換性がないらしい。

      使えそうなファームウェアの情報は、
    • SLATEDROID: New ROM or new device? StyleFlying T72
    • Digital8.org:StyleFlying T72 (aka E7002)
      あたりを見ると
      MD5 Checksum: 935025399ec7dd0e41573c703ffcf5dc
      のファイルが見つかる。

      注意) firmwares for HaiPad M701 / Pandawill G10 (/ Moonse E7002) には、

      XXX do NOT use these firmware on StyleFlying and new Gpad G10
      XXX if you have these models, try firmware for StyleFlying.
      XXX of course, no warranty!

      というコメントが追記されていて、StyleFlying の firmware のリンクが付いている。
      StyleFlying T72/Pandawill Gpad G10(new)と互換性があるようだ。(追記/コメントも参照)


    追記: ついにきた。

    • 梱包は丁寧で箱はほとんど痛んでいない。
       - 箱には、

        android 2.1
        o WiFi o 3G o HDMI o 1080P o 3D GAME

      と書いてある。
       - HDMI に出力できるタイプもあるが、これは違う。
       - もちろん 3G もない。


        MDMI 付きはこんなタイプ。(もちろん買ったのとは違う)

    • 中身は、本体以外に、イヤホン、 ACアダプタ USB ケーブル(mini-B)、 HOST 用 USB ケーブル(miniB - A Type メス)。

    • ACアダプタは、5V 1500mA 例の細いプラグ

    • 本体は、E7001 アルミシェルそのままの形状。

       - なんか バッテリーが固定されていない感触でゴトゴトする。
      - ただしあくまでも感触。よくわからない。
       - どうでも良いことだが、裏のロボットマークが上下逆だった。

    電源を入れてみる。--

      初期状態での言語は英語。まずは何が入っているのかチェック。

      • モデル番号 Android for StyleFlying TCC8902 MID
      • ファームウェアバージョン 2.1-styleflying-ver1.11
      • カーネルバージョン 2.6.29 root@lty #177
      • ビルド番号 20100913.192532

       - ビルドが 9/13 ! -- それなら発送が遅れたのもやむを得ないか。
       - HaiPad M701のファームが使えるか試したいところだが、上記のファームウェアを入手しないことには不安。
       - StyleFlying とは何? -- Telechips MID StyleFlying T72 これ?


    とりあえず動画を見てみる。

    • H.264 は、720p の動画しか用意できなかったのだが、全く問題なし。

    • あと手持ちは、低解像度の Xvid ,mpeg2 。結構綺麗かも。

      ちょっと使った範囲では、普通に使えている。A81-E(Cortex-A8 600MHz ,TI OMAP3 3530) に比べて もっさり と書かれていたが、別に気にならないレベル。

      • ホームから、アプリのメニューをタブで引き出すとき、ちょっとスムーズでないかも。

      • 縦横の切り替えは、画面が瞬時に切り替わるが、それまで間がすこしある。

      • 動画のサムネイルの表示はもっさりだったが、microSD の読み込み性能が原因みたいだからやむを得ない。

      来るまでは SmartQ V3 にすればよかったとか思ったが、7inch でのスムーズな動画をみると、これで良かったと思える。

      使い込むと不満も出てくるのだろうが、いまはよくわからない。動画さえちゃんと見れれば、とりあえず満足。

      • ... とか書いたが、ソートが 日付でしかできないようだ。
        しょうがないので、MSYS にもある touch コマンドで並べたい順の逆順で 日付を更新した。.. 当然スクリプトを作って行ったのだが、間に 3 秒間の間隔を置くようにした。

        .. あとサムネイルでのリスティングしかないような... これは最初に表示するときは、読み込みするので遅いのだが、キャッシュして以降は高速にするようになっている。... だがちょっとしたことで、全リドローするのだが、これが もっさり感がある。

        PMP と同じような作りで良いのだが.. なかなか難しいのだろうか?

        動画用のプログラムは 2 つ入っているのだが、ちょっとだけ挙動が違う。映画じゃない方は、Gセンサーに追従して、方向を変える。

      • 具体的な数字はよくわからないのだが、バッテリーが思ったより持つ感じ。ただし、充電時間も長い。3 時間でも 70% とか。
        ちなみに、充電ランプは 赤。

      • 電源スイッチのように見えるスイッチは、何?OFF でも電源が入る。で、OFF では Gセンサーが効かない。
        -- 単に Gセンサー ON/OFF(縦横固定) のようだ。

      • market は入っているがまだ使っていない。
      • 結局 専用ケースプラグ変換ケーブル を買うことにした。ケースがないと液晶を割りそうで怖い。付属ACアダプタは使えるが、やはり 認可品(PSEマーク付き)にしたほうが良い -- アダプタ自体は SmartQ 5 と 兼用できるので持っていて変換ケーブルは予備。(買うとしても秋月の小さいのを買うつもり)

      • ギャラリーで見える写真が消せない。端末の初期化をすると設定だけ戻るが、写真は消えていない。しかも 空きエリアが減る。
        内蔵ディスクのアクセスも USB からできないし。。。

        これに限らず andoroid のカスタマイズが甘いように思える。ファームウェアのアップデートに期待。



    Android SDK について

    買った E7002(もどき)を とりあえず USB につなぐとドライバーを要求される。

    なんでも Android SDK にドライバが含まれるそうなので、ここからダウンロードしてみた。

    で、SDK Maneger を動かしてさらに "SDK Tools" と "USB Driver for Windows" を ダウンロードするらしい。

    どうせなら .. ということで、2.1 だけ コンポーネントと サンプル あと API ドキュメントもダウンロード。

    深みにはまるつもりはないが、どんなものなのか見てみたい。


      usb_driver に android_winusb.inf があったので指定してみたがダメ。

      E7002(もどき)は、PID_DEED だったので追加したら、なんか認識された。端末のほうは、USBデバッグが接続されました。なんて表示された。

      ;
      ;StyleFlying
      %SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_DEED
      %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_DEED&MI_01

      これで不明なデバイスはなくなったが、SDK を使わない限り関係ないようだ。あと、インストールしなくとも 2 つの USB ディスクが認識される。.. だが使おうとすると ディスクをいれろと言われる。なにか設定しないとダメなのだろうか?

      ちなみに 端末側に 2 つの USB があるが 右に接続するものらしい。(左は HOST 専用で USB 1.1 のはず)


    メモ: android で作れるものか見当も付かないのだが... ちょっと。

      tcc8902 のデータシートを見ると、ハードウェアエンコーダもまた付いている。動画を取るためのものだと思うが、H.264 1280x720@24fps の能力だそうだ。
       - H.263 , MPEG4-ASP も対応していて、1280x720@30fps。
       - まぁ tcc8902 だけじゃなくて、OMAP3350なども当然可能なのだろうけど。

      ひょっとして、動画変換ソフトを作れるだけの能力があるのではないだろうか?

      デコーダーとリソースを共有していると思うので、デコードと同時には動かないと思うが、それなりに強力な能力なのかも知れない。

      ただ実際に作るには、API がないと無理。カメラがありエンコーダーの機能を使うのだろうが、エンコードだけ API として分離されていないと。


    追記: 2010/11/14 入手可能なファームウェア

    もとから入っていたファームウェアは、

    • モデル番号 Android for StyleFlying TCC8902 MID
    • ファームウェアバージョン 2.1-styleflying-ver1.11
    • カーネルバージョン 2.6.29 root@lty #177
    • ビルド番号 20100913.192532

    というものだが、New Styleflying Romsによると 現在ダウンロード可能なのは、

    この 2 種類。-- ここみると

      Tested, both work fine. from 51szb is Sept 20 date (#225) and the one from panadawill is Oct 15, 2010 (#301). I am sticking with panadawill.

    と書いてあって心強い。9/20 のは コメントで fun さんに 紹介してもらったのと同じ #225。

    さらに..
    なんて情報が。

    ところで StyleFlying ってメーカ名だったのか

    • Super-Android MID なんてのも作っている。

    • リンク先には、サポートしているビデオフォーマット一覧があるが、こんなに詳しいのは初めて見た。同じ Telechips TCC89xx だから 買った E7002 モドキも同じなのだろう。

    • リンク先には、英文 pdf もある。見ると パーツの原価一覧まである。Flash , camera 以外の 主要パーツの合計が $64.84 。結構するものだ。

        上記には、ケース代や基板代すら含まれていないから 製造原価だけで $100 超えそうなかんじ。firmware も StyleFlying にまかせることになるのだろう。作って売るだけとは言え製造メーカーもなかなか厳しい商売のようだ。

    • 気になるのが License CHIP 。これなしでは、firmware は動かないしくみらしい。-- styleflying のファームウェアの 開発元はここだけで、他にはないということか。

    ちょっと pandawill というところが気になった。これだけフォーラムがしっかりしてるなら信頼できるのかな。Gpad G10 をサーチしてみたが、結構安い(Free Shipping USD $148.19 ) みたいだし、お薦めなのかも。

      MID/UMPC/Nnotebook Accessories というところをみると、バッテリー(3200mAH 79mmx68mmx5mm) とか売っている。LCD や タッチパネルとかも。
      -- ちょっと覚えておこう。

    追記 2010/11/15 : ついに firmware update

    これが成功すれば、後々おかしくしても元に戻せるわけで、一度はやっておく必要はあると思っていた。
    が、失敗すれば 特に困っていないのに 使えなくなってしまう。
    リスクは大きいが、自信が出来たので踏み切った。
      準備:
      オリジナルの情報は既にメモしたが、念のため MAC アドレスも一応メモ。
      バッテリー残量確認: 60% 残ってた。十分と判断。

    ファームウェアは、#301 (10/15 版)

      (VTC driver はインストール済み)
      FWDN_V7_v2.09.exe を立ち上げる。
      lk_gpad.rom , app.rom, splash.rom を この順番で add 。
      (NAND Data.tmp もあるが パス)
      この状態で ケーブルを接続(PC - USB 右)

      右サイドの ボタン2 つを押しながら 電源ボタン長押し。
      → ダイアログがでてメッセージがなにやら出た。
      (すぐクローズするので読めず)
      → 本体は、GPAD の画面。
      (オリジナルは、ロボットの絵なので流し込んだ lk.rom 起動)

      Start ボタンを押すと次のように進んだ

      Download Session - Start!
      Device Init Complete! - (3sec 82)
      Devices SerialNumber 000000EC4CB8xxxxxxxxxxxxxx (だいぶ長い)
      Write BOOT - Complete - (25sec 35)
      "MTD AREA Write" - Complete - (2min 5sec 32)
      "MTD AREA Write" - Complete - (0sec 70)
      "D:\xxx\app.rom" Check CRC- Complete - (2min 16sec 96)
      "D:\xxx\splash.rom" Check CRC- Complete - (0sec 75)
      Download Session Complite! (1st)
      [ERROR] CFwdnPort::FWDN_Command: Fwdn Command Failar (0/32)
      (赤文字: .. あと 2 行ぐらい)

      赤文字になった状態では本体の電源は既に切れている。

      なにはともあれ、Session Complite したので 普通に電源投入。
      → スタート画面が GPAD に変わり、あとは普通に立ち上がってきた。

    新しくなった端末情報を確認。

    • モデル番号 Android for M1E for Styleflying
    • ファームウェアバージョン 2.1-update1
    • カーネルバージョン 2.6.29 #301
    • ビルド番号 Styleflying Ver.20101015.173726

    だいぶ表記は変わったが期待したもの。あと MAC アドレスは変更なかった。

    あと全体について、
    プリインストールのアプリケーションは大分入れ替えがあったようだ。
    (中国国内向けのがなくなり、Speed FORGE 3D が入ったり 色々)
    システムは基本的には同じ。だが、多々改良されているようだ。(よくわからない)

    これで、ようやく自分のものになった気分になれた。
    あと これからは、E7002 モドキではなく GPad G10(モドキ) と呼ぶことにする。

    追記 2010/11/18 :ファームウェアのファイルをチェック

    ようやく いじれるようになったので、ちょっと調べてみることにした。
    対象は 9/20 版 (#225) と 10/15 版(#301)。

    入っているファイルは、

    • lk_gpad.rom (1MB +α)
    • app.rom (148 MB)
    • NAND Data.fai (1.7MB) (#301 は NAND Data.tmp: 1.3MB)
    • splash.rom (#301 のみ: 768KB)

    これらの ヘッダーを dump したり、fun さんに教えてもらった tccutils でチェックしてみた。

    • lk_gpad.rom

      これは、ブートローダ? #225 と #301 では同じものだった。
      また、ヘッダーの形式が他のファイルとまったく違う。

      変更する理由はないから、中身について気にしなくて良さそう。

    • app.rom

      [HEADER] RAW_IMAGE MTD という 文字が ヘッダーに埋めこまれている。
      tccpack.c を見ると、3 種類のファイルが入っているらしい。
      それぞれには 0x10 バイトのヘッダが付き どういうファイルかのタイプが設定されている。

      01 : boot.img (5MB)
      02 : system.img (138MB)
      03 : recovery.img (5MB)

      boot.img と recovery.img は同じ形式で ANDROID! で始まる。たぶん ブートパラメータ+カーネル+initrd
      system.img は、root ファイルシステム(yaffs2)の イメージ。

        boot.img/recovery.img 詳細

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

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

    • splash.rom

      [HEADER] RAW_IMAGE MTD という 文字が ヘッダーに埋めこまれている。
      データは 以下の 1つ。
      05 : splash.img

      800x480 16bpp(R5G6B5 LE) の 画像 + 2バイトがデータ。
      自分で作れば 起動画面を変更できそうだ。

    • NAND Data.fai

      [HEADER] FILESYSTEM_IMAGE TCC FAT IMG V0.1 NAND Data で始まるデータ
      DISKSIZE 0xce800000 (3304MB) PART_CNT 0x01 の 情報が続く。

      0x60 のヘッダから MBR を含む DISK イメージが入っている。DISK イメージは、FAT32 でフォーマットした初期データ。


      000060 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00
      000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      *
      000230 00 00 0b 00 00 00 20 00 00 00 e0 3f 67 00 00 00
      000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      *
      000260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa

      ここまでが、MBR -- 0x55 0xaa が目印。
      情報は、

        Partion 1 id 0x0b = W95 FAT32
        Start 2
        Last 0x673fe0 = 6766560 (3383280KB = 3304MB - 16KB )



      000270 00 40 00 00 00 00 00 00 00 40 1a 00 00 00 00 00
      000280 eb 5a 90 4d 53 44 4f 53 35 2e 30 00 02 20 18 00 MSDOS5.0
      000290 02 00 00 00 00 f8 00 00 20 00 20 00 00 00 00 00
      0002a0 00 3c 67 00 74 06 00 00 00 00 00 00 02 00 00 00
      0002b0 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00
      0002c0 00 00 29 00 00 00 00 00 00 00 00 00 00 00 00 00
      0002d0 00 00 46 41 54 33 32 20 20 20 00 00 00 00 00 00 FAT32
      0002e0 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00

      ここらへんが FAT32 の ヘッダ。(0x280 から)
      - 16バイトずれているから 0x270 は、別の意味のヘッダ?
      mount してみると

        Size: 3381120 (KB)
        Used 16 (KB)
        Available 3381104 (KB)


      GPad は、4GB なのだが、買ったやつは 2GB と書かれていた。4GB 用の データでは 書き込めないかも知れない。その場合は 自分でイメージを作らないといけないかも知れない。
       - ひょっとしたら 他の機種用の NAND Data.fai が使えるかも。

      #301 の NAND Data.tmp とサイズが違うのだが、足りない分は all 0 の データ。
      CRC とかあるはずだが、足りない分は all 0 と見做すのかも知れない。


      000060 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00
      000270 00 40 00 00 00 00 00 00 00 40 1a 00 00 00 00 00

      これ、オフセットと サイズではないか? MBR は 0 から 0x200 バイト。
      で、イメージは、0x400 から 0x1a4000 バイト(1680KB)。
      そして、1680KB + 0x280 (= 1720960) が正しいファイルサイズで、#225 の NAND Data.fai のサイズに一致する。

      だいぶ分かった。が、CRC が入っているのかどうか? このあたりも調べないといけない。
      後ろのデータはすべて分かったので、あるとすれば 先頭のヘッダ。


    こういう物ということは分かった。それぞれデータ形式が違うから FWDN_V7 での add の順番を気にする必要はないのだろう。

    また、RAW_IMAGE MTD の id は、mtd のパーティション番号だろう。RAW_IMAGE といっても OOB(の badblock情報とか書き換え回数) までは初期化しなさそうな気がする。そうなっているから、yaffs2 のイメージを RAW_IMAGE で書いても問題ないのだろう。

    FAT32 だけは、RAW_IMAGE ではない。下位レイヤに UBI が入っていて ウェアレベルリング を担当しているのだろう。UBI を含む RAW_IMAGE にすると DISK 領域全体のデータになってしまうからまずいことになりそうだ。

    カスタマイズするには、yaffs2 の system.img を展開して編集し 再作成するというのが手順っぽい。ちょっと面倒な感じだが、好きなようにカスタマイズできそう。
    あと、お手軽な方法として、initrd をいじる という方法があるかも知れない。
    posted by すz at 17:43| Comment(40) | TrackBack(0) | 日記

    2010年08月20日

    電子ブックメモ

    dealextreame で 電子ブックも売り出した。型名は E003 メモリ 128MB/FLASH 2GB で、ともに 94.40 ドル。



    -- これは aliexpress で扱っている GR-B701 108.98 ドル と同じもののように見える。

    GR-B701 のスペックには CPU が書いてあって RK2729 (500MHz) だそうだ。メモリも GR-B701 は 256MB になっている。

    画面は どちらも 普通の TFT 。E-ink ではない。

    aliexpress を見ていると E-ink のパネル自体が高価らしく 製品は 200 ドル前後のものが多い。



    一番安そうなのが、HW-EB05i $79.38 + $39.26 = $118.64 。5 インチ E-ink で RK2706B,64MB 。



    気になるのは、やはり Jz47xx を使ったもので、GR-B605 185.61 ドル。Jz4740 64MB だそうだ。バッテリーは、交換できるらしく 1500mAh(NOKIA BP-4L) と書いてある。

    E-ink の場合 バッテリーの持ちについての表示は、8000 screen refresh みたいに書くようだ。

      どうも、screen refresh には(イメージの展開もあるし)電力が必要らしいのだが、それ以外の状態も(CPUとか)電力を使うものらしい。ある 電子ブックのスペックには 20mA とか書いてある。それなら 2000mAH でも 100 時間しか持たない。携帯の待ち受けみたいなものか。
      省電力を完璧にすれば、その何倍、何十倍も持つのだろうけど。

    なんか良さそうではあるのだが、Jz47xx が気になるのはいじるのが前提。そうなると Openinkpot でサポートしている Hanvon WISEreader N516-W のほうが良いのではないかとも思える。ただし、値段は $242.11 + $24.88 = $266.99 と結構する。



    CPU は Jz4740 だしメモリも 64MB 。FLASH は 少なく 512MB 。同じようなものだが、8-level gray scale(N516)/ 16-level gray scale(GR-B605) の違いがあるし 移植しないと GR-B605 は動かなそうなのが惜しい。

    まぁこんなふうに気になってはいるのだが、当面買うつもりはない。Neo Slim 3000 (or A41) を自由に扱えるようにするのが先。


      追記:最新の Ingenic のカーネルソース Tree を見ていたら E-Book サポートが入っていた。E-Ink コントローラ として、Epson S1D13521 と Metronome/8track というものをサポートしている。このあたりのコントローラを使っているものならなんとかなるかも知れない。


    追記:EB70



      唯一 jz4755 でヒットするのは この 電子ブック EB70

      値段は、$89.47 x 1 + $16.96(@EMS) = $106.43 。

      液晶は普通の 7inch TFT LCD 800x480 だがタッチスクリーン 。メモリは 32MB , FLASH は不明(8GB まで)。バッテリー容量も不明(3300mAH まで)。 Wi-Fi: 802.11b/g が付いている。他の外部インターフェイスは microSD , イヤホン , スピーカー (マイクも? ) 。leather case が付属。

      .. なんというか Android 端末を Jz4755 までダウングレードした感じだ。でも欲しかったりする。(でも、今まで余計なものを買いすぎた。自粛しよう)


    ちなみに、Linux が動きカーネルをいじれそうなのは、Jz47xx 以外だと ARM になる。RK2806 とか S3C6410(SmartQ 5) とかならなんとかなるかも。




    そういえば、S3C6410 を採用した android 端末もある。7” Touch Screen TFT LCD Google Android 1.6 Tablet PC $142 だそうだ。メモリ 256MB と OTG/HOST 別々の USB に魅力を感じる。aliexpress の MID703 $137.89 と似ている。オプションの WCDMA Module 付きらしい HCY7003 が $189.47 。あと バッテリーは 7.4V 1800mAH , AC アダプタ 12V,1A らしい。(3000mAH ではないはず。)

    RK2806 ベースのほうが良いような気もするが、縦表示と動画のサポート状況が満足できる範囲なら買いか? -- といっても買わないつもりだが。

    色々みていくと Marvell の CPU を採用した android タブレットも出ているようだ。"Marvell 166 800MHz" なんて書いてあったりするが どうも PXA166 のようだ。ややこしいが ARMADA 100 シリーズで cpu core は Sheeva (SheevaPlug/豆Sheeva とか LinkStation などで採用している。)。ちなみに 前身の Feroceon core は スーパースカラで Sheeva もスーパースカラ。

    L2 キャッシュも載っているし、普通の ARM 800MHz よりはかなり高速だろう。(L2 付き Cortex-A8 なら負けそうだが)。 Marvell だから ソースコードも公開されているはずだし。周辺装置も WMMX2 コプロセッサ / Ethernet MAC / PCIe / Qdeo ICR? などなにやら盛りだくさん。こっちのほうが面白そう。

      ただ、FLASH を壊してしまうと JTAG でないと復旧できない。
      jz47xx は USBブートが可能だし、S3C6410 は SDカードからのブートが可能。こういうのと比べるといじるときのリスクが大きい。
      RK2808 は、8KB の ブートROM を積んでいるのだが、詳細は知らない。

        aPad を初期化してみる (1) (2) を見るとUSBブート出来るような気がするが、ブートローダでやっているかも知れないし 完全ではないかもしれない。まぁ RKAndroidTool.exe さえ起動すれば、FLASH を書き換えられるから、リカバリできるようだ。

      Telechip tcc8902 は、USBブートが可能。

    SUNLIKE MID-704 $144.33 + $39.26 = $183.59 ってまだちょっと高いか。

    いずれ 2.1 or 2.2 対応してくるだろうからそれからでも検討しよう。

      普通に使うなら、tcc8902 , android 2.1 の E7002 (green-tool で 17250円) か。海外なら リスクがあるものの 2 割ほど安い 159.99 ドルがあるが ...

      拾った tcc8900 のデータシートをみると H.264 のハードウェアコーデックがある。あとグラフィックエンジンに 90°単位の回転の機能がある。動画も強いし、 画面の回転も楽勝っぽい。キャッシュは L2 なしで L1 16KB+16KB 。CPU は ARM11 (ARM1176JZ)。
      動画は、1080p がいけるようだし、将来的にも十分なような気もする。贅沢を言わなければ末永く使えそう。
    posted by すz at 20:19| Comment(0) | TrackBack(0) | 日記

    2009年07月23日

    業務連絡

    私の不注意で レンタルサーバーの契約が切れてしまい、サーバ移行することになりました。

    バックアップも適当にしかとってなかったので、5/22 以降の記事・コメントも消えてしまいました。コメントを頂いた方には申し訳なく思います。

    移行にあたって、

    • もの置き場のサイトが nmj.sakura.ne.jp → nmj.sumomo.ne.jp になります。
    • 復活した記事の URL が変わっているかも知れません。(よくわかりません)


    リンクしていただいている方には申し訳ありませんが、リンクの変更をお願いします。

    posted by すz at 19:11| Comment(10) | TrackBack(0) | 日記

    2009年03月25日

    タッチパネルメモ

    ゲームツールというところでタッチパネルを扱っている。

    7インチタイプ 4980円(内税)
    8.9インチタイプ 5980円(内税)


    このタッチパネルは、かつてあちこちで売っていた ET-1000 などとは違い、汎用品を組み合わせたものらしい。ポン付けできるようなものではなく、電子工作の知識が必要。

    コントローラは、AITENDO で扱っている
    タッチパネルコントローラ(USB)CY-4W-USB-03
    4800円とほぼ同じ。(ケーブルは同じに見えるし、基板の大きさも同じ。ただ写真と部品の配置が若干違う)

    タッチパネルも、タッチスクリーン(7.0ワイド) 6500円 と同じっぽい。写真は違うように見えるが、データシート(bmp)を見ると同じのように見える。

    なぜこんなに詳しいかというと、実は買ったのだ。だがしかし、装着しようとする以前の段階で、不注意でパネルを割ってしまった。タッチパネルは使ってみたいのでまた買いたいとは思っているのだが、またやってしまいそうで、ちと怖い。それに、Eee PC 701 Origami化キットなどという謎なものが出るかも知れない。本当に出るのならこれも面白いかなと思っていたり。

    あと、注意点としては、
    tie2's labo: EeePCの改造・タッチパネルの盛り上がり対策といったことが必要。
    posted by すz at 13:03| Comment(0) | TrackBack(0) | 日記

    2009年02月12日

    ハードディスクの消費電力

    WD10EADS(WD 1TB 5400rpm〜7200rpm) を買った記念に、USB DISK ケースに入れた消費電力を、サンワのワットチェッカーで調べてみた。

    使った USB DISK ケースは、CSS35U2。ついでなので、死蔵していた、HDP725050GLA360 (HGST 500G 7200rpm)もついでに測定。

    まず動作について簡単に説明する。USB ケーブルをどこにも接続しないで、電源を入れると、USB コントローラだけ電源が入る。次に USB ケーブルを PC に接続すると、ハードディスクに電源が入りスピンアップする。このとき消費電力は最大になるが、しばらくすると 落ち着く。そして、実際にアクセスすると、少々消費電力が増える。


      POWERON SPINUP IDLE CrystalDiskMark
      WD10EADS 2W 17W 5W 7W
      HDP725050GLA360 2W 24W 8W 8W

      注) ここの消費電力は、全体の消費電力。AC アダプタで 100V(AC) → 12V(DC) で 15% ぐらい ロスする。それに加えて、内部で 12V → 5V の DC/DC 変換が入るので、ここでも 15% ぐらいの ロスがあるはず。(ちなみに 15 %は適当。ちゃんと調べたわけではない)


    もし、USB コントローラがハードディスクの電源を完全に切っているなら、コントローラ自身の消費電力 は 2W 。上の値から一律 2W を引けば、ハードディスクの PC電源への負荷とみなせると思う。

    HDP725050GLA360 のデータシートには、idle 時 4.8W と書いてある。2W を引いたみなし消費電力は 6W ぐらい。20% ぐらいのロスがあれば、4.8W なので 値に大きな矛盾はない。

    スピンアップ時の最大電流は、12V 2.0A / 5V 1.3A となっている。そのまま取ると 30W で さらにロス分を加えると、36W 相当になってしまう。実際は 22W だから、ずいぶん差がある。ワットチェッカーでは(平均化されて)分からないのかも知れないので注意。

    それはともかく、WD10EADS は消費電力の点では優秀みたいだ。

    製品ページには、アイドル 2.8W / 動作時 5.4W と書いてあるが、2W を引いたみなし消費電力で、3W / 5W だから実際はもっと少ないはず。
    それに低電力スピンアップ と謳っているが、たしかに低い。

    HDP725050GLA360 も低消費電力ということで選んだはずなのだが .. こっちの方が良さそうだ。特に 小さな NAS のように電源に余裕がないものに入れるには。

    ところで、USB DISK ケースの、CSS35U2。これは安いというだけで選んだ。基本的に LinkStation の中身を見るとか 臨時で使うつもりなのだが、使いがっては悪くなさそう。

      ちゃんと使うには、2 本のレールを 4つのねじでハードディスクに取り付け、フタと一体化している コントローラをつける。
      次に、ケースに入れて、ふたのねじ 2 つを閉める。
      ただ、ちょっと使うだけなら、コントローラをつけるだけでよい。
      SATA だから差し込むだけ。

    ただ、ちょっと不満なのは AC アダプタのコネクタが 特殊なこと。玄人志向で使っているのは、外径 5.5mm / 内径 2.1 mm のよくあるタイプだが、 これは 内径がもっと細い -- たぶん 1.7mm で、Aspire One と同じ。(注: 電圧が違うので、Aspire One に使えるわけではない) 。12V のアダプタが最近増えてきたので、互換性があるほうが嬉しかったりする。
    posted by すz at 16:03| Comment(0) | TrackBack(0) | 日記

    2009年01月07日

    grub4dos の MBR を書くソフト

    grub4dos の MBR を書くソフトをお勉強を兼ねてちょろっと作ってみた。

    grun4dos は、このブログお勧めのブートローダ。なのだが... 肝心のインストールの方法がいまいち。

    Linux なら簡単なんだが... みたいにお茶を濁していたのが気になっていたので、とりあえずはインストールできるものを(コンソールアプリだが)作ってみた。

    上のソフトを使えば、Windows から USB メモリなどに MBRを書き込めて、eeePC や Aspire One で grub4dos を 気軽に 試すことができるようになる。(ただし、C: ドライブは無理。USB メモリにインストールした puppy linux とかでやるべし )



    使用例:puppy linux を例に

    用意するもの


    手順:

    • SDFormatter でまず USB メモリをフォーマットし、いったん抜いて挿しなおし ドライブを認識させる。( 以降 e: ドライブとする )
    • grub4dos-0.4.4-2008-11-19.zip から、grldr , grldr.mbr の2つのファイルを e: にコピー
    • grldrmbr-0.1.zip から grldrmbr.exe を e: にコピー
    • puppy-4.1.1-JP.iso を開いて vmlinuz , initrd.gz , pup_411JP.sfs の3つのファイルを e: にコピー
    • e:に空の新規ファイル usbhd を作成
    • コマンド プロンプトを実行して

      e:
      grldrmbr e:

    • 以下の内容の menu.lst ファイルを e: に作成

      timeout=3
      default=0

      titile Puppy Linux
      root (hd0,0)
      kernel /vmlinuz pmedia=usbhd
      initrd /initrd.gz



    これで、USB メモリからブートするようになる。USB メモリに 必要なファイルは、全部で 8 つのみ。( そのうち grldr.mbr と grldrmbr.exe はインストール後 削除して良い )

    注意)grldrmbr.exe を使う場合は慎重に。ミスすると たいへんなことになったりする。インストール後は削除することを推奨する。
    なお、私はなにも保証しない。使う場合は、自己責任で

    おまけ:

    MBR をバックアップするだけなら、dd コマンドが使える。dd には複数あるが、一応 dd for Windowsの簡単な使い方あたりが参考になると思う。

    それとは別に、WINAVR (AVR の開発キット) にも 結構ツールが入っていて dd.exe も含まれている。MinGW+MSYS+WINAVRの例だと、

    dd if=//./c: of=mbr.bak count=1

    とかで MBR をバックアップできたりするようだ。ただし書き込みは e: などでもダメ。




    puppy linux で Windows のバックアップ

    puppy linux で何ができるの? といわれたら、なにはともあれこれ。もちろん他にもいろいろできるが、このためだけに使ったとしても便利。
    ちょっと手順を書いておく。

    Windows での準備:

    1) まずはデフラグ。この機会にやっておくと良いと思う。
    2)休止の OFF 。コントロールパネル→電源オプション→休止状態で 無効にすると、メモリサイズと同じ大きさの hiberfil.sys が消える。バックアップファイルが小さくなるので、お勧め。
    バックアップが終わったら元に戻せばよい。
    3)ページングファイルの削除。コントロールパネル→システム→詳細設定→パフォーマンス→詳細設定→仮想メモリで、ページングファイルなしにする。これもバックアップファイルを小さくするためにお勧め。

    追記:1)の前に ...
    システム→システムの復元→設定 で、いったん最小にしてもとに戻すと空きが増えバックアップファイルを小さくできる。復元ポイントが減るはずだが、安定している状態をバックアップすることにしていれば問題ないはず。

    puppy linux でのバックアップ

    端末を立ち上げて

    ntfsclone -s -o - /dev/sda1 | grep --fast > バックアップファイル名


    注1) /dev/sda1 が puppy では たぶん Windows の システム。
    一度は確認すべし。
    注2)Disk のマークをクリックしたりしてマウントした状態で バックアップを取ってはいけない。アンマウントすること。

    リストアする場合は、

    gunzip < バックアップファイル名 | ntfsclone -r -O /dev/sda1 -


    注1)環境にもよるが、私の環境だと、バックアップファイルのサイズは、1.7GB 。4GB までなら FAT に置けるが、それ以上は無理なので、NTFS のデータ用 ディスクを用意するべし。
    ちなみに、NTFS でフォーマットした USB メモリでも、grub4dos + puppy linux は同じようにインストールできる。詳しくはググるべし。
    posted by すz at 21:19| Comment(0) | TrackBack(0) | 日記

    2008年12月08日

    eeePC 701SD-X

    eeePC 701SD-X を買ってしまった。2台目として携帯性に優れたものが欲しいと思っていたのだが、 Willcom D4 とか Everun Note とかはどうも値段の割りにイマイチのような気がしてきた。

    本命は、1〜2 年先ということにして、がまんするつもりだったのだが、eeePC 701SD-X が ヨドバシで 29800 円 + ポイント20%(6000円相当) さらにマウスやら 30GB の USB Disk もおまけもちゃんと付く というのを知り思わずポチってしまった。

    衝動的に買ってしまったのだが、よくよく考えれば 0.91 kg と Aspire One(1.06kg) より軽いし、電池も持つ(スベックで 約3.7時間 vs 約3時間) 。Disk 容量の少なさとか 画面サイズ(800x480)と折り合いさえ付けば、便利に使えるかも知れない。折り合いが付かなくとも 家の DeskTop よりはマシなので、Keyboard, Display を外付けにして、DeskTop 代わりに使えばよい。

    ... という風に理由づけして、当面 701SD-X をメインに使ってみようと思っている。




    まずは、アプリを入れたり、WindowsUpdate したり..

    アプリは、とりあえず次のもの

    ウィルスチェック :AVG Free 8.0
    ブラウザ     :FireFox 3.0 + Adobe Flash Player
    メディアプレイヤー:SMPlayer
    オフィス系    :とりあえずなし
    その他
    KeySwap, siw , RealSync, Virtual CloneDrive
    TrueCrypt, MSYS, 通信系ソフト


    インストールの次に、AVG のアップデートをしたら ... メモリ不足で 異常終了してしまった。デフォルトではページングファイルを使わない設定になっているので、ページングファイルを 512MB 割り当てることにした。

    これで使い続けるのははっきりいって無理 -- (遅い)SSD なので ページングファイルは使わないようにすべき。メモリは 1GB を買うことにした。2GB も考えたのだが ... 休止を使いたい( メモリ量だけの空きが C: に必要) ので 必要最低限度の 1GB にした。

    次に CrystalDiskMark で SSD の 性能をみてみた。

    -------------------------------------------------
    CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
    Crystal Dew World : http://crystalmark.info/
    --------------------------------------------------

    Sequential Read : 38.218 MB/s
    Sequential Write : 6.959 MB/s
    Random Read 512KB : 37.929 MB/s
    Random Write 512KB : 1.819 MB/s
    Random Read 4KB : 6.624 MB/s
    Random Write 4KB : 0.020 MB/s

    Test Size : 100 MB


    ...なんというか Write 系は、SD/microSD レベル以下。

    ちなみに ↓は、8GB の A-DATA microSD を右の SD slot に入れたときの性能値。Read は不利なのだが、Write は倍程度の性能。
    そして、16GB の A-DATA SD は、これより性能が良い(ただし Random Write 4K は同じぐらい)


    microSD A-DATA 8GB (SD Slot)
    --------------------------------------------------
    CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
    Crystal Dew World : http://crystalmark.info/
    --------------------------------------------------

    Sequential Read : 20.072 MB/s
    Sequential Write : 15.842 MB/s
    Random Read 512KB : 19.822 MB/s
    Random Write 512KB : 3.928 MB/s
    Random Read 4KB : 4.166 MB/s
    Random Write 4KB : 0.039 MB/s

    Test Size : 100 MB



    あまりにひどいので、安くて速いSSDモジュールがあるのなら交換したい。x-gadget:blog の SHD-DI9ベンチマーク結果によると、少しにょごにょする必要があるものの使える可能性は高そうだ。16G の SHD-DI9M16G と 32G の SHD-DI9M32Gで性能差があるなら 迷わず 32G を買うと思うが、同じなら16G で済ませるかも。




    使用感

    いまのところ FireFox-3.0 はもっさりしすぎ。ちょっと重いページをアクセスするだけでプチフリする。使っていて楽しくない。動画は低ビットレートのものしか持っていないのでまったく問題なし。

    まずはメモリを 1G にして ページングファイルを作らないようにしないと問題外か。

    800x480 の画面については、慣れることができそう。... というかその解像度でストレスになるようなアプリはそもそも入れない方針。

    あと Linux は是非試してみたい。SDカードにインストールできているみたいなので、いろいろ試せそうだ。
    posted by すz at 13:43| Comment(0) | TrackBack(0) | 日記