月別アーカイブ: 2007年1月

PS3 Linux にどっぷり浸かってみて

非常に楽しめています。
個人的にここまで楽しめたゲーム機ハードは初めてです。
発売直後にもかかわらず間違いなく稼働率は一番です。

たいてい新ハード発売長後はソフトも少なくあんまりやることが無かったりします。
せめてプログラムを書いて動かせられればもっといろいろ触れるのにな、、と思いつつ
タイトルが徐々に充実してくるのは半年から1年後くらいでしょうか。
それが PS3 はできることがあまりに多くて試したいことも多くて、
全く暇が無い状態です。

Linux を動かすだけなら普通の PC でもいいんですが、
扱うときの ゲーム機だからという安心感 が結構大きいのかなと思います。
何度もインストールしなおしてみたり、設定を深いところまでいじってみたり、
起動しなくなってリセットしたり、全く反応が無くなって電源切ったり。

そういう少々手荒な使い方をしても、GAME-OS だけは問題なく起動するしゲームは
きちんと動いてくれます。ゲーム機というか家電に近いこれらの動作は、かなり
安心できる印象を与えてくれます。
PCだと、問題が起こって動かなくなって強制的に電源切ったりすると
なんとなく心が痛むんです。

価格も実験用のPCとしてみたら割と手ごろで、数年もしたら値段も下がって安価に
買えるようになると思えば気も楽です。

おかげでさんざん使い倒して非常に勉強になっています。
今までも UNIX 系 OS は使った経験がありますが、
ハード自体がものすごく高価だったり、開発機やサーバーで動かなくなると
困る状態だったりして、なかなかいじり倒す機会はありませんでした。

さまざまなディストリビューションを入れてみたり、設定を変えて問題が出て原因を
調べたり、起動時の挙動やインストール手段を追うことができたり、カーネルの
コードを調べたり、コードを書いてみたりと興味は尽きません。

また PCとして見れば比較的小さいので、場所もとらずに済むのもありがたいです。
HDD に LAN に USB にディスプレイ出力と最低限必要なものはそろってますし。

ゲーム機なので、数年もしたらきっと値下げして安くなるとは思います。
だけどその頃はおそらく一般的な PC のスペックもあがっており、どうしても
性能の格差は肥大しているでしょう。そう考えれば、使ってある程度満足できるのは
発売直後、早ければ早い方が良いことになります。おそらく今が旬です。

しばらく経って、使っていってもう性能的に厳しいかなと思ったら、
あとはゲーム専用機や BDプレイヤーとしての本来の道が残っています。
その頃はきっとこれらのタイトルもかなりそろっているのではないでしょうか。
PC だったら現役引退後の使い道はサーバーくらいしかないわけで。

ただし値段的にも PC 用途としての過度な期待は禁物です。ご注意を。

・Linux を使ってみたい、Linux を使うことそのものが目的。
 いろいろ調べたり問題解決したり、設定を覚えたり、とにかく使えるようになる
 ことが楽しい人。使えるまでの手間を楽しむ人。

・Cell をいじってみたい。SPE で動作するプログラムを書いてみたい人。
 大量の数値演算や並列プログラミングの実験用として使いたい人。
 PC 向けに 8個位のマルチコア CPU が出回るまでは良い題材かも。

こんな方にはお勧めです。

PS3 Linux の現在の設定メモ

●PS3 60GB
 内蔵HDD
  ・47GB GAME-OS
  ・10GB 他のシステム (Fedora Core 5)
 USB外付けHDD
  ・60GB Debian
  ・60GB YDL

●PS3 20GB
 内蔵HDD
  ・10GB GAME-OS
  ・6.6GB 他のシステム (未使用、空)
 USB外付けHDD
  ・30GB Fedora Core 5

●60GB 側の設定メモ

・ボリュームラベル
 内蔵 HDD
  /dev/sda1 LABEL=/  (FC5の/)
  /dev/sda2 LABEL=SWAP
 USB外付けHDD
  /dev/sdf1 LABEL=/4  (Debianの/)
  /dev/sdf2 LABEL=SWAP2
  /dev/sdf3 LABEL=/1  (YDLの/)

・ブートローダー (kboot / otheros.bld)
 ADDON CD 20061208 版 (FC5版) の otheros.bld をベースに起動時の画面モードを
 720p にしたもの。(PS3 Linux カスタム kboot を作る)
 LABEL=/ のパーティションの kboot.conf だけ読み込むタイプ。

・kboot.conf
 /dev/sda1 (LABEL=/) の /etc に置く。

#default=fc5720pf
default=debian720pf
timeout=40
root=LABEL=/

# FC5 (sda1) LABEL=/
fc5=’/dev/sda1:/boot/vmlinux-2.6.16-net2 initrd=/dev/sda1:/boot/initrd-2.6.16-net2.img root=LABEL=/’
fc5480i=”$fc5 video=ps3fb:mode:1″
fc5480if=”$fc5 video=ps3fb:mode:129″
fc5720p=”$fc5 video=ps3fb:mode:3″
fc5720pf=”$fc5 video=ps3fb:mode:131″
fc51080i=”$fc5 video=ps3fb:mode:4″
fc51080p=”$fc5 video=ps3fb:mode:5″
fc51080pf=”$fc5 video=ps3fb:mode:133″

# Debian (sdf1) LABEL=/4
debian=’/dev/sdf1:/boot/vmlinux initrd=/dev/sdf1:/boot/initrd.img root=LABEL=/4′
debian480i=”$debian video=ps3fb:mode:1″
debian480if=”$debian video=ps3fb:mode:129″
debian720p=”$debian video=ps3fb:mode:3″
debian720pf=”$debian video=ps3fb:mode:131″
debian1080i=”$debian video=ps3fb:mode:4″
debian1080p=”$debian video=ps3fb:mode:5″
debian1080pf=”$debian video=ps3fb:mode:133″

# YDL (sdf3) LABEL=/1
ydl=’/dev/sdf3:/boot/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=LABEL=/1 init=/sbin/init ‘
ydl480i=”$ydl video=ps3fb:mode:1 rhgb”
ydl480if=”$ydl video=ps3fb:mode:129 rhgb”
ydl720p=”$ydl video=ps3fb:mode:3 rhgb”
ydl720pf=”$ydl video=ps3fb:mode:131 rhgb”
ydl1080i=”$ydl video=ps3fb:mode:4 rhgb”
ydl1080p=”$ydl video=ps3fb:mode:5 rhgb”
ydl1080pf=”$ydl video=ps3fb:mode:133 rhgb”
ydltext=”$ydl 3″

GeForce8800 Vista 用ドライバ 100.30

ついに来た!(のかな?)
 Direct3D 10 に必要な Windows Vista が RTM し
 Direct3D 10 対応ハード GeForce8800 が発売され
 Direct3D 10 SDK も RTM したのに、
Vista 用の GeForce8000 のドライバが無くてずっと待たされ続けてました。
D3D10 どころかドライバが無いためで Vista そのものがまともに使えません。
せっかく買ったカードもずっと箱の中でした。
これでやっと D3D10 のプログラムが書けるようになります。

Forceware 100.30 (Beta)

入れてみました。
一応 Vista に install して、DirectX SDK の D3D10 用サンプルが動くことは
確認できました。ドライバが Beta だからと思いますが、D3D10 専用サンプルは
少々予想外に重い印象。まだ動作が不安定なものもありました。

GeForce8800 のデモも Vista 上で動きました。こちらはきちんと動きますね。

・Adrianne
 http://www.nzone.com/object/nzone_adrianne_home.html

・Froggy
 http://www.nzone.com/object/nzone_froggy_home.html

・Box of Smoke
 http://www.nzone.com/object/nzone_boxofsmoke_home.html

PS3 Linux カーネルのコンパイル

PS3 の Debian 版インストーラでインストールされるカーネルの config を見ると
いろいろ手が入っていて、ADDON CD (FC5) のバイナリよりもさまざまなオプション
が有効になっているようです。
試しに手持ちの USB 器機、 corega FEther USB-TX をつないでみたら
あっさり認識してしまいました。
USB1.1 用の LANアダプタ なので今ではあんまり使い道が無いのですが。
USB 無線LAN とか他のアダプタはドライバ無くてだめでした。

Fedora Core 5 でもこのアダプタが使えるようにカーネルをコンパイルしてみました。

ADDON CD 20061208 の \src からカーネルソースを適当なフォルダに持ってきます。
   linux-20061208.tar.bz2

展開します

 $ tar -jxvf linux-20061208.tar.bz2

とりあえず標準の config でコンパイルしてみます。
手順は ADDON CD の LinuxKernelOverview.html に書かれているとおりです。

 $ cd linux-20061208
 $ make ps3pf_defconfig
 $ make

ここで指定した make ps3pf_defconfig は、arch/powerpc/config/ps3pf_defconfig
を参照しているようです。
コンパイルがうまくいったので、今度は Debian のカーネル config でコンパイル
してみます。

Debian を install したドライブの /boot/config-2.6.16-ps3pf をコピーしてきます。
/mnt/usbhdd にマウントしてあると仮定してこんな感じ。

 $ cp /mnt/usbhdd/boot/config-2.6.16-1-ps3pf ./.config

module install 時に既存のシステムを上書きしないようにバージョン番号を変えて
おきます。

 $ make menuconfig

  General setup
    → Local version – append to kernel release

  ここに文字列を追加します。”-net2″ にしてみました。
  必要ならここで他の設定も変更します。

 $ make clean
 $ make

念のために、既存の module やカーネルをバックアップしておきます。
(命名を間違えて上書きしてしまわないように)

 # cd /boot
 # cp vmlinux-2.6.16 vmlinux-2.6.16.org
 # cp initrd.img initrd.img.org
 # cp config-2.6.16 config-2.6.16.org
 # cp System.map-2.6.16 System.map-2.6.16.org

 # cd /lib/modules
 # cp -r 2.6.16 2.6.16.org

元のカーネルのソースフォルダに戻って module を install します。

 # make modules_install

これで /lib/modules/2.6.16-net2 というフォルダに新しいモジュールファイルが
格納されます。

新しいカーネルを /boot にコピーします。

 # cp vmlinux /boot/vmlinux-2.6.16-net2
 # cp .config /boot/config-2.6.16-net2
 # cp System.map /boot/System.map-2.6.16-net2

新しいカーネル用の initrd.img を作ります。

 # cd /boot
 # /sbin/mkinitrd –with-usb initrd.img-2.6.16-net2 2.6.16-net2

ここで注意点。USB の外付け HDD から起動している場合上記の –with-usb が
必要です。

またこのままだと、生成される initrd.img の中の init ファイルに例の 15秒待ち
が無いので、以前苦労したように認識が遅いドライブだと起動しなくなってしまいます。
毎回生成された init を書き換えるのも大変なので、mkinitrd 自体を書き換えて
しまいました。

バックアップ

 # cd /sbin
 # mv mkinitrd mkinitrd.org
 # cp mkinitrd.org mkinitrd

書き換え

 # vi mkinitrd

「emit “mkblkdevs” 」という行が2つのあるので、2つ目の直前に「emit “sleep 15″」
を追加してしまいます。

 :
emit “sleep 15”
emit “mkblkdevs”
 :

これでもう一度 initrd.img を作ります。

 # cd /boot
 # rm initrd.img-2.6.16-net2
 # /sbin/mkinitrd –with-usb initrd.img-2.6.16-net2 2.6.16-net2

あとは kboot.conf でこれらの新しいカーネルを指定して起動するオプションを
加えるだけです。

 # vi /etc/kboot.conf

default=linux
timeout=30
root=LABEL=/

linux=’/boot/vmlinux-2.6.16 initrd=/boot/initrd.img ‘
net2=’/boot/vmlinux-2.6.16-net2 initrd=/boot/initrd.img-2.6.16-net2 ‘

net2= の行を追加しました。この場合、起動時の kboot: 画面で net2 と入力すると
新しいカーネルで起動します。
実際に reboot して net2 で起動してみます。

設定ミスがあると起動しなくなってしまうので注意してください。

うまく起動したら FEther USB-TX をつないでみます。
ウィンドウを起動して、
 「管理」→「ネットワーク」→「ハードウエア」のタブで eth1 が追加されており
 ハードウエア名の確認ができます。
デバイスのタブで「新規」ボタンを押して、eth1 を追加していくとネットに接続
できました。ルータにでもしましょうか。

Playstation3 動作確認製品

こんなページを発見しました
BUFFALO PLAYSTATION3 動作確認サプライ関連製品一覧

ストレージのカテゴリではきちんと本体 HDD の「バックアップ/リストア」の
動作確認が行われています。

以前こちらの「PS3 の HDD バックアップ方法の実験」で
大容量 HDD へのバックアップ実験を行いました。
よく調べてみると、市販されている HDD は大容量のものでも最初から FAT32 で
フォーマットされているようです。~32G まで、というのは全く心配ないみたいですね。

他にも
Logitec PLAYSTATION3 接続確認情報
ELECOM PLAYSTATION3動作確認一覧
HORI PLAYSTATION3対応についてのご案内