「りも」トップページへ
TIPS index へ

PS2 Linux がやってきた

Jun.20.2001 (Jun.21.2001 追記)

プレイステーション2 用 Linux が届いたのでその報告をする普通のページ。


・ 宅配便屋さんありがとう

本日は休暇を取っており万全の受け入れ体制で惰眠を貪っていた。 そしてドアベルでたたき起こされ待ち焦がれた荷物を手渡される。

[photo01]
結構大きいのです

・ びっくりばこど〜ん(もしくはばくさんのかばん)

わくわくしながら箱を開けていく様。

[photo02]
箱の中はこんな感じ

・ 簡素なパッケージの白いソフト

パッケージのキモである DVD-ROM

[photo03]
ニュースサイト等でみたまんま

[photo04]
裏はこんな感じ

[photo05]
中身とレーベル

・ 全員整列

というわけで全パーツはこんな。

[photo06]
PS2 Linux Kit 一式

上部の四角い箱は HDD の電源アダプタ。
右のケーブルは VGA アダプタ(メス)、音声ピンジャックつき。
写真じゃわからないけれどもキーボードの裏にも「PS2」のロゴの 彫り込みがあってちょっとうれしい。
マウスはビックリマウス用に売られていたマウスの色違いだね。 キーボード脇に拡張USB端子があってそこにマウスを繋げられるので 本体側のUSBは一つしか消費しないですむ。

カーネルを入れるためのメモリーカードは別売りなので買っておくべし。 通常のゲームデータをセーブするカードとはフォーマットが違うので、 専用としておかねばならないらしい。


・ ディスプレイについて

私は "Sync on Green" 対応のディスプレイを持っていたので なんら問題なく繋がったのでした。で、購入前に気になっていた事 を幾つか。

VGA ケーブルを使ってモニター上でゲームは出来るか
これができるとより綺麗な画面で GT3 が遊べるんですけどねえ。
結果はダメでした、繋ぐ前からわかっている事なんですが、 ゲームタイトルは NTSC 出力ですから 15khz が表示できるモニターで ないとダメでしょう。ひょっとしたらそれが写るモニターなら行けるかも しれません。

起動しても写らない
ゲームと同じく起動時のPS2 ROMメニュー自体も NTSC ですので、 起動直後は NTSC 出力になっています。PS2 Linux の DVD-ROM を 起動し、ブートローダーが立ち上がるまでモニターに映像が表示 されません。
逆に、ブートローダーが立ち上がった後は VGA 表示なので、 NTSC出力(コンポジット出力)で見ていると起動直後と PS2 ロゴまで は表示されていますがブートローダーが立ち上がった瞬間画面が 消えます。
このときコンポジットからテレビに対し不正な同期信号を流し込んで いますので、場合によっては機器に損傷を与えるかもしれません。

繋ぎ変えるのが面倒だ
このままだとゲームをやるときと Linux を立ち上げるときでケーブルを 繋ぎ変えなくてはならないので煩雑です。
PS2 Linux Kit のマニュアルにあるように AVアダプター(SCPH-10130) を使うと、テレビとモニターを両方同時に繋ぐことができますので 便利です。(私もさっき買ってきた)
X11 はどうなっている
XGS という Graphic Synthesizer 用 X-Server になっていました。
X-Window が 800x600 でしか立ち上がらない
XFree86 の Tips になってしまい不本意なのですが、startx (xinit) で起動する際サーバーにスクリーンサイズを指定してやります。
 % 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-devel
audiofile-devel は esd-devel が require。

本当はもう一つ libcdaudio というライブラリを使っていたんだけど、 先日 0.99d のときにこれが無くても動作するように書き直したので 今回は特に必要なし。
んが、対応が不完全で Make に失敗してみる(苦笑)。
というわけで libcdaudio が無くても動作するためのパッチ(for 0.99e)

これで問題なく動作。
なんか遊んでいたらサウンドデバイスが突然お亡くなりになったり してみたが、まあそこはそれ。

基本的には X-Server が動いている Linux でしかないので特に感慨も無し。


さあ、本番はこれからだ。

・ Departure

マニュアルの頭にありますが、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 を買った方が安いし早いと思います :-)

・ (追記) libps2dev-0.9

ネイティブコンソール用のライブラリーとサンプルがあるはずだけどなあ、 とか思っていたんですが RPMS の中に libps2dev なるファイルを発見。
ビンゴ、これがまさにそのサンプルでした。ソースのアーカイブ(SRPMS)も 拾っておきましょう。


rero2@yuumu.org