いまさらNanonoteについてと、ついでにGCW-ZERO、あとKDEタブレット


Slaanesh Dev
DOSBoxというMS-DOSのソフトウェアを動かすためのソフトをBen Nanonoteに移植
DOSBox 0.74 v2.0 A320 Open Dingux and Ben Nanonote OpenWRT
まぁ、ここでいうMS-DOSのソフトとは、ゲームのことです。
「A320」というのは、「Dingoo A320」というLinuxのゲーム機です。
ハードウェア的にはかなり似てる点があります。

自動生成型ダンジョンの元祖Rogue(ローグ)と、その発展系Nethackの移植版
Nethack 3.4.3 and Rogue for Ben Nanonote
Nethackをさらに進化させてったものが、風来のシレンとかポケモンダンジョンになります。

・Jirka’s notesの「カテゴリー Nanonote
いまでも使ってるようで、いろいろ日記的なものを書いていますね。

GCW-ZERO
Jz4770搭載のLinux系ゲーム機。
Dingoo A320の後継機みたいなもの。
最初はほそぼそとやっていて、2012年10月頃に初期出荷をしたあと、「kickstarterで募集」したら大規模になっちゃっていろいろ大変だったみたいです。
今月になってようやくkickstarter分の発送が終わったようですね。
GCW-ZERO firmwareアップデートを見ると、firmwareの更新も順調そうですね。

KDE Tablet 「Flying Squirrel」製造計画(英語)
Nanonoteとは関係ないけど、メーリングリストを見ていたら出てきたので紹介。

EOMA-68というフォームファクターのCPUカードを使用したKDE搭載のタブレットを製造しようとしている。
進捗状況」を見ると、試作基板はできており、5月には第2次試作基板製造に向けた調整を行っていたようだ。
overlay

なお、EOMA-68は、物理形状はPCMCIAカードを流用している。

Ben NanoNoteをバージョンアップ


最近あまり動きがなかったBen NanoNote

Nano Noteがどんなのかというと・・・

・2年ぐらい前に$99で買えるLinuxパームトップ機!として話題に
・物理キーボードあり、タッチパネル無し
・CPUにJz4720 336MHz使用。
・メモリは32MBしかないので、そこそこの動作しかしない。

で、そんな感じのBen Nano Noteですが、最新版の2011年11月13日版でいろいろ面白い変更が取り込まれていました。

最大の変更は、Linux kernelがver 3.0(前はver 2.6.37.6だった)になったということ。
そして、IEEE 802.15.4を利用したWPANの取り込み。

さて、アップデートですが、うちの環境では、以前はUbuntuノートを使ってアップデートしていたのですが、現在そのパソコンが稼働してないので、CentOS5のサーバを使ってアップデート。

まずは、firmwareをダウンロードしておくか、とNanoNoteをつながない状態でreflash_ben.shを実行。

# wget http://downloads.qi-hardware.com/software/images/NanoNote/Ben/reflash_ben.sh
--2011-11-24 14:40:37--  http://downloads.qi-hardware.com/software/images/NanoNote/Ben/reflash_ben.sh
downloads.qi-hardware.com をDNSに問いあわせています... 88.198.75.224
downloads.qi-hardware.com|88.198.75.224|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://projects.qi-hardware.com/index.php/p/openwrt-packages/source/file/master/nanonote-files/data/qi_lb60/scripts/reflash_ben.sh [続く]
--2011-11-24 14:40:37--  http://projects.qi-hardware.com/index.php/p/openwrt-packages/source/file/master/nanonote-files/data/qi_lb60/scripts/reflash_ben.sh
projects.qi-hardware.com をDNSに問いあわせています... 88.198.75.224
downloads.qi-hardware.com:80 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 7310 (7.1K) [application/x-sh]
`reflash_ben.sh' に保存中

100%[==========================================>] 7,310       26.2K/s 時間 0.3s

2011-11-24 14:40:38 (26.2 KB/s) - `reflash_ben.sh' へ保存完了 [7310/7310]

# chmod a+x reflash_ben.sh
# ./reflash_ben.sh
working dir:      /root/.qi/nanonote/ben/latest
chosen method:    http http://downloads.qi-hardware.com/software/images/NanoNote/Ben
chosen version:   latest
===
present files are identical to the ones on the server - do not download them again
booting device...
usbboot: error while loading shared libraries: libconfuse.so.0: cannot open shared object file: No such file or directory
===
fatal error occured - ABORTED
===
can't boot device - xburst-tools setup correctly? device in boot-mode? device connected?
===
Before reporting this as a bug
Please ensure you're using the latest available version of this reflash script
http://downloads.qi-hardware.com/software/images/NanoNote/Ben/reflash_ben.sh
#

あ~、libconfuseなんて入れてないよな・・・と「yum install libconfuse」追加。
ちなみに、他にも、/root/.qi だと/パーテーションを圧迫しちゃってるので、.qiディレクトリを他のパーテーションにシンボリックリンクで逃がしたりしています。

つなげて、NanoNoteの「U」キーを押しながら電源を入れて、reflash_ben.shを実行…

# ./reflash_ben.sh
working dir:      /root/.qi/nanonote/ben/latest
chosen method:    http http://downloads.qi-hardware.com/software/images/NanoNote/Ben
chosen version:   latest
===
present files are identical to the ones on the server - do not download them again
booting device...
clean bootloader env data ...
flashing bootloader...
Done:  2/2
[########################################################################################]
flashing kernel...
Done:  4/4
[########################################################################################]
===
fatal error occured - ABORTED
===
error while flashing kernel:
Error - can't read bulk data from Ingenic device:-110
===
Before reporting this as a bug
Please ensure you're using the latest available version of this reflash script
http://downloads.qi-hardware.com/software/images/NanoNote/Ben/reflash_ben.sh
#

失敗・・・

# usbboot
usbboot - Ingenic XBurst USB Boot Utility
(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner
This program is Free Software and comes with ABSOLUTELY NO WARRANTY.

Now checking whether all configure args valid: YES
Current device information:
CPU type is Ingenic XBurst Jz4740
Crystal work at 12MHz, the CCLK up to 252MHz and PMH_CLK up to 84MHz
SDRAM Total size is 32 MB, work in 4 bank and 16 bit mode
Nand page per block 128, Nand page size 4096, ECC offset in OOB 12, bad block offset in OOB 0, bad block page 127, use 1 plane mode
usbboot :> exit
 exiting usbboot software
#

usbbootコマンドで接続してみると、それなりに動いていそう。

じゃぁ、手動でアップデートしてみるか・・・ということで、手順を見ながらやってみる。

# usbboot
usbboot - Ingenic XBurst USB Boot Utility
(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner
This program is Free Software and comes with ABSOLUTELY NO WARRANTY.

Now checking whether all configure args valid: YES
Current device information:
CPU type is Ingenic XBurst Jz4740
Crystal work at 12MHz, the CCLK up to 252MHz and PMH_CLK up to 84MHz
SDRAM Total size is 32 MB, work in 4 bank and 16 bit mode
Nand page per block 128, Nand page size 4096, ECC offset in OOB 12, bad block offset in OOB 0, bad block page 127, use 1 plane mode
usbboot :> boot
 CPU data: Boot4740
 Already booted.
usbboot :> nerase 0 4096 0 0
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 0 blk_num 4096)......
 Finish! Return: 00 00 08 00 00 00 00 00 (position 4096)
 Force erase, no bad block infomation!
usbboot :> nprog 0 /root/.qi/nanonote/ben/latest/openwrt-xburst-qi_lb60-u-boot.bin 0 0 -n
 Programing No.0 device, flen 617312, start page 0...
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 0 blk_num 2)......
 Finish! Return: 00 01 00 00 00 00 00 00 (position 2)
 Force erase, no bad block infomation!
 Size to send 617312, transfer_size 524288
 Image type : without oob
 It will cause 2 times buffer transfer.
 Writing NAND page 0 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 0 page_num 128)
 Checking 524288 bytes... no check! End at Page: 128
 Writing NAND page 128 len 94208...
 CPU data: Boot4740
 Finish! (len 94208 start_page 128 page_num 23)
 Checking 94208 bytes... Comparing 94208 bytes - SUCCESS
 End at Page: 151
usbboot :> nprog 1024 /root/.qi/nanonote/ben/latest/openwrt-xburst-qi_lb60-uImage.bin 0 0 -n
 Programing No.0 device, flen 2087718, start page 1024...
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 8 blk_num 4)......
 Finish! Return: 00 06 00 00 00 00 00 00 (position 12)
 Force erase, no bad block infomation!
 Size to send 2087718, transfer_size 524288
 Image type : without oob
 It will cause 4 times buffer transfer.
 Writing NAND page 1024 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 1024 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 1152
 Writing NAND page 1152 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 1152 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 1280
 Writing NAND page 1280 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 1280 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 1408
 Writing NAND page 1408 len 516096...
 CPU data: Boot4740
 Finish! (len 516096 start_page 1408 page_num 126)
 Checking 516096 bytes... Comparing 516096 bytes - SUCCESS
 End at Page: 1534
usbboot :> nprog 2048 /root/.qi/nanonote/ben/latest/openwrt-xburst-qi_lb60-uImage.bin 0 0 -n
 Programing No.0 device, flen 2087718, start page 2048...
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 16 blk_num 4)......
 Finish! Return: 00 0a 00 00 00 00 00 00 (position 20)
 Force erase, no bad block infomation!
 Size to send 2087718, transfer_size 524288
 Image type : without oob
 It will cause 4 times buffer transfer.
 Writing NAND page 2048 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2048 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 2176
 Writing NAND page 2176 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2176 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 2304
 Writing NAND page 2304 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2304 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 2432
 Writing NAND page 2432 len 516096...
 CPU data: Boot4740
 Finish! (len 516096 start_page 2432 page_num 126)
 Checking 516096 bytes... Comparing 516096 bytes - SUCCESS
 End at Page: 2558
usbboot :>

あれ?手順に時間がかかるってあるのにすぐに終わったのはなぜ?
と確認してみると指定するファイルを間違えている・・・

usbboot :> nprog 2048 /root/.qi/nanonote/ben/latest/openwrt-xburst-qi_lb60-root.ubi 0 0 -n
 not enough argument.
 Usage: nprog (1) (2) (3) (4) (5)
 (1)    start page number
 (2)    image file name
 (3)    device index number
 (4)    flash index number
 (5) image type must be:
        -n:     no oob
        -o:     with oob no ecc
        -e:     with oob and ecc
usbboot :>

正しいファイルにして再実行してもエラー。

その後、どうにもうまくいかないので一度usbbootを終了して、再実行。

# usbboot
usbboot - Ingenic XBurst USB Boot Utility
(c) 2009 Ingenic Semiconductor Inc., Qi Hardware Inc., Xiangfu Liu, Marek Lindner
This program is Free Software and comes with ABSOLUTELY NO WARRANTY.

Now checking whether all configure args valid: YES
Current device information:
CPU type is Ingenic XBurst Jz4740
Crystal work at 12MHz, the CCLK up to 252MHz and PMH_CLK up to 84MHz
SDRAM Total size is 32 MB, work in 4 bank and 16 bit mode
Nand page per block 128, Nand page size 4096, ECC offset in OOB 12, bad block offset in OOB 0, bad block page 127, use 1 plane mode
usbboot :> boot
 CPU data: Boot4740
 Already booted.
usbboot :> nerase 0 4096 0 0
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 0 blk_num 4096)......
 Finish! Return: 00 00 08 00 00 00 00 00 (position 4096)
 Force erase, no bad block infomation!
usbboot :> nprog 0 /root/.qi/nanonote/ben/latest/openwrt-xburst-qi_lb60-u-boot.bin 0 0 -n
 Programing No.0 device, flen 617312, start page 0...
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 0 blk_num 2)......
 Finish! Return: 00 01 00 00 00 00 00 00 (position 2)
 Force erase, no bad block infomation!
 Size to send 617312, transfer_size 524288
 Image type : without oob
 It will cause 2 times buffer transfer.
 Writing NAND page 0 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 0 page_num 128)
 Checking 524288 bytes... no check! End at Page: 128
 Writing NAND page 128 len 94208...
 CPU data: Boot4740
 Finish! (len 94208 start_page 128 page_num 23)
 Checking 94208 bytes... Comparing 94208 bytes - SUCCESS
 End at Page: 151
usbboot :> nprog 1024 /root/.qi/nanonote/ben/latest/openwrt-xburst-qi_lb60-uImage.bin 0 0 -n
 Programing No.0 device, flen 2087718, start page 1024...
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 8 blk_num 4)......
 Finish! Return: 00 06 00 00 00 00 00 00 (position 12)
 Force erase, no bad block infomation!
 Size to send 2087718, transfer_size 524288
 Image type : without oob
 It will cause 4 times buffer transfer.
 Writing NAND page 1024 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 1024 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 1152
 Writing NAND page 1152 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 1152 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 1280
 Writing NAND page 1280 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 1280 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 1408
 Writing NAND page 1408 len 516096...
 CPU data: Boot4740
 Finish! (len 516096 start_page 1408 page_num 126)
 Checking 516096 bytes... Comparing 516096 bytes - SUCCESS
 End at Page: 1534
usbboot :> nprog 2048 /root/.qi/nanonote/ben/latest/openwrt-xburst-qi_lb60-root.ubi 0 0 -n
 not enough argument.
 Usage: nprog (1) (2) (3) (4) (5)
 (1)    start page number
 (2)    image file name
 (3)    device index number
 (4)    flash index number
 (5) image type must be:
        -n:     no oob
        -o:     with oob no ecc
        -e:     with oob and ecc
usbboot :>

何が間違ってるんだ???

ためしに、いまいるディレクトリに「openwrt-xburst-qi_lb60-root.ubi」をおいて再実行したら、ちゃんと動き始めた・・・

usbboot :> nprog 2048 openwrt-xburst-qi_lb60-root.ubi 0 0 -n
 Programing No.0 device, flen 423624704, start page 2048...
 CPU data: Boot4740
 Erasing No.0 device No.0 flash (start_blk 16 blk_num 808)......
 Finish! Return: 00 9c 01 00 00 00 00 00 (position 824)
 Force erase, no bad block infomation!
 Size to send 423624704, transfer_size 524288
 Image type : without oob
 It will cause 808 times buffer transfer.
 Writing NAND page 2048 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2048 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 2176
 Writing NAND page 2176 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 2176 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 2304
 Writing NAND page 2304 len 524288...
<略>
 Writing NAND page 105216 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 105216 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 105344
 Writing NAND page 105344 len 524288...
 CPU data: Boot4740
 Finish! (len 524288 start_page 105344 page_num 128)
 Checking 524288 bytes... Comparing 524288 bytes - SUCCESS
 End at Page: 105472
usbboot :> exit
 exiting usbboot software
#

で、USBケーブルをはずして、電源長押しして、再投入。

起動時のロゴが変わった!
ブートが早くなった!

・・・gmenu2xのキー操作がよくわからない^^;;;;;
「L」キーで一番上のメニューが右に動く、というのはわかるんですが、それ以外の動作が・・・

とりあえずは、アップデートできた、ということでよしとするかな。

the nD


金曜に届いたLINUX FORMATの2011年9月(LXD148)号を読んでいると、「New $10 games console」なんてタイトルのミニ記事を発見。

Nintendo DSのゲームを作ってる人が、タッチスクリーンなし、3Dなしのゲームが、低コストで遊べるハードウェア作るぜ!とがんばってるヨー、なんて感じの記事。

なんで、ハードウェアを作ろうと思ったかというと、Nintendo DSの非公式SDKを使ってRPGを作ってたので、公式で販売するルートがない、というところから発生しているらしい。

the nD」という名前でやっているということなので、サイトを見てみた・・・・


・10ドル、というのは本体価格
・2011年末にプロトタイプハードウェアが完成予定
・製品版は2012年のWiiU発売前に出したい
・対象年齢は6~12歳
・ARM 400MHz,メモリ32MB,2.4インチ液晶 320×240。CPUとメモリは上位になる可能性あり
・内蔵ストレージ2GB。外部スロット無し
・充電式バッテリー(単3,単4電池は使わない)
・タッチスクリーンは現状どうするか未定
・Wifi経由でゲームをダウンロード
・Linux SDLベースの画面出力

・・・・・・・なんかCPUアーキテクチャが違うけど、Ben Nano Noteっぽい雰囲気が・・・
NanoNoteは設計図公開しているわけだから、それを持ってくれば良かったのに・・・とか思わなくもない

まぁ・・・プロトタイプができるぐらいに再チェックしてみるかな

IEEE802.15.4とTCP/IP


Ben Nano Noteは単独ではネットワークに接続できず、PCにUSB接続してブリッジするか、それともmicroSDカードサイズの無線LANカードを使うか、ということをする必要があります。

以前、auのau Wi-Fi WINカードが使えないかなぁ?と発売直後に入手してみましたが、ミツミ電機製のチップに対応したLinuxのドライバが発見できず、お蔵入りとなっていました。

そこに、新しい手法が現れました。

Ben WPANプロジェクトです。
IEEE 802.15.4準拠のチップを利用して、無線でTCP/IP通信を行おう、というものです。
Ben Nano Note側はmicroSDHCスロットを使用しますが、SDIOではありません。
便宜上「8:10 card」という名称にしていますが、microSDHCコネクタを利用して汎用I/Oを行わせちゃおう、というものです。

この技術を使って、IEEE 802.15.4チップを操作して、TCP/IP通信を行わせてしまうようです。

Ben Noteで、どういった感じなのかは、Ben WPANプロジェクトのwikiを見るよりはプロジェクトマネージャのWernerさんのページ「Ben-WPAN Overview」を見るとわかりやすいです。

Ben Note用基板: atben
PC用USBコネクタ基板: atusb
Linux用Device Driverは、Linux-zigbeeプロジェクト+ben-wpan kernel branchの修正

で、IPアドレスの部分は、基本IPv6で考えられているような感じで、「6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)」という単語が頻繁に出てきます。

が、詳しくみてないので、よくわかりません。

おいおいもうちょっと調べていってみようかと思います。

オープンハードウェア


去年、久々にLinux系のPDAを買いました。

といっても、Agenda VR3以来の2台目ですけど。

2001年3月に本体価格$179で輸入したAgenda Computing社のAgenda VR3 developer editionですが、いまでは関連するサイトが全滅し、再インストールとかしようと思ってもするすべがないという状況になっていたりします。
パソコンとの接続方法はRS-232Cですし、無線LANなんて無い時代ですから、いまとなっては活用も難しい状態ですね。

まぁ、スペックも
・CPU NEC VR4181 MIPS(66MHz)
・メモリ 8MB RAM + 16MBフラッシュメモリ
ですから、なんともしようもないですが・・・

でも、このマシン、とてもいい点が1つあります。
それは単4電池2本で動作するということ。
なので、約10年経過後であっても、ちゃんと動作が確認できました。

で、去年はNanoNoteを買ってみた。
キーボード搭載で$99ということでおもしろそうだったので買ってみたわけだが
正味、あまりおもしろくなかった。
パソコンとの接続方法がUSBなのは今風とはいえ、無線LANがないですし、活用が難しかったです。
ダメ元で買ってみたauのwifiカードはやっぱり使えず、情報を探してみたけど、ミツミのmicroSHDC wifiカードをオープンソースで活用する話が見つからず、利用できず。
いまはともに眠っている感じです。

こっちはバッテリー駆動なので、そこそこ電気を入れたりしていないと二度と使えなくなりそうな感じなので、時々電気をいれて確認していますw


おまけでPDA箱のコレクションですw

手前左:Palm Pilot Professional 1997年3月 個人輸入 本体価格$399
手前右:Agenda VR3 developer edition 2001年3月 個人輸入 本体価格$179
奥左:HP320LX(WinCE) ソフマップで中古購入+ebay.comでWinCE2.0アップデートボード落札
奥右:IBM Workpad c3 国内購入