Jun.20.2001 (Jun.21.2001 追記)
プレイステーション2 用 Linux が届いたのでその報告をする普通のページ。
本日は休暇を取っており万全の受け入れ体制で惰眠を貪っていた。 そしてドアベルでたたき起こされ待ち焦がれた荷物を手渡される。
わくわくしながら箱を開けていく様。
パッケージのキモである DVD-ROM
というわけで全パーツはこんな。
上部の四角い箱は HDD の電源アダプタ。
右のケーブルは VGA アダプタ(メス)、音声ピンジャックつき。
写真じゃわからないけれどもキーボードの裏にも「PS2」のロゴの
彫り込みがあってちょっとうれしい。
マウスはビックリマウス用に売られていたマウスの色違いだね。
キーボード脇に拡張USB端子があってそこにマウスを繋げられるので
本体側のUSBは一つしか消費しないですむ。
カーネルを入れるためのメモリーカードは別売りなので買っておくべし。 通常のゲームデータをセーブするカードとはフォーマットが違うので、 専用としておかねばならないらしい。
私は "Sync on Green" 対応のディスプレイを持っていたので なんら問題なく繋がったのでした。で、購入前に気になっていた事 を幾つか。
% startx -- -screen 0 (w)x(h)x(d)24bit depth だと 800x600x24 どまりですが、16bit depth だと 1280x1024x16 まで指定出来ます。
% startx -- -screen 0 NTSC[,,-inter|,,-nointer]とするとNTSC出力になりますので、X-Window の画面をテレビに表示する ことができます。
取り敢えず X11 上のアプリケーションとして拙作の
「うらはらテンプテーション」を動かしてみるテスト。
今のところうちのアプリでもっとも多様なデバイスを用いるので。
最も懸念していた esound が、既にインストールされていたのでほっと一安心。
configure をかますと gdk-pixbuf と esd-devel がいないらしい。
予想の範疇。
で、PS2 Linux の DVD-ROM の中から以下の RPM をインストール。
gdk-pixbuf-0.7.0 gdk-picbuf-devel-0.7.0 audiofile-devel esd-develaudiofile-devel は esd-devel が require。
本当はもう一つ libcdaudio というライブラリを使っていたんだけど、
先日 0.99d のときにこれが無くても動作するように書き直したので
今回は特に必要なし。
んが、対応が不完全で Make に失敗してみる(苦笑)。
というわけで
libcdaudio が無くても動作するためのパッチ(for 0.99e)
これで問題なく動作。
なんか遊んでいたらサウンドデバイスが突然お亡くなりになったり
してみたが、まあそこはそれ。
基本的には X-Server が動いている Linux でしかないので特に感慨も無し。
マニュアルの頭にありますが、DVD-ROM の SM_PDF というディレクトリの中に
PlayStation2 のシステムマニュアルが PDF形式で納められています。
そしてこれこそが PS2 Linux 最大のヤマ場であるわけですよ :-)
開発ツール群(gcc, gas, ee-as)の説明は /usr/doc/PlayStation2 の中に
あります。これもマニュアルに書いてあるのですが最後の最後にちょこっと
あるだけなので見落としがちです。
この中でも特に toolchain_*.txt は一読しておきましょう。
gcc を使う上での注意点なども書いてありますので。
他は /usr/doc/PlayStation2 内にあるのが全てのようです。
vu (Vector Unit)を使うためのアセンブラコードサンプルと、
ネイティブコンソール版 MESA (640x480固定らしい)が納められています。
サンプルプログラム等はないですが、まあ最低限の足掛かりは用意して
くれたというところでしょうか。
まあ、当然ですがネイティブコンソールの MESA などを使うと画面表示が アプリに奪われますので、開発は他のマシンからネットワークログイン して行なう必要があります。
SM_PDF に納められているマニュアルによるのですが、EE, GS, VU に関する
資料はほぼ完全な形で納められているのでかなりなことができるでしょう。
画像周りのアプリケーションはかなりなことができるものと思います。
CGスタジオがオリジナルクラスタリングレンダラーを作成しよう、
とかいう用途には実にマッチしているのではないでしょうか。
逆にマニュアルが無い部分として IOP があります。
PS2 の I/O 部分を一手に引き受けているプロセッサで、これ自体 MIPS
アーキテクチャのプロセッサです。よするに旧プレステの CPU まんま
ですな(ソフトの互換性のためでもある)。
こいつと EE とのやり取りをするための DMA インターフェースはちょろっと
説明があるのですが、それだけで。IOP 側の資料がまったくありません。
だから USB や IEEE1394 をダイレクトに扱おうというのも困難だし、
サウンドプロセッサである SPU2 へのアクセスも出来無さそうですな。
もっともそれらが出来ちゃったらプロテクトのない DVD-ROM driver が
書けちゃいそうですが :-)
だからサウンドやUSB、それにパッドといったデバイスには Linux デバイス ドライバー経由でアクセスするしかなさそうです。サウンドがちょっと 寂しいかな、グラフィックで出来ることに比べたら。
以上憶測なので真意保証はしません。
サーバー用途としては?
素直に PC を買った方が安いし早いと思います :-)
ネイティブコンソール用のライブラリーとサンプルがあるはずだけどなあ、
とか思っていたんですが RPMS の中に libps2dev なるファイルを発見。
ビンゴ、これがまさにそのサンプルでした。ソースのアーカイブ(SRPMS)も
拾っておきましょう。