前々から、Linux が乗っていて(PCではない)情報端末が欲しいと思っていた。いままで候補は Pandora しかなかったのだが、ひょっこり SmartQ 5 MID というのが発表された。こいつがとても欲しい。

いったいこいつは、どこで買えるのか?
国内のショップで買えるのが一番嬉しいのだが、いつになったら買えるようになるのか?
結局しびれを切らし、いま買えるところを探すことにした。
まずは、ここで買えることはわかった。
http://www.gbax.com/smartq5.htmlただし、商品代金だけで、£ 129.99 (2万円弱)とかなり高価。(中国での価格は、1万3千円ぐらい)
それ以外だと、(現在は)中国から直接買うほかなさそう。でも、とても直接の取引はできそうにない。個人輸入代行業者というものがあるらしいので、今回は
ジャスティンに頼むことにした。
ここを通す場合は、中国のネットショップを自分で探して URL を教えればよいらしい。
淘宝網の定額オークションも OK そうなので、smartq で検索して出てきたところのうち、安心そうなところを見繕ってみることにした。
値段は、898 元。ジャスティンを通すときのレートが、14.7 円。手数料はこれの 16%。計算すると、15320 円。他にも送料とか、いろいろかかるが、実費に近いかんじ。
ところで、なぜ PCではない 情報端末なのか?
PC は便利すぎて、持込み不可のケースがある。こいつは PC ではないからそういう制限には引っかからないというのが理由の一つ。
あと、PC はどうしても 消費電力が増える。軽くて、長時間動作するものはまだ無理そう。たとえば
mbook M1は 4時間前後とかなり健闘しているが 2 セル使っても そのあたりが限界。それに比べて Pandora なんかは 10時間前後と 倍近く持ちが違う。SmartQ 5 MID はどれぐらいなのか分からないものの Pandora 並が期待できるような気がする。
もっとも重要なことを書き忘れていた。瞬間のサスペンド&レジューム。PC は、とろい。701SD-X (XP) など 画面が点灯するまで 20秒ぐらいかかる。これでは、いつでも どこでも使うのは無理。
つぎに なぜ Linux 情報端末が欲しいのか?
ubuntu が載っていれば、したいことはなんでも出来そういうのが理由。無線LAN で接続して、キーボードもつなげれば もっさりはするが、701SD 程度には使えそうだし。うまくカスタマイズできれば、どこでも使えそうな感じがする。Windows Mobile と比べればはるかに自由度が高い。
最後に、なぜこの SmartQ 5 MID なのか?
いま買えるのがこれだから。
将来 Pandora なんかも買えるようになるかも知れない (予約組以外は 2009 年末〜?)し、最近発表された
SmartQ 7 Internet Tablet MIDなんてのも良さそう。
そして本命は、 NVIDIA Tegra とか TI OMAP4 が載ったものだと思うのだが、自由に使えるようになるのは Pandora 以上に先の話になりそうだ。(ものが出ても iPhone みたいなものだと自由には使えない。そういう意味でも時間がかかる可能性がある。)
というわけで、これを買って当面遊んでみるのだ。あ、でも SmartQ 7 は、なんか良さそうな気がする。安いだろうし、これも買ってしまうかも。
SmartQ 7 追記:
engadget(中国版)記事を見ると、解像度は 800x480 と Q5 と同じみたい。新たに違うCPUで開発するのは大変そうだし、Q5 と同じ CPU, OS に違いない。ちなみに バッテリーは 2000mAH → 4500mAH と増えていて、48 時間 音楽を鳴らせるらしい。
そうして、その程度のものなら、Q5 の 3〜4 割増しの価格に違いない。... というわけで Q5 が使い物になったなら たぶん Q7 も買ってしまうに違いない。
(追記の追記)
淘宝網 で 1199元なのを発見。... ということは、3.3 割増し
(追記の追記2)
engadget日本語版では 1000元との情報が ...
(追記の追記3)200 x 120 x 24mm、480g だそうだ。
5/8 追記
5/6 に ジャスティンに頼んだのだが、5/7 に 入金依頼が来て 5/8 に確認メール。で、5/8 中に発注してくれるそうだ。
ぼんやりしていると なにも分からない状態でモノが来てしまいそうだ。
というわけで、ググって情報を集めてみた。
まず、ファームウェアとはいかなるものなのだろう?
ダウンロードセンターにいくと、164MB の V1.0 のファームウェア(ファイル名:SmartQ5)と なんだかよくわからないツール(SDUpdateToolV1.0.rar)が落とせるようになっている。
実際落としてみると、ファームウェアはなんだかよくわからない形式。ツールの方は Windows のツールで SD になにかするものらしい。ドキュメントらしきファイルもあるのだが、中国語プレインテキストらしく読むことすらできなかった。
結局さっぱりわからず、はたして使いこなせるのか不安になってくる。
で、ググっていって
http://bbs.imp3.net/archiver/tid-583519-page-1.html というページを発見。
このなかのドキュメントに SD カードにシステムをインストールして dualboot にする方法が書いてある。
これをベースに勝手に(想像で)改変。
SmartQ5システムをSDカード上にインストール
zhongzf 2009.5.4 08:23
1. SDカードに対して次のように 4つのパーティションを作る。
ID
1. fat32 0x0b FWを格納 200MB 以上
2. ext3 0x83 rootfs 512MB 以上
3. ext3 0x83 home 任意の量
4. swap 0x82 128MB 以上
注意) 最後の 1MB 程度 を 割り当てずにおくこと。ここに
ブートストラップのコードを後で書くため
2. 最新のファームウェア(SmartQ5)をダウンロード
第一のパーティション vfat 領域に置く。
※ 置かないほうがいいかも。
3. SmartQ5Extractor を使って SmartQ5 から
rootfs.tar.gz , home.tar.gz を取り出す。
※ http://zhongzf.cnblogs.com/
※ .net 2.0 が必要
4. rootfs.tar.gz を SDの第二パーティションに展開する。
tar -xvpf rootfs.tar.gz
※ カーネル(zimage) と initrd(initramfs.igz) は、
第一パーティションに置いた SmartQ から取り出して
ロードするように思える。
5. rootfsパーティション(つまりSDの第二パーティション)の
/etc/fstabを次のように変更する
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/mmcblk1p2 / ext3 relatime 0 1
/dev/mmcblk1p3 /home ext3 relatime 0 2
/dev/mmcblk1p4 none swap sw 0 0
/dev/mmcblk0p1 /mnt/rootfs ext3 relatime 0 1
/dev/mmcblk0p2 /mnt/home ext3 relatime 0 2
6. home.tar.gz を SDの第三パーティションに展開。
7. ダウンロードセンターのツール(SDUpdateToolV1.0.rar)を
インストール(実行はまだ)
8. u-boot.bin.zipをダウンロードし、解凍。u-boot.bin を
SDUpdateTool のインストール先のファイルと入れ替え
ツール実行
http://www.imobile365.com/forum/download/file.php?id=29
※ ファームウェア(SmartQ5) にも u-boot.bin がある。
V1,Tool : U-Boot 1.1.6-gdae20df8-dirty (Apr 2 2009 - 17:20:56) for SMDK6410
download: U-Boot 1.1.6-gb3eb2e07-dirty (Apr 30 2009 - 16:41:29) for SMDK6410
V2 : U-Boot 1.1.6-ge752a817-dirty (May 8 2009 - 13:54:19) for SMDK6410
単に新しいのを使えということらしい。
→ V2 の u-boot.bin が良さそう。
9. 作ったSDカードを挿入して、ALT ボタンを押しながら、マシンを起動する。
こんな感じらしい。
とにかく、ボタンを押しながらのreboot で、SDからシステムを立ち上げられることだけはわかった。
そして、そのためには、u-boot を SDカードの最後に書き込まないといけない。
あと、内蔵 FLASH が /dev/mmcblk0 で SDカードが /dev/mmcblk1 らしい。.... ひょっとして 内蔵 FLASH も SD/microSD なのか?
実は、内蔵 FLASHの寿命というのが気になっている。swap もあるようだし、使い方が悪いと壊れてしまいそうだ。
取り出せないだけの SD/microSD なら 壊れても自分で治せそうだし嬉しいのだが ... 実際はどうなのだろう?
最後に ... SmartQ5Extractor で、rootfs.tar.gz を取り出せるので、別 の ARM マシン(つまり LS-XHL)でいろいろ 試せそう。ちょっとやってみる予定。
ちょっとやってみた。結論からいうとダメ。
rootfs.tar.gz を展開して、chroot してみると Illegal Instruction 。
LS-XHL のカーネルは、2.6.22 。gnueabi をサポートしている。
なんかまったく動かないのではなく、サポートしていない命令を本当に使っているような感じ。
S3C6410は、
cpuinfo:
Processor : ARMv6-compatible processor rev 6 (v6l)
BogoMIPS : 665.54
Features : swp half thumb fastmult vfp edsp java
だそうだが、
LS-XHL は、
cpuinfo:
Processor : ARM926EJ-S rev 1 (v5l)
BogoMIPS : 1199.30
Features : swp half thumb fastmult edsp
たぶん vfp を使っているのだろう。残念。
追記:
CONFIG_VFP=y なカーネルだと エミュレーションしてくれるらしい。でも カーネルをビルドするのは 面倒だったり。
おまけ:
スペック(追記)
q5 startup prcessという記事を発見。嬉しいことに英語で書いてくれている。
Q5 upgrade tool flash the u-boot.bin, zImage and initramfs into NAND, their location are 0x0002, 0x0202 and 0x1000;
And unzip the rootfs.tar.gz and home.tar.gz into inner SD, the partions of the inner SD are structed 1. rootfs(ext3), 2. home(ext3), 3. swap.
※ Q5 upgrade tool は、initrd の /bin/upgrade のことらしい。
Normally while Q5 starts, the cmdline is "console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rootwait splash", the zImage loaded, then boot the system on the inner SD.
While "Alt" down, the cmdline is "console=ttySAC0,115200n8 rdinit=/sbin/init", after load zImage, the initramfs is loaded, and there is a "upgrade" tool on the ramfs under /bin is executed, the "upgrade" tool will check the /dev/mmcblk1p1 for the rom file SmartQ, then load the rom file, extract it and check crc, then flash them on their location.
※ ここの the "upgrade" tool も /bin/upgrade
ps. and I guess, u-boot.bin can also read SmartQ on mmcblk1p1, and load the zImage and initramfs from the rom file, so that while the files on the NAND are destoried, it can also bootstrap, and flash them again.
※ NAND と inner SD は別もの
要するに u-boot.bin, zImage and initramfs は、NAND FLASH に置かれ、内部に システム用 SD があるということらしい。
なら、分解すれば、もっと高容量のものと交換できるかも。
まぁ、いろいろはっきりしないことがあるが、その辺りは実機が来てからボチボチやれば良さそうだ。
5/11 追記
ファームウェア V2.05/8 に ファームウェア V2.0 が リリースされた。
SmartQ5Extractor (v2.4) を使って展開すると ..
header
qi.nb0 不明 (SDUpdateToolV1.0にも添付) 3208バイト
u-boot.bin u-boot ブートローダ 99032 バイト
zimage Linux カーネル (u-boot 形式)
initramfs.igz initrd (u-boot 形式)
rootfs.tar.gz rootfs イメージ
home.tar.gz /home イメージ
のファイルを取り出せる。
まず、qi.nb0 はなんだろう。strings でチェックすると
Qi Bootloader s3c6410 debian master_316aa06163e44f90
Read SDMMC
sdhc
sd
uboot success
uboot fail
SMDK6410
なんて文字列が見える。すなおに考えると uboot を起動するブートストラップに思える。そして、SD から読み込むのだから uboot は SD に置いてあれば良さそうに思える。
つぎに u-boot.bin に strings をかけて、興味を引いた文字列をピックアップ
U-Boot 1.1.6-ge752a817-dirty (May 8 2009 - 13:54:19) for SMDK6410
Error iNAND START 1
Error iNAND START 2
Load upgrade image from SD(%s)
/SmartQ5
Load upgrade image from SD(%s)
/u-boot.bin
Board: SMDK6410
## Loading Ramdisk Image at %08lx ...
Bad Magic Number
No Linux ARM Ramdisk Image
Starting kernel ...
FAT32
FAT12
FAT16
この u-boot は、1.1.6。 SMDK6410 というのは、SAMSUNG が出している評価ボードで 2個の SD スロットと 800x480 の LCD が付いている。これ用にカスタマイズされたものを ベースにしているらしい。(参考:
SMDK6410 User's Manual (pdf))
で、この u-boot は、SD (FAT) の /SmartQ5 というファイルを使って upgrade することができるようだ。
SmartQ5 のファイルフォーマットは、u-boot の ROM File というものかも。strings で調べてみると、上記の 文字列が見えるので、圧縮とか暗号化はされていないようだ。tar みたいな 割と単純なフォーマットではないかと思う。
もちろん主機能は、zimage と initramfs.igz をメモリにロードして、Linux を ブートすること。
その u-boot すら、qi.nb0 で SD カードから ロードされるみたいだから、zimage と initramfs.igz も SD カードに置くのが普通に思えるのだが ...
ところで、qi.nb0 をブートするのは誰なのだろう?
よくわからないのだが、S3C6410 データシート をみると、S3C6410 に Secure Boot ROM というのが載っているようだから、ここから ブートするのではないかと思う。
カーネルがブートすると、initramfs.igz が動作して、必要なら、rootfs.tar.gz home.tar.gz を展開して、upgrade を完了させるのだろう。
で、initramfs.igz は 普通の initrd フォーマット(cpio+gzip)ではないようだ。file コマンドで見ると PPCBoot image と出る。ダンプしてみると、header に Compresssed initial ramdisk と出る。
initramfs.igz は u-boot の形式で 64 バイトのヘッダが付いている。(忘れてた) 。たとえば
dd if=xxx of=yyy bs=64 skip=1
とすることで中身が取り出せる。中身の形式は普通の cpio + gzip
中身を見ると ほとんどの初期化処理が /etc/inittab に直接書き込まれている。
console::sysinit:/bin/upgrade /mnt/mmcblk1p1/SmartQ5 /dev/mmcblk0 1
#console::sysinit:/bin/upgrade /mnt/mmcblk1p1/SmartQ7 /dev/mmcblk0 1
なんて記述もあり、自動的に upgrade できるようになっているようだ。
あと rootfs.tar.gz を展開して、ファイルをチェックしてみた。
ディストリビューションのベースは、
ubuntu Hasty ARMv6EL-VFPで、これのベースは、ubuntu hardy(8.04LTS) らしい。
S3C6410 は、ARM11 で
ソフト見えのアーキテクチャは、ARMv6 。 ARMv6 というのは、ARMv5 の拡張だった VFP と java(jazelle)が標準になったもの。
5/11 追記
SDUpdateToolV1.0 で ブートストラップのコードをSD の後に書くのは本当か?ほんとうにブートストラップが SD の後ろに書き込まれるのかどうか確認してみた。
手順:
まず、1GB の microSD を用意して、あらかじめ すべての領域を 0 クリア。
つぎに パーティションを 4 つ作り 最初の vfat に SmartQ5 ファイルを置く。
SDUpdateTool を実行。
Linux で、パーティション外の領域をチェック
しらべてみたところ .. オフセット 7168 から u-boot.bin のイメージが書き込まれていた。ただし、まったく同じではなく後ろの 数百バイトの内容が違う。
また、その後ろ ほとんど最後のあたりに、qi.nb0 のイメージが書き込まれていた。これも 最後の方の内容が違う。
違うのは、設定データなのだろう
これらが書き込まれたということは、S3C6410 内のブートローダが、まず SD から qi.nb0 をブートし、qi.nb0 が u-boot.bin をさらにブートする ということを意味している。
u-boot.bin さえ ブートしてしまえば、SmartQ5 ファイルを読み込んで アップグレードとかできるようになるはず。
ところで、なぜ ブートの仕組みを延々調べているかについて説明しておく。
ブートの仕組みが分かると、たとえば、自分でビルドした Linux カーネルを動かすとか ... 他の ディストリ、他の OS を動かすとか といったことができる範囲に入ってくる。ただし、入れ替えに失敗したら JTAG とか特別な装置が必要になるのでは、非常に困る。
安全に OS を入れ替えられるかどうか ... というのは 重要なのだ。
その点で、SmartQ 5 は、非常に良さそうだ。あとシリアルコンソールがあれば ...
それについても ブートパラメータに console=ttySAC0,115200n8 とかが入っているなど、期待できる要素はある。基板に シリアルのパターンがあったりするかも知れない。
あとは、inner SD が交換できると さらに嬉しいのだが ...
なんだかんだで、期待が膨らんできた。到着が待ち遠しい。
5/12 追記
ボード写真を発見!これ見ると SanDisk の
iNANDというデバイスを使っている。X線のほうを見るとよくわかるが、BGA で交換できるようなものではなさそう。ちなみに iNAND は MLC で Read 10MB/sec, Write 9MB/sec だそうだ (追加の
製品情報(pdf)より)。
こっちの商社のページの方が分かりやすい。ウェアレベリング機能があるみたいだから、壊れることはそれほど心配することはないのかも知れない。データシートのリンクがあるので見てみたが、ピン数の割りに信号線が少なく SD + αという感じ。世の中には こんなひとたちもいるらしいから、交換とか改造は不可能というレベルではないかもしれない。
ちなみに、私の実験では SanDisk の MLC 2GB に対して Write し続けて 37 日で壊れた。この 1GB iNAND が 同等のものだと仮定すると 1/2 の 19 日ほどで 壊れる計算。普通 Write ばかりしているということはないので その 数十倍(3年以上?)は使えると思っていいと思う。
ちなみに、無線LAN は USI WM-G-MR-09 (SDIO) 。Bluetooth は、USB 接続っぽいモジュールが 金属のSD スロットの上に載っていて見るからに適当。(ひょっとして試作品?)
あと、バッテリーとは 2本の線で接続されているのみ。( バッテリー自体には制御基板が付いている )
シリアルコンソール? 全然判りません。
おまけ: 左上のブロックは、イヤホンジャックで その下に内蔵マイクが見える。あと ボタン状の物体は、電池じゃなくて 小型スピーカ。
追記: 5/13
書留番号のお知らせ なんてのが来た。航空書留で発送したそうだ。今週末に入手できるかも。
追記:
http://www.eletroworld.cn/nb/SmartQ_service.htmここに、有用な情報が!
5/15 追記 発送のお知らせ というのが来た。
発送:2009/5/12日
航空書留:153.8元(重量:1664g)
検品手数料:25元
ご請求合計:178.8元=2,610円(レート14.6)
この金額を ジャパンネット銀行 に振り込めばよいらしい。
ところで、実をいうと、2 個買った。
前回、払った金額はこれ。
商品代金合計:1796元
国内基本送料:30元(超過の場合は国際送料で精算)
手数料:287元(16%)+追加1品目×20元=307元
合計:2133元=31,570円(レート14.8)
2個合計で 34180 円 + 振込み手数料 x 2 の金額がかかったことになる。
振込み手数料は条件によって変わるし気にしないことにすれば、1個あたり 17000 円ほど。1 個の購入なら 18000円ぐらいか。もっとも 問題はこれから。良品かそうでないかで 面倒やコストが全然違う。
5/12日発送で、1週間〜10日ほどかかるそうだが、全然
追跡サービスで見えない。
こっちも リンク先の中国のサイトもだめ。
いったい何時になるのだろう?
5/16 追記
追跡サービスに情報が出た!
5月12日 17:55 引受 CHINA
5月16日 0:22 国際交換支店/局に到着 XX国際支店
5月16日 0:23 通関検査待ち XX国際支店
5月16日 17:27 国際交換支店/局から発送 XX国際支店
5月16日 23:03 通過 YY支店
5月17日 6:42 到着 ZZ支店
5月17日 10:54 お届け先にお届け済み