Pandoraはどれくらいのスキルがあれば楽しめるのか

クレジットカードの明細を見ていたら “GP32X.com” の文字があって「これなんだっけ?」と首をひねる。
……ああ、OpenPandoraの購入か。
どうやら本年内受付の第一陣に無事紛れ込めたらしい。発送前に引き落としになっているのが若干気にはなるけれども、これから製造するわけだからその資金として必要なんでしょな。

Pandoraは企業の製品ではなく、イギリス方面を中心とした各国の有志によって作られているオープンなモバイルエンタティメントガジェット。一応オリジナルな携帯ゲーム機(当初のモチベーションがエミュマシンとか)なんだけれども、普通に Linux 端末でもあるので汎用モバイルガジェットの地位も目論んでるっぽい。
んで、10/1 に待望の年内生産3000台分の予約が開始。待ち望んだ人々がサイトに押しかけアクセスできないわPayPalで申し込んだ分はなぜかキャンセル扱いになるわの大騒動(だったそうですよ)。なので、予約をもう1日追加して、その延長分で入ったオーダー全部初回生産にしますとフォロー。最終的に4000台が生産されることになった。
私は予約合戦に参加はしなかったのだけれども、どれどれと覗いたら延長戦をやっていたのでさくっと注文を入れた次第。本当に受け付けられているのかどうか疑問だったのだけれどもクレジットカードの明細に記録されているということは、購入予定者になれたんだよね?

オフィシャルな Pandora Wiki だけでなく、日本人のための情報収集Wiki も立ち上がったりして、全体的にそわそわわくわくしている雰囲気な昨今。
しかし、私はこの Pandora にちーとばかし疑問を抱いている。おそらく、ソフトウェアの面でなんもサポートされないでLinuxが走るハードだけが提供されるんじゃないかと考えているからだ。
私からみたらそれはそれで構わないのだが、多分みんなのわくわくには応えられないんじゃないかなあと今のうちにびっくり水を打っておきたい。今回はそんな記事。
まあ、半可通が資料斜め読みしただけなので間違いもいっぱい書くと思うので、あまり真剣に受け止めないでね。

疑問に思ったきっかけは、Linux とX11ベースのデスクトップがインストールされた状態で提供されると聞いた事。
X11が動いているのは良いのだが、それではスペックとしての売りとなっている OpenGL ES はどう提供されるのだろうか。ここで「xorgドライバーとOMAP5350用 libgl も提供されるに違いない」とは考えられなかったのですな。そこまでのソフトウェア開発パワーがあると思えなかった。
Pandora で OpenGL はどうやったら使えるの?という探索からスタート。

Pandora はTexas Instruments社の OMAP3530 という SoC の幕の内弁当みたいなアプリケーションプロセッサを核に持つ。というか、機能の大部分はこの OMAP3530 が持つもので、それにメモリとLCDといった手足を付けただけといった感じになっている。
というわけでどうすれば何ができるのかを OMAP3530 のデータシートから調べてみよう。
omap3530-block.jpg
データシートからブロック図を引用。これが無いとさっぱりわからんので。

OMAP3530 は主役となるプロセッサが大体 3つほど載っている。
1つがメインCPUとなる Cortex-A8 ARMv7 アーキテクチャのプロセッサ。
もう一つのキモが TI社ご自慢のDSP TMS320DM64x+。オーディオやビデオのデコードをこのプロセッサが受け持つことでハイスペックのメディア再生が可能でありメディア機器に最適ですよというのがOMAPシリーズの売りですな。
そして3つめが PowerVR IP のグラフィックアクセラレータ。なにげに、ディスプレイプロセッサと分離しているところが注目点である。実際OMAP3525にはこのグラフィックアクセラレータが無いのだけれども、ディスプレイプロセッサはあるので動画出力はできる事になっている。(このへん後でじわじわ効いてきますよ)
他は見る人が見たらわかるだろうから置いておく。

まずは Cortex-A8 の検証。
ARMv7 アーキテクチャ(というか THUMB-2)は GNU binutil にコミット済みであり、GCC に Cortex-A8 の最適化オプションが存在しているので開発環境的には問題がない。
Cortex-A8 には NEON という SIMD演算コプロセッサが近いバスで繋がっており、メディア演算能力が高いことも特徴となっている。まあ、流石に SIMD をごりごりにチューンして使うにはアセンブラで書くしかないのだけれども、NEON を単精度の浮動小数点コプロセッサとして利用するオプションがGCCには存在している様だ。
つまり、現在の GCC で Cortex-A8 を思う存分使うことができる。よって、このへんに問題点は無し。

次に TMS320DM64x+。
基本 Cortex-A8 とは別のサブCPUとして動作しているので、このDSP用のプログラムは別に作らないといけないし作った後何らかの手段で TMS320DM64x+ に流し込んで実行させなければならない。
TMS320DM64x+ の開発環境は TI社の “Code Composer Studio” というものを用いる事になる。これが有料で $500 とか $1000 とかいったレベル。最も、コードを作成しても、それを Cortex-A8 上の Linux からどうやって利用するのかという問題がある。専用のmailboxドライバを作成して、タスクコントロールするような形だろうか。
それ以前に、何をさせるか、どう使うか、誰がソフトを書くかといった事が決まっていない。
よって Pandora では未使用(使用する勇者が現れるのを待つ状態)となるのではないだろうか。

PowerVR のグラフィックアクセラレータ、の前にディスプレイプロセッサ。
このディスプレイプロセッサは外部メモリのイメージを LCD とビデオ出力に送り出すのがお仕事。ちなみに、ビデオはLCDふくめ3本に別々の画が出せるけれども片方がコンポジットでもう片方がS-Videoの固定だそうな。
で、適当な一枚画をだすのであればこのディスプレイプロセッサだけで良いことに気がつく。
実際 PowerVR IP が載っていない型番でも Linux がサポートされていることを考えると、Pandora での Linux およびその上の X11 はディスプレイプロセッサと Linux-fbdev でもって描画するのだろう。
評価ボード上でシューティングのEmuを動かしていた最初の写真はまあともかく、Quake2のときでも OpenGL を使っていないというのが最大の気になりポイントだ。
というか、Quake2のムービーでシリアルコンソール使っていたな。この次点では fb-con でもなかったのか。

んで本題のグラフィックアクセラレータ。
ディスプレイプロセッサが別に存在しているので、この PowerVR IP は何をやっているのかというとVRAMに割り当てられたメモリ領域をシェーディングしながら高速に塗りつぶしたり、RAM内でイメージ(テクスチャ)を高速にコピーしたりといったRAM上のデータ操作を行うわけですな。
そこでブロック図を見てみると PowerVR IP も単純にインターコネクトに接続されているだけなのがわかる。ということは、VRAMとなるメモリ空間は外部に接続されているSDRAMというわけだ。Linuxを動かすとなると、プログラムもSDRAMに置くことになるから、そうなるとSDRAMコントローラーとそのバスを CPU、ディスプレイプロセッサ、グラフィックアクセラレータの三者が取り合うということではないだろうか。こうなると、外部SDRAMをうまく設定してやらないとかなりの速度低下を招きそうだ。
このOMAPの設計を見ていると、プログラムはGPMC側の別なメモリーバスでアクセスする感じではあるよな。

さて、OMAPで OpenGL ES を使うにはどうしたら良いのか。
OMAP用の OpenGL ES SDK は TI が配布している
どうもライブラリはバイナリ配布っぽいけど Linux 用があるのでこれを使えということでしょうな。
入手していないので詳細はわからないけど、通常の Linux-fbdev との共存はできないんじゃなかろうか。もしできたとしても、全画面を OpenGL ES が使う事になるだろうから、X11 との共存はすんなりとは行かないはずである。(このへん憶測でしかないなあ)
実際、このSDKがどれくらい使えるのか、再配布は可能なのかといったあたりまだまだ情報がたりなすぎる。
おそらくは、Pandora がデビューしたその日には 3DCG はおろか、OpenGL ES での開発環境もまったく揃っていない状態であろうと予測する。もしくは、そう思っていた方が良いぞ。

ひとまず、Pandora のLinuxカーネルソースを拾ってどんなドライバーがあるのか軽く眺めてみた。ドライバー周りで OMAP もしくは Pandora の文字があったのは、
タッチスクリーン、PCM音声、キーボード、フレームバッファ、LEDコントロール、メモリ、mmc、USBホスト。
といったあたり。
動いているはずのBluetoothやWiFiが見あたらなかったのだけれども、このへんはUSBデバイスとして接続されているんじゃなかろうか。
OMAP 用 Linux-fbdev は確かに存在していて(ドライバ製作はNOKIAだった)、中身は単純にディスプレイプロセッサとLCDのコントロールと、フレームバッファをDMAで流し込んでいるといった風情。

〜〜〜〜
以上、ちょいと気になって調べた事柄をざっくりまとめておいた。
考察部分に誤りがあってもゆるしてね。

そんなこんなで、多分発売直後には OMAP の売りである DSP も PowerVR も使うすべが無く宝の持ち腐れ状態になっているんではないかと思われる。3DCGやアクセラレーターが使えずそんなに早くない画面の、小さな Linux マシンとして皆の手元に届く事であろう。それはそれで、ポメラ的なポジションとして嬉しい気もするけれども。
しかし、多くの機能が使えないことでがっかりする必要は無い。むしろ、ハック次第でそれらが使用可能になるかもしれない。その暁には現在主流の携帯ゲーム機よりもはるかに強力なプロセッサ達が自分の思いのままなのだ。
だから Pandora はハッカーであればあるほど楽しめるデバイスとなろう。

そして、そんな世界中のハッカー達が描く数年後の Pandora をお楽しみに。




You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

6 Responses to “Pandoraはどれくらいのスキルがあれば楽しめるのか”

  1. fenrir Says:

    Pandora面白そうですね。次期予約のチャンスがあったら購入検討しようと思っています。
    ところでTIのDSP環境『Code Composer Studio』ですが、一般で買うとおそらく2000ドルすると思います(参考:教育機関向けディスカウント http://focus.tij.co.jp/jp/dsp/docs/dspuniv.tsp?sectionId=155&tabId=1651 )。実際にDSPを使っているのですが、開発にはCCSの他に専用のJTAGエミュレータ(これも結構高い)が必要だったりするので、内蔵のC64xを弄るには相当お金をかけないとできないのでは? と思います。(DSKというスタータキットを使ったり、違法コピー製品を使う裏技が存在しないこともないんですが)

  2. rerofumi Says:

    フォローありがとうございます。
    私が「1000ドルかー」と思ったのは、EVALボードユーザーへの優待サブスクリプションだった様です。そのボード(1500ドルですが)を買うとDVSDKという、DSPのデコーダーSDKが利用できるっぽいですね。
    http://focus.tij.co.jp/jp/general/docs/gencontent.tsp?contentId=50543

    OMAP3530の安価な評価基板 “BeagleBoard” の資料を眺めていると周辺回路やLinuxのブート手順とか色々書いてあって参考になります。つか、このボード良さそうだな。
    http://beagleboard.org/
    この資料を眺めていて、SDRAMとフラッシュはOMAPと一緒のパッケージに積層実装されているのだというのを始めて知るのでした。本当にワンパッケージソリューションなんだなあ。

  3. giw Says:

    私も次をねらってる一人です。
    DSP はまず動いてないだろうなーとは思いましたが、
    その構成だと確かに PowerVR も怪しいですねえ。

    細かい開発にはやっぱり Pandora だけではきついだろうなーと
    OMAP3530 の評価ボードを探して、私も beagle board にたどり着いたんですが
    これって Ethernet が標準でついてないんですよね……。
    UNIX 系 OS で何とかしようと思うとこれがちょっと辛くて。

  4. rerofumi Says:

    まあ、Ether chipもコネクタもでかいですからね。
    USB Hostがあるので、USBのLANアダプタ繋いで使えないでしょうかね>beagle board

  5. fenrir Says:

    すいません、最近になって知ったのですが、C64x+のコンパイラだけは無償で提供されているようです。
    https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/download.html (ログインが必要)
    いちおう気合いれればこれだけで開発はできますね(笑)

  6. rerofumi Says:

    コンパイラの情報ありがとうございます。
    あとは気合いだけですねww

    のびのびになっているPandoraですが、結局日本からの振り込み手段は為替郵送による送金しか手が無くなりかなりめんどっちい事になっています。
    しぶしぶ送金手続きを行いましたが、その後「ひゃはーお前の送金届いたぜー」というメールが来たので後は発送待ちな状態。3月中には発送されるとか?

    それとは別にBeagleBoardも一部で盛りあがっている様ですね。なんとなく一枚欲しくなってきた :-)

Leave a Reply