PS3 Linux」カテゴリーアーカイブ

PS3 Linux 続 v1.60 ファームウエアでCD起動

PS3 Linux きた!v1.60ファームで起動改良!」の続きです。
Playstation3 の内蔵 HDD にパーティションを切らなくても
Linux の Live CD が起動することを確認できました。
(試したのは Debian LiveCD 20070114 版です)

以前「PS3 Linux のちょっと残念な点」で書いた問題点が、
これでひとつ解決したことになります。

これまでより簡単に Linux の LiveCD を試せるようになりました。

初めて起動するまでの手順はこんな感じになります。
(内蔵HDDのバックアップ、フォーマット、リストアが不要になりました)

(1) 他のシステムインストーラ(otheros.bld)を準備する
 ・ダウンロード元

(2) 「設定」→「本体設定」→「他のシステムのインストール」から otheros.bld をインストールする
 ・参考ページ「PS3 に Linux を入れるまでの手順」
 ここでインストールされる otheros.bld は kboot と呼ばれるブートローダーで
 PS3 本体のフラッシュメモリに書き込まれます。

(3) PS3 用の Linux の Live CD を手に入れる/焼いておく
 ・参考ページ「PS3 Linux Debianの Live CD が来た!」
 LiveCD は Debian 以外にもあります。cellfan PS3 Linux

(4) LiveCD を挿入する
 USB キーボードとマウスも忘れずに PS3 につないでおきます。(重要)

(5) 「設定」→「本体設定」→「優先起動システム」から「他のシステム」を選択する
 「今すぐ他のシステムを起動しますか?」ときかれるので「はい」

これで再起動後に kboot が立ち上がり、その後 LiveCD が起動します。
画面モードがデフォルト (480i/480pなど) になるので注意です。
起動のコツは「画面が止まったかな?」と思ってもしばらく待つことです。

●注意事項

優先起動システムを切り替えたので、次回からは電源を入れても必ず kboot (Linux)
が起動します。

GAME-OS に戻る方法

・kboot: や起動した LiveCD の コンソールから「 boot-game-os 」を実行する。
 エラーが出るときはフルパスで「 /sbin/boot-game-os 」

・それでもだめなら、電源ボタンの長押しで PS3 の電源を入れると強制的に GAME-OS
 で立ち上がります。

PS3 Linux きた!v1.60ファームで起動改良!

Playstation3 の新しいファーム v1.60 が 2007/03/22 に公開されました。
どうやら他のシステム周りの起動方法が変更されているようです。
もしかしたら、内蔵HDDに他のシステム用のパーティションを切らなくても、
DVD から Linux 起動ができるかもしれません!!

とりあえず次の実験をしました。

(1) すでに Linux を install してあった PS3 を v1.60 にファームアップ。

(2) v1.60 で内蔵 HDD を再フォーマットし、全部を PS3 に割り当てる。
 これで内蔵 HDD の Linux は消えた。

(3) 本体設定から「優先起動システム」や「他のシステムインストール」を選択
 できることを確認。

(4) 優先起動システムを他のシステムに切り替えて、内蔵 HDD に Linux 用
 パーティションがまったくなくても kboot が起動することを確認した。

v1.5 までは、内蔵HDDにパーティションがないとこれらの選択ができませんでした。

ただし、購入直後でまだ他のシステムインストーラを実行していない状態だと
上記のメニュー選択ができるかどうかはまだわかりません。
これで「他のシステムインストール」が選択できたら完璧です。
ユーザーが作った Linux の DVD 等を比較的簡単に起動できるようになったはずです。

● v1.60 のわかっている改良点のまとめ

・本体内蔵HDDに、他のシステム用パーティションを切らなくても、他のシステム
 インストールや起動システムの変更が可能になった。

   これで DVD から boot するだけの Linux を導入するための敷居が
   大幅に下がったはずです。

   考えられるメリットは
    ・DVD 起動する Linux を簡単に試せる。
    ・ユーザーが作った PS3 (Linux) 用ゲームなどを配布しやすくなる。
    ・この blog で解説してきたように外付け HDD から Linux を起動して
     使うならば、内蔵 HDD は全部 GAME 用にできる。

・優先起動システムを「他のシステム」に切り替えると、その場で他のシステム
 を起動できるようになった。
   以前は GAME-OS → Linxu の切り替えでは、いったん電源を切ってから
   また入れなおす必要がありました。
   これでいちいち電源を切る手間が省けます。
   ますます Linux の Live CD などを試しやすくなります。

またわかったことがあったら書き込んでいきます。

PS3 Linux ファームアップ 1.50

Playstation3 用に新しいファームウエア v1.50 が出ました。
前回が v1.32 だったので、結構大幅なバージョンアップでしょうか。
http://www.jp.playstation.com/ps3/update/

他のシステムの起動周りで何か変わってないか HDD をフォーマットして確認して
みました。残念ながら「PS3 Linux のちょっと残念な点」 で書いた点については
特に何も変わっていませんでした。

HDD分割も相変わらず 10GB のままで、
パーティションを切らないと他のシステムのインストールも優先起動システムの選択も
できませんでした。
次回の更新に期待です。

PS3 PPU は速いのか

PS3 の CPU である Cell は 3.2GHz で動いています。
Cell は複数の CPU core の集合体であり、中には PPU ×1 と SPU × 8個の
合計 9個の CPU core が含まれています。
ただし PS3 版 Cell では SPU の個数は 7個に減っており、合計 8 core です。

Cell が圧倒的なパワーを持つといわれているのはこの 8個 (7個) の SPU を持って
いるからです。SPU だけで 8個 (7個) の異なるプログラムを同時に走らせることが
できて、特に大量の浮動少数演算でその威力を発揮します。

これらの複数の SPU を統合整理するのが PPU の本来の用途だといわれています。

PPU 自体は 64bit の Power アーキテクチャで、PowerPC と完全に命令セットの
互換性があります。Linux を比較的容易に走らせられるのもこのためで、
PowerPC 用の一般のバイナリパッケージをインストールすることが可能です。

PowerPC G5 (970) が最大でも 2~2.5GHz 前後だったことを考えると、3.2GHz で
動作する Cell は PPU だけでもかなり高速な印象を与えます。でも実際はそれほど
でもありません。

もともと PowerPC は比較的効率の良い動作をする CPU でした。ヒット率の高い分岐
予測やアウトオブオーダー実行、レジスタのリネーミングなど、パイプラインの
無駄を高度なアルゴリズムで実行時に回避します。またそのような方向で進化して
きました。割と一定した速度の出る、どんなプログラムでも速度が落ちにくい CPU
アーキテクチャだという印象があります。

逆にそれが複雑な設計を招いているのか、比較的高クロック化の妨げになっていた
と考えられます。

Cell や Xbox360 の CPU で使われているこの新しい CPU Core は、これまでの
PowerPC の路線とは完全に逆向きの設計が行われているようです。

つまり、高クロック化の妨げとなるような複雑な設計はやめて、シンプルかつ小さな
core にすること。その代わり速度を高クロック化とマルチコア化で稼ぐというもの
です。

もちろんアウトオブオーダー実行できないと、パイプラインは依存が発生する
たびにスカスカになることが考えられます。これを回避するための方策として用い
られているのがマルチスレッド化です。PPU 1つでも、依存関係の無い 2つのスレッド
コンテキストを持つことで、パイプラインの無駄を回避しようというわけです。

Pentium4 の HyperThread と似たようなものといえるかもしれません。だけど HT
よりもスレッドへの依存はより積極的だと考えられます。

まとめるとこんな感じになります。

・高クロック化の妨げになる複雑な高度な回路は無くする
  → シンプルになるので高クロック化しやすい
  → 複雑な回路が減って面積が小さくなる
  → CPU の動作効率が落ちる

・落ちた動作効率をカバーするために次の新たな技術を導入する
  → 高クロック化
  → マルチコア化
  → マルチスレッド化

動作効率の低下は、CPU を複数積んで、クロックをあげることで回避せよと。
またパイプラインや演算ユニットの無駄はスレッドで回避しろと、ある意味力技に
見えます。

これらの仕様を考慮すると、CPU の癖というか性格としては、次のような傾向になる
ことが予想できます。

  ピーク性能は高いがかなりピーキーであり、性能を安定して引き出す
  のは難しい。

・コンパイラ依存率が非常に高くなる
  → 実行時の命令順最適化が行われないので、あらかじめコンパイル時に厳密に
   最適化しておく必要がある。そうでないと性能が出ない。

・スレッドを2本走らせないと100%性能を発揮できない
  → 別スレッドでパイプラインを埋めることが前提の設計なので、スレッド1本
   では無駄が発生している。

つまり同じ Power アーキテクチャといえども、これまでの PowerPC とは全く正反対
の性格付けになっているわけです。

ちなみに Xbox360 の CPU は、SPU が無い代わりに Cell でいう PPU 相当が 3つ
入っています。2次キャッシュの容量とベクトル専用命令の追加に違いがありますが、
CPU core そのものの特徴や傾向は全く同じだと考えられます。

Xbox360 の CPU も、100% の性能に近づけるためにはそれぞれの core で 2スレッド、
合計 6スレッド分のプログラムが必要だということです。

PS3 Linux で PPU が 2個の CPU に見えるのは、このように HT のような2本の
スレッドが走るためです。

PS3 Linux で実際に使ってみて結構動作が遅く感じるのは、もちろん Cell のうち
ごく一部しか活用されていないこともありますが、従来の PowerPC 用コンパイラ&
バイナリでは相性が悪いというのも若干影響しているかもしれません。

PS3 をネットラジオプレイヤーに

Linux を使って Playstation3 をネットラジオプレイヤーにしてみました。
ゲームをしていないときの PS3 活用方法として意外に便利かもしれません。

PS3 に Fedora Core 5 を full install するとさまざまなアプリケーションが
入りますが、そのままでは mp3 の再生ができないようです。
ネットで調べると、この辺いろいろと設定したりソフトウエアやプラグインを
インストールしたりと少々手順が必要です。
ところが同じ Linux でも、FC5 ではなく Debian の方を使うと
特に何もしなくても再生することができました。

もっとも、PS3 の場合音楽再生だけなら GAME-OS (XMB) でもできるので、
ここではネットラジオを再生してみます。

以下 PS3 上の Debian (Etch) の設定です。

● サウンドを有効にする

Debian では最初 PS3 用のサウンドドライバが読み込まれていないため、
「modprobe snd_ps3pf」を実行する必要があります。

この読み込みを自動で行うために、/etc/modules に snd_ps3pf という行を追加
します。テキストエディタで編集してください。追加後下記のようになりました。

——————–

gelic_net
loop
ps3pf_storage
snd_ps3pf

——————–

設定したら一度再起動しておきます。

●データの再生

これで一般的な音楽データは再生できるようになります。
例えば mp3 ファイルの再生も OK です。
ただし標準で立ち上がる「動画プレイヤー」(totem)だとかなりノイズが乗るので
Rhythmbox の方をお勧めします。

●インターネットラジオの再生

Rhythmbox の演奏メニューから「新しいインターネット・ラジオ局」を開きます。
ここに再生用の URL を入力すれば OK です。
入力した URL がラジオ局一覧に入るので、ダブルクリックで再生できます。
URL は .pl や .m3u 等のファイルをエディタで開くと確認できます。

もしくはブラウザでネットラジオのページの再生ボタンを押して、
アプリケーションで開く先を Rhythmbox にします( /usr/bin/rhythmbox )。
これで簡単にラジオ局一覧に取り込めるようになります。
SHOUTcast の再生もできました。

標準のブラウザだと開く先のアプリケーションをその場で指定できないので
「動画プレイヤー」(totem) が起動してしまいます。
先に Firefox を入れておいた方がよいでしょう。
ターミナルから下記のように実行して追加できます。

 $ su
 # apt-get update
 # apt-get install firefox
 # exit
 $ firefox

●他のプレイヤーの追加

Rhythmbox ではなく他のプレイヤーを使うこともできます。
この場合ブラウザでクリックしてプレイヤー選択するだけで再生できます。
例えば xmms を追加するなら Firefox と同じように

 # apt-get update
 # apt-get install xmms

と実行します。これでインストール完了です。メニューから呼び出せます。

Debian の場合 Live CD を簡単に作れるので、CD から起動できるネットラジオプレイヤー
なんてできそうですね。