塩田紳二のPS2Linuxレポート
~環境整備、デモプログラムのテスト編



 前回は、米国取材の直前で、細かく触る時間がなかったが、今回は、多少時間を取ってPS2Linuxを触ってみることができた。まず、前回のレポートでは、PS2Linuxをredhat系としたが、その後、いろいろな調査などにより、Kondara MNU/Linuxというディストリビューションをベースにしているらしいことが判明した。このKondaraは、現在のredhat 7系と同じ系列に属するものの、オリジナルのコマンドがいくつか追加されており、それがPS2Linuxにも利用されているからである。


■PS2Linuxとは

 PS2Linuxも第2陣の7月出荷のものが先週あたりから発送されつつあるようで、さらに多くの人の手元に届いているようだ。ただし、入手できなかった人が多いのも事実。また、Linuxに全く触ったことがないが、PS2関連ということで入手したユーザーもあると聞く。ここで、PS2Linuxとはどんなものか改めて解説しておこう。

 簡単にいえば、PS2Linuxは、PlayStation2でゲームの代わりにLinuxというOSを走らせるもの。動かしてしまえば、普通のLinuxで、この中でPS2用のゲームなどは走らない。また、PS2の初期の開発ツールでLinuxを使っていたこともあり、このPS2Linuxをゲーム開発用環境と勘違いしている人もいるが、PS2Linuxは、PS2で直接動くソフト(つまり、ディスクをドライブにセットしてリセットすれば自動的に起動する通常のゲームソフトのようなもの)を開発するものでは「ない」ということである。もちろん、通常のOSなので、この上で動くゲームを作ることはできる。しかし、PS2用ディスクのIPLルーチンが公開されていないので、自動起動するPS2ディスクを作ることはできない。資料として提供されているのは、各ハードウェアのみで、PS2をゲームマシンとして使うためのファームウェアやライブラリなどが提供されていないからである。これらを入手するには、ゲーム会社と同じく、SCEIとソフトウェア開発契約を結ばねばならない。

 では、単なるLinuxなのかというとそうでもない。PS2の心臓部であるEE(Emotion Engine)やGS(Graphic Synthsizer)などのハードウェアの資料は提供されるので、これらを使ったアプリケーションを開発することは可能である(ちょっとしたライブラリやサンプルプログラムも付属している。これは/usr/doc/PlayStation以下にある)。

 実際、PS2Linuxには、グラフィック機能などを使うデモとして花火が吹き上がり、それをコントローラーで視点を変更して見るblowというプログラムが付属している。これをコンパイルして実行すると、PS2らしい画面を見ることができる(これについては後述)。


■とりあえず環境整備

 PC Watchの読者であれば、すでにイーサーネットカードなどを持ったPCを所有していると思われるので、これとPS2Linuxを同時に使うための環境整備について簡単に解説しておこう。なお、以下の作業は、rootとしてログインした上で行なってほしい。

 ネットワーク内にDHCPサーバー(たとえばルーターなど)があるなら、それを使ってIPアドレスを割り振るのが簡単である。これはPS2Linuxのインストール時に指定できる(もちろん固定アドレスの指定も可能)。後から指定するなら、rootでログインしてlinuxconfコマンドをつかうのが分かりやすい。

linuxconf

と入力してプログラムを起動し、カーソルキーで、Config -> Networking -> Client tasks -> Basic host informationを選んで(行頭に+記号がついており、そこでリターンキーを押してサブ項目を表示させる)リターンキーを押す。項目間の移動はタブ。これでIPアドレス、ネットマスクを設定して最後にQuitを押し、表示されるダイアログで「Activate the Change」を選択して終了。

linuxconfは、システム設定用のプログラム。起動したら、カーソルキー、リターンキー、タブキーで操作する カーソルのある項目でリターンキーを押すと、設定画面に切り替わる。必要な項目にカーソルを合わせて入力する。なお、削除にはデリートキーを使う。最後にタブキーでAcceptにカーソルを合わせてリターンキーを押す

 次に、とりあえず、telnetでログインできるようにする。これには、/etc/inetd.confの中にあるtelnetの行の先頭にある“#”を取る。編集にはいくつかのエディタを使うが、Linuxが初めての人はviに慣れておいたほうがいいかも。というのは、Unix系では設定ファイルのほとんどがテキストファイルなので、エディタの操作がどうしても必要になるからである。もっとも、X Window SystemにあるGUIベースのエディタでもかまわないが……。

 /etc/inetd.confの中に

#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

という行があるので、この先頭にある#記号を削除しておく。viなら、

vi /etc/inetd.conf
jキーでカーソルを下へ(上はk、左はh、右はl)
xキーで#を削除
ZZでvi終了

とする。このあと、inetdに設定ファイルをよみこませるのだが、

/etc/rc.d/init.d/inet restart

とする。

 これでPC側からtelnetでログインできるようになるはずである。その前に自分用のアカウントを作っておこう。自分のユーザー名を決め(ここでは仮にsinjiとしておく)以下のコマンドを実行する。

adduser sinji

その後、パスワードを指定する。これはrootのまま

passwd sinji

としてパスワードを入力する。確認のために同じものをもう1回入れるように要求されるので注意。

 これでネットワークからログインする準備ができた。Windowsなどからtelnetプログラムを利用してログインする。Windowsに標準で付属しているtelnetが使えるが、本格的なtelnetソフトであるTera Term Pro( http://hp.vector.co.jp/authors/VA002416/ )を使ったほうがよいだろう。ps2linuxマシンのIPアドレスを指定して接続してみよう。とりあえず、ログインプロンプトが出たら成功である。ここで先ほど作ったユーザー名とパスワードを入れてログインしよう(ネットワーク経由ではrootで直接ログインできないようになっている)。

 さて、PS2Linuxには、グラフィックに対応したWWWブラウザがない。Netscapeが公開したソースから作られたMozilla( http://www.mozilla.gr.jp/ )をコンパイルしてみたが、延々と待って、結局できたものはモジュール読み込みの途中で止まってしまった。メモリが足りないのかもしれない。そこで、グラフィック表示はできないテキスト表示専用のブラウザで代用する。たとえば、w3mは、

w3m url

として起動する(urlには見たいページのURLを記述すること)。カーソルキーでリンクにブロックカーソルを合わせてリターンキーを押すとリンク先を表示する。終了させたいときには「Q」である。なお大文字「H」でヘルプが出る(ここから復帰は「B」)。また、X Window System上で動かした場合には、画像へのリンク(緑で表示される)の上にカーソルを合わせて「I」で、別ウィンドウに画像を表示できる。これで大体は使えると思う。

w3mを起動し、画像部分(緑色で表示される部分)にカーソルを合わせ、「I」キーを押すと、画像が別ウィンドウで表示される リンクの上でリターンキーを押すと、リンク先の画像が表示される

 今回はとりあえずここまで、これでデモを使う準備が整った。あっ、あと、PS2Linuxを終わらせたい場合には、

shutdown -h now

とする。電源ボタンでプチッと切ることができるが、こうするとハードディスクなどを壊してしまうことがある。動作中に電源が切れてしまうのはPS2のハードウェアの仕様なのでしょうがない。


■PS2らしいデモを動かそう

 Linuxは初めてという方もいるので、ここで、グラフィックを使ったデモプログラム「blow」のコンパイルについて簡単に解説しておこう。

 デモプログラムは、ソースコードの形で提供されているので、これを実行するにはコンパイルを行なう必要がある。そのためには、コンパイラなどの開発環境がインストールされている必要がある。最も簡単には、インストール時にパッケージすべてをインストールしておくと開発環境がひとそろいはいることになる。

 また、PS2Linuxでは、現状、X-Window System上からGSの描画機能などを使うことができないので、グラフィック画面は、PS2のコンソール画面(つまり、PS2に直接つながっているディスプレイ)に表示されるので、操作は、ネットワーク経由で行なうほうがよい(特にmesaのデモ)。このためには、ほかのマシンからtelnetなどで入れるようにしておく。また、以後の作業は、コンソールからログインして行なう。ネットワーク経由でログインする場合には、コンソールのほうでも同じユーザーでログインしておくか、ネットワーク側でroot(管理者用のユーザーID。インストール時にパスワードを設定しているはず)として作業する(ネットワーク経由では直接rootでログインできないので、一回ほかのユーザーでログインしてからsuコマンドでrootになって実行する)コンソール画面を自分で制御できる状態にしておかないと実行できないので注意すること。

 ソースコードは、PS2LinuxKitのDVD DISCの中にあるため、DISCをマウント

mount /mnt/cdrom

してから、

rpm -ivh /mnt/cdrom/scei/rpms/libps2_1.rpm
rpm -ivh /mnt/cdrom/scei/rpms/libps2_2.rpm

とすると、( /usr/doc/PlayStation2/libps2dev/sample/vu1/blow )にインストールされる。Linuxではファイル、ディレクトリで大文字、小文字を区別するので注意。

cd /usr/doc/PlayStation2/libps2dev/sample/vu1/blow

として、ここでmakeコマンドを使ってプログラムのコンパイルを行なう。これは

make

とすれば良い。画面に一杯メッセージが表示されるが、あまり心配せずにしばらく待つ。すると実行が終了する。終了したら、

./blow

としてみよう。画面に火花(ドラゴンか?)が吹き出すグラフィックが表示されるはずである。なお、この状態でコントローラーの方向キーを押すことでグラフィックを回転させることがてきる。

 このblowにはいくつかのオプションがある。ただし、意外に組合せが難しい。まず、火花ではなく、ガスを出すなら、

./blow -gas

とする。解像度を上げることもできるが、色数などを落とす必要がある。

./blow -800x600 -16 -z0
./blow -1,024x768 -16 -z0

とすれば、800×600ドット、1,024×768ドットでの表示が可能となる。なお、このときには、-gasオプションは指定可能なものの、表示が正しく行なわれない。なお、プログラムは、Control+Cを打鍵することで停止できる。

花火のようなblowデモ。コントローラーを使って画面を回転させることができる 火花ではなく、煙を出すデモ。こちらのほうが負荷が重いらしく、回転させると少し引っかかることがある
MPEG-1ムービー
(25秒、約3MB)
MPEG-1ムービー
(13秒、約2MB)

 さて、これでとりあえずPS2らしいデモを動かすことができた。次回は、sambaを使ったPCとのファイル共有とmesaのデモの動作について解説したい。

□PS2 Linux オフィシャルホームページ
http://www.ps2linux.com/
□関連記事
【6月22日】塩田紳二のPS2 Linuxレポート
~とりあえず動かしました編~
http://pc.watch.impress.co.jp/docs/article/20010622/ps2linux.htm
【6月20日】「PS2 Linux Kit」ハードウェアレポート
http://pc.watch.impress.co.jp/docs/article/20010620/ps2.htm

(2001月7月25日)

[Reported by 塩田紳二]


【PC Watchホームページ】


ウォッチ編集部内PC Watch担当 pc-watch-info@impress.co.jp

Copyright (c) 2001 impress corporation All rights reserved.