2007/01/27
PS3 Linux ファームアップ 1.50
Playstation3 用に新しいファームウエア v1.50 が出ました。
前回が v1.32 だったので、結構大幅なバージョンアップでしょうか。
http://www.jp.playstation.com/ps3/update/
他のシステムの起動周りで何か変わってないか HDD をフォーマットして確認して
みました。残念ながら「PS3 Linux のちょっと残念な点」 で書いた点については
特に何も変わっていませんでした。
HDD分割も相変わらず 10GB のままで、
パーティションを切らないと他のシステムのインストールも優先起動システムの選択も
できませんでした。
次回の更新に期待です。
前回が v1.32 だったので、結構大幅なバージョンアップでしょうか。
http://www.jp.playstation.com/ps3/update/
他のシステムの起動周りで何か変わってないか HDD をフォーマットして確認して
みました。残念ながら「PS3 Linux のちょっと残念な点」 で書いた点については
特に何も変わっていませんでした。
HDD分割も相変わらず 10GB のままで、
パーティションを切らないと他のシステムのインストールも優先起動システムの選択も
できませんでした。
次回の更新に期待です。
2007/01/22
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 用コンパイラ&
バイナリでは相性が悪いというのも若干影響しているかもしれません。
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 用コンパイラ&
バイナリでは相性が悪いというのも若干影響しているかもしれません。
2007/01/22
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 から起動できるネットラジオプレイヤー
なんてできそうですね。
ゲームをしていないときの 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 から起動できるネットラジオプレイヤー
なんてできそうですね。
2007/01/21
PS3 Linux のお勧めディストリビューション
Playstation3 に Linux を入れる場合さまざまなディストリビューションがあります。
PS3 上で特に開発はしないけど、クライアントとして Linux を使ってみたい。
そういう用途には今のところ Debian がお勧めです。
デスクトップ上で、アプリケーションの起動や動作が一番軽くて比較的軽快に
動作します。PS3 で FC5 で何か重いなあと思っていた方は試してもいいかもしれません。
DistributionsGeneralFAQs
●Debian
・ほげめも Debian Live for PS3
・ほげめも Debian-Installer for PLAYSTATION 3
・PS3 やっぱり Debian 再インストールメモ
良い点
・軽い
・本来のインストーラを使ってインストールできる。
・インストーラはTV画面でも問題無く実行できる。
・インストーラは日本語で説明が表示される。
・Live CD で試すことができる。
・パッケージが豊富なので、いろいろインストールしてかなり楽しめる。
悪い点
・インストーラを使ったインストール直後は Window が正常に表示されないので、
最初に xorg.conf を書き換える必要がある。
・インストール時にネットワーク接続が必要。
・Cell SDK 系が動作しない。(ライブラリバージョンが異なるため)
Cell を使った開発を行う場合は今のところ YDL か FC の2択でしょうか。
●Fedora Core 5
・Fixstars PS3 Linuxのインストール
良い点
・PS3 で動くように構成されているので専用のコマンドも最初から入る。
・すぐに X(ウィンドウ) も起動できる。
・ネットワークが無くても DVD から install できる。
・Full install ではほぼ全部パッケージが入るので、後からインストールしなくてもさまざまなアプリケーションを使うことができる。
・Cell SDK 等の開発環境がそのまま入る。
悪い点
・ウィンドウはかなり重い。
・特殊なインストーラを使うので少々不親切。
・インストール時に Full か Minimum の選択しかできない。
・Full だと 9GB 必要。
YDL はあまり使い込んでいないので詳しく書けないのですが、FC5 よりは軽いです。
特にこだわりが無くて Cell SDK 中心で使う場合は YDL は良い選択だと思います。
●Yellow Dog Linux 5.0
・Terra Soft Yellow Dog Linux v5.0
・Terra Soft Yellow Dog Linux v5.0 (日本語版 Amulet)
・Fixstars Yellow Dog Linux for PS3
・軽い
・PS3 専用なので安心。インストール後すぐ使えるし専用コマンドも入っている。
・市販パッケージにサポートあり。日本語版もある。
・インストーラは GUI でわかりやすいけど HD 対応モニタが必要。
・独特なデスクトップ環境。
・Cell SDK 等そのまま使える。
ちなみに Ubuntu は FC5 のカーネルをそのまま流用したためかどうかわかりませ
んが、挙動時の体感的な速度は FC5 とほぼ同じ印象でした。
カーネルの config と、使用されているライブラリやパッケージのバージョンによる
使用するメモリの消費量などが重さの差につながっているのでしょうか。
この辺は未検証で申し訳ないです。
PS3 上で特に開発はしないけど、クライアントとして Linux を使ってみたい。
そういう用途には今のところ Debian がお勧めです。
デスクトップ上で、アプリケーションの起動や動作が一番軽くて比較的軽快に
動作します。PS3 で FC5 で何か重いなあと思っていた方は試してもいいかもしれません。
DistributionsGeneralFAQs
●Debian
・ほげめも Debian Live for PS3
・ほげめも Debian-Installer for PLAYSTATION 3
・PS3 やっぱり Debian 再インストールメモ
良い点
・軽い
・本来のインストーラを使ってインストールできる。
・インストーラはTV画面でも問題無く実行できる。
・インストーラは日本語で説明が表示される。
・Live CD で試すことができる。
・パッケージが豊富なので、いろいろインストールしてかなり楽しめる。
悪い点
・インストーラを使ったインストール直後は Window が正常に表示されないので、
最初に xorg.conf を書き換える必要がある。
・インストール時にネットワーク接続が必要。
・Cell SDK 系が動作しない。(ライブラリバージョンが異なるため)
Cell を使った開発を行う場合は今のところ YDL か FC の2択でしょうか。
●Fedora Core 5
・Fixstars PS3 Linuxのインストール
良い点
・PS3 で動くように構成されているので専用のコマンドも最初から入る。
・すぐに X(ウィンドウ) も起動できる。
・ネットワークが無くても DVD から install できる。
・Full install ではほぼ全部パッケージが入るので、後からインストールしなくてもさまざまなアプリケーションを使うことができる。
・Cell SDK 等の開発環境がそのまま入る。
悪い点
・ウィンドウはかなり重い。
・特殊なインストーラを使うので少々不親切。
・インストール時に Full か Minimum の選択しかできない。
・Full だと 9GB 必要。
YDL はあまり使い込んでいないので詳しく書けないのですが、FC5 よりは軽いです。
特にこだわりが無くて Cell SDK 中心で使う場合は YDL は良い選択だと思います。
●Yellow Dog Linux 5.0
・Terra Soft Yellow Dog Linux v5.0
・Terra Soft Yellow Dog Linux v5.0 (日本語版 Amulet)
・Fixstars Yellow Dog Linux for PS3
・軽い
・PS3 専用なので安心。インストール後すぐ使えるし専用コマンドも入っている。
・市販パッケージにサポートあり。日本語版もある。
・インストーラは GUI でわかりやすいけど HD 対応モニタが必要。
・独特なデスクトップ環境。
・Cell SDK 等そのまま使える。
ちなみに Ubuntu は FC5 のカーネルをそのまま流用したためかどうかわかりませ
んが、挙動時の体感的な速度は FC5 とほぼ同じ印象でした。
カーネルの config と、使用されているライブラリやパッケージのバージョンによる
使用するメモリの消費量などが重さの差につながっているのでしょうか。
この辺は未検証で申し訳ないです。
2007/01/20
PS3 Linux、Ubuntu をinstallしてみた
こちらのページを参考にして、Playstation3 に Ubuntu をインストールしてみました。
http://www.louiscandell.com/ps3/
http://ubuntuforums.org/showthread.php?t=316047
とりあえず別の OS からでもインストール先 HDD にアクセスできる状態になって
いれば、基本的に debootstrap してカーネルをコピーするだけのようです。
●やることの整理
・すでに本体 HDD (/dev/sda) に FC5 が install 済みの状態を前提にしています。
・USB の外付け HDD に Ubuntu を install します。
●install するパーティションの作成と準備
今回は外付け HDD のうち2つめのパーティションに install します。
なので以下 /dev/sdf2 として説明しています。
1つ目のパーティションなら /dev/sdf1 になるし、20GB モデルなら /dev/sdc1 と
なります。
# fdisk /dev/sdf
fdisk でよく使うコマンド
・p 現在の状態の確認
・d パーティション削除
・n 新規パーティション追加
・t パーティションのタイプ設定、デフォルトだと Linux 用になる
・q 中断終了。設定を反映しないで fdisk 実行前の状態に戻ります。
・w 書き込み終了。設定変更を書き込んで終了します。元に戻りません。
これで /dev/sdf2 を確保しました。
ext3 でフォーマットします。
# /sbin/mkfs.ext3 /dev/sdf2
ボリュームラベルを /5 にしておきます。(本当は mkfs.ext3 -L で一緒に登録できる)
# /sbin/e2label /dev/sdf2 /5
swap は sda の既存のものを流用するので今回は作成しませんが、もし作成するなら
こんな感じです。
# /sbin/mkswap -L SWAP2 /dev/sdf?
●debootstrap コマンドの準備
ここは参考ページの手順そのままです。FC5 に debootstrap というコマンドを
インストールしています。
# cd /tmp
# wget http://louiscandell.com/ps3/debootstrap/debootstrap_0.3.3.0ubuntu7_all.deb
# ar -xf debootstrap_0.3.30ubuntu7_all.deb
# cd /
# zcat < /tmp/data.tar.gz | tar xv
●debootstrap コマンドの実行
install 先を mount します。
# mkdir /mnt/ubuntu
# mount /dev/sdf2 /mnt/ubuntu
debootstrap を実行します。
内部で呼び出すコマンドのために、先に PATH の追加が必要です。
# export PATH="$PATH:/sbin:/usr/sbin"
# debootstrap --arch powerpc edgy /mnt/ubuntu http://archive.ubuntulinux.org/ubuntu
しばらく待ちます。
●カーネルのコピー
FC5 のイメージをそのまま使います。
# cd /mnt/ubuntu/boot
# cp /boot/* .
# cd /mnt/ubuntu/lib
# cp -r /lib/modules .
●fstab の作成
これも FC5 の設定をそのまま流用します。
# cp /etc/fstab /mnt/ubuntu/etc/
# vi /mnt/ubuntu/etc/fstab
LABEL=/5 / ext3 defaults 1 1
/dev/devpts /dev/pts devpts gid=5,mode=620 0 0
/dev/shm /dev/shm tmpfs defaults 0 0
none /spu spufs defaults 0 0
/dev/proc /proc proc defaults 0 0
/dev/sys /sys sysfs defaults 0 0
LABEL=SWAP swap swap defaults 0 0
/dev/cdrom /mnt/cdrom auto noauto 0 0
1行目の「LABEL=/」を「LABEL=/5」に変更するだけです。FC5 用の swap 領域に
SWAP というラベルがついてるので swap はそのまま使います。
● hosts の作成
FC5 のものをコピーするだけです。
# cp /etc/hosts /mnt/ubuntu/etc/
● kboot.conf の作成
今までの sda1 の kboot.conf に追加します。
# vi /etc/kboot.conf
~省略、以下追加分だけ (PS3 Linux の現在の設定メモ)
# Ubuntu (sdf2) LABEL=/5
ubuntu='/dev/sdf2:/boot/vmlinux-2.6.16 initrd=/dev/sdf2:/boot/initrd.img root=LABEL=/5'
ubuntu480i="$ubuntu video=ps3fb:mode:1"
ubuntu480if="$ubuntu video=ps3fb:mode:129"
ubuntu720p="$ubuntu video=ps3fb:mode:3"
ubuntu720pf="$ubuntu video=ps3fb:mode:131"
ubuntu1080i="$ubuntu video=ps3fb:mode:4"
ubuntu1080p="$ubuntu video=ps3fb:mode:5"
ubuntu1080pf="$ubuntu video=ps3fb:mode:133"
これで起動時に kboot: で ubuntu と入力できるようになります。
●起動
再起動して kboot: のプロンプトが出たら ubuntu (または ubuntu720p 等) と
入力して起動してみます。(起動中になぜか console のフォントが変わる)
login: プロンプト と init メッセージが重なって起動失敗に見えることがあるので、
画面がとまったらとりあえず [Enter] 。
login: が出たら root で入ります。パスワードが無いので先に設定しておきます。
# passwd
dhclient でネットにつないで apt-get のテストです。
# ifconfig lo up
# dhclient
# apt-get update
うまくいったら後はパッケージを install したり環境設定などを行います。
●設定など
ssh を入れておきます。これで PC 経由で設定できるようになります。
# apt-get install openssh-server
desktop 環境の install。かなり時間がかかります。
# apt-get install ubuntu-desktop
なぜかエラー終了しました。それでも一応 xorg.conf を書き換えます。
# vi /etc/X11/xorg.conf
最初から Driver は fbdev だったので、変更は2箇所だけでした。
・Sction "Screen" に追加
DefaultFbBpp 32
・Section "Device" に追加
Driver "fbdev"
Option "ShadowFB" "false"
root だと gdm に怒られるので一般ユーザーを追加します。
(ここでは名前を wheel としています)
# adduser wheel
sudoers にも追加します。「wheel ALL=(ALL) ALL」を追加
# visudo
gdm を起動します。
# /etc/init.d/gdm start

ログインできました。設定ツールなど起動できずにおかしなところがあるので、
まだまだ設定が必要なようです。
やっと何とか動いた、といった程度です。
http://www.louiscandell.com/ps3/
http://ubuntuforums.org/showthread.php?t=316047
とりあえず別の OS からでもインストール先 HDD にアクセスできる状態になって
いれば、基本的に debootstrap してカーネルをコピーするだけのようです。
●やることの整理
・すでに本体 HDD (/dev/sda) に FC5 が install 済みの状態を前提にしています。
・USB の外付け HDD に Ubuntu を install します。
●install するパーティションの作成と準備
今回は外付け HDD のうち2つめのパーティションに install します。
なので以下 /dev/sdf2 として説明しています。
1つ目のパーティションなら /dev/sdf1 になるし、20GB モデルなら /dev/sdc1 と
なります。
# fdisk /dev/sdf
fdisk でよく使うコマンド
・p 現在の状態の確認
・d パーティション削除
・n 新規パーティション追加
・t パーティションのタイプ設定、デフォルトだと Linux 用になる
・q 中断終了。設定を反映しないで fdisk 実行前の状態に戻ります。
・w 書き込み終了。設定変更を書き込んで終了します。元に戻りません。
これで /dev/sdf2 を確保しました。
ext3 でフォーマットします。
# /sbin/mkfs.ext3 /dev/sdf2
ボリュームラベルを /5 にしておきます。(本当は mkfs.ext3 -L で一緒に登録できる)
# /sbin/e2label /dev/sdf2 /5
swap は sda の既存のものを流用するので今回は作成しませんが、もし作成するなら
こんな感じです。
# /sbin/mkswap -L SWAP2 /dev/sdf?
●debootstrap コマンドの準備
ここは参考ページの手順そのままです。FC5 に debootstrap というコマンドを
インストールしています。
# cd /tmp
# wget http://louiscandell.com/ps3/debootstrap/debootstrap_0.3.3.0ubuntu7_all.deb
# ar -xf debootstrap_0.3.30ubuntu7_all.deb
# cd /
# zcat < /tmp/data.tar.gz | tar xv
●debootstrap コマンドの実行
install 先を mount します。
# mkdir /mnt/ubuntu
# mount /dev/sdf2 /mnt/ubuntu
debootstrap を実行します。
内部で呼び出すコマンドのために、先に PATH の追加が必要です。
# export PATH="$PATH:/sbin:/usr/sbin"
# debootstrap --arch powerpc edgy /mnt/ubuntu http://archive.ubuntulinux.org/ubuntu
しばらく待ちます。
●カーネルのコピー
FC5 のイメージをそのまま使います。
# cd /mnt/ubuntu/boot
# cp /boot/* .
# cd /mnt/ubuntu/lib
# cp -r /lib/modules .
●fstab の作成
これも FC5 の設定をそのまま流用します。
# cp /etc/fstab /mnt/ubuntu/etc/
# vi /mnt/ubuntu/etc/fstab
LABEL=/5 / ext3 defaults 1 1
/dev/devpts /dev/pts devpts gid=5,mode=620 0 0
/dev/shm /dev/shm tmpfs defaults 0 0
none /spu spufs defaults 0 0
/dev/proc /proc proc defaults 0 0
/dev/sys /sys sysfs defaults 0 0
LABEL=SWAP swap swap defaults 0 0
/dev/cdrom /mnt/cdrom auto noauto 0 0
1行目の「LABEL=/」を「LABEL=/5」に変更するだけです。FC5 用の swap 領域に
SWAP というラベルがついてるので swap はそのまま使います。
● hosts の作成
FC5 のものをコピーするだけです。
# cp /etc/hosts /mnt/ubuntu/etc/
● kboot.conf の作成
今までの sda1 の kboot.conf に追加します。
# vi /etc/kboot.conf
~省略、以下追加分だけ (PS3 Linux の現在の設定メモ)
# Ubuntu (sdf2) LABEL=/5
ubuntu='/dev/sdf2:/boot/vmlinux-2.6.16 initrd=/dev/sdf2:/boot/initrd.img root=LABEL=/5'
ubuntu480i="$ubuntu video=ps3fb:mode:1"
ubuntu480if="$ubuntu video=ps3fb:mode:129"
ubuntu720p="$ubuntu video=ps3fb:mode:3"
ubuntu720pf="$ubuntu video=ps3fb:mode:131"
ubuntu1080i="$ubuntu video=ps3fb:mode:4"
ubuntu1080p="$ubuntu video=ps3fb:mode:5"
ubuntu1080pf="$ubuntu video=ps3fb:mode:133"
これで起動時に kboot: で ubuntu と入力できるようになります。
●起動
再起動して kboot: のプロンプトが出たら ubuntu (または ubuntu720p 等) と
入力して起動してみます。(起動中になぜか console のフォントが変わる)
login: プロンプト と init メッセージが重なって起動失敗に見えることがあるので、
画面がとまったらとりあえず [Enter] 。
login: が出たら root で入ります。パスワードが無いので先に設定しておきます。
# passwd
dhclient でネットにつないで apt-get のテストです。
# ifconfig lo up
# dhclient
# apt-get update
うまくいったら後はパッケージを install したり環境設定などを行います。
●設定など
ssh を入れておきます。これで PC 経由で設定できるようになります。
# apt-get install openssh-server
desktop 環境の install。かなり時間がかかります。
# apt-get install ubuntu-desktop
なぜかエラー終了しました。それでも一応 xorg.conf を書き換えます。
# vi /etc/X11/xorg.conf
最初から Driver は fbdev だったので、変更は2箇所だけでした。
・Sction "Screen" に追加
DefaultFbBpp 32
・Section "Device" に追加
Driver "fbdev"
Option "ShadowFB" "false"
root だと gdm に怒られるので一般ユーザーを追加します。
(ここでは名前を wheel としています)
# adduser wheel
sudoers にも追加します。「wheel ALL=(ALL) ALL」を追加
# visudo
gdm を起動します。
# /etc/init.d/gdm start

ログインできました。設定ツールなど起動できずにおかしなところがあるので、
まだまだ設定が必要なようです。
やっと何とか動いた、といった程度です。
2007/01/19
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 が出回るまでは良い題材かも。
こんな方にはお勧めです。
個人的にここまで楽しめたゲーム機ハードは初めてです。
発売直後にもかかわらず間違いなく稼働率は一番です。
たいてい新ハード発売長後はソフトも少なくあんまりやることが無かったりします。
せめてプログラムを書いて動かせられればもっといろいろ触れるのにな、、と思いつつ
タイトルが徐々に充実してくるのは半年から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 が出回るまでは良い題材かも。
こんな方にはお勧めです。
2007/01/19
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"
内蔵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"
2007/01/17
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 を追加していくとネットに接続
できました。ルータにでもしましょうか。
いろいろ手が入っていて、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 を追加していくとネットに接続
できました。ルータにでもしましょうか。
2007/01/16
Playstation3 動作確認製品
こんなページを発見しました
・BUFFALO PLAYSTATION3 動作確認サプライ関連製品一覧
ストレージのカテゴリではきちんと本体 HDD の「バックアップ/リストア」の
動作確認が行われています。
以前こちらの「PS3 の HDD バックアップ方法の実験」で
大容量 HDD へのバックアップ実験を行いました。
よく調べてみると、市販されている HDD は大容量のものでも最初から FAT32 で
フォーマットされているようです。~32G まで、というのは全く心配ないみたいですね。
他にも
・Logitec PLAYSTATION3 接続確認情報
・ELECOM PLAYSTATION3動作確認一覧
・HORI PLAYSTATION3対応についてのご案内
・BUFFALO PLAYSTATION3 動作確認サプライ関連製品一覧
ストレージのカテゴリではきちんと本体 HDD の「バックアップ/リストア」の
動作確認が行われています。
以前こちらの「PS3 の HDD バックアップ方法の実験」で
大容量 HDD へのバックアップ実験を行いました。
よく調べてみると、市販されている HDD は大容量のものでも最初から FAT32 で
フォーマットされているようです。~32G まで、というのは全く心配ないみたいですね。
他にも
・Logitec PLAYSTATION3 接続確認情報
・ELECOM PLAYSTATION3動作確認一覧
・HORI PLAYSTATION3対応についてのご案内
2007/01/15
PS3 Live CD をメモリカードから起動する
LiveCD の作成&テストの前準備として、PS3 用の Debian Live CD をメモリカード
から起動してみました。
ADDON CD の HowToEnableYourDistro.html の kboot の説明によると
1. /etc/kboot.conf がある CD/DVD
2. ボリュームラベルが BOOTMC のメモリカード
3. ラベルが / の HDD
の順で mount 対象になります。ここの検索で hit した場所から最初の kboot.conf
が読み込まれているようです。
今回はあまっている CF カードでテストしました。
●ボリュームラベルを BOOTMC に設定する
Windows 側のドライブのプロパティやフォーマット時にボリューム名を BOOTMC に
しても、コマンドラインの label コマンドを使っても、Linux 側からはどうも
# /sbin/findfs LABEL=BOOTMC
で見つかりません。なぜか書き換え前のラベル名が見えてしまいます。
いろいろ調べてみたところ、FAT のボリュームラベルは2種類あるようです。
(1) ブートセクタに書き込まれるボリュームラベル
(2) ルートディレクトリエントリに書き込まれるボリュームラベル
(1) についてはこちら http://triaez.kaisei.org/~s-zouda/pc/fat32.html
のページを参考にさせていただきました。Linux の dd コマンドで直接ダンプ
してみると確認できます。
(2) はルートディレクトリに属性 0x08 でファイル名の一種として書き込まれる
エントリです。
両方存在する場合 Windows 側では (2) が優先され、label コマンドの書き換えも
こちらに対して行われます。(2) が存在しない場合 dir コマンドでは空欄に
なりますが「ディスクの管理」画面では (2) の代わりに (1) が表示されます。
Linux 側の findfs では、(2) を識別することができずに常に (1) を参照して
いるようです。
Windows 上で (1) を編集する方法がわからなかったので、とりあえず
HowToEnableYourDistro.html の説明通りに Linux 上でフォーマットしてみました。
メモリカードが /dev/sde の場合
# /sbin/mkfs.vfat -n BOOTMC /dev/sde1
この方法で書き込んだラベルはきちんと (1) に書き込まれており Linux 上から
検索できました。逆に (2) には書き込まれないので Windows 上からはボリューム
ラベルがないように見えます。
●Live CD をコピーしてみる
ボリュームラベルを BOOTMC に設定したら、とりあえず Live CD の中身をコピー
してみます。
Debian Live CD を Windows 上で開いて、中のファイルを全部メモリカード上に
コピーします。220M ほどあります。
中はこんな感じ
DIR install
DIR isolinux
md5sum.txt
DIR casper
DIR etc
● etc/kboot.conf の書き換え
コピーしたメモリカード上の etc/kboot.conf の中身を書き換えます。
テキストエディタで開いて、root= の行を以下のように変更します。
root=/dev/sdc0
↓
root=LABEL=BOOTMC
●起動
これで LiveCD と同じ方法でメモリカードから起動できるようになります。
メモリカードを PS3 に挿入して起動します。(あらかじめ kboot 導入は必要)
kboot: プロンプトでは Live CD と同じように
こちら http://www.keshi.org/moin/moin.cgi/PS3/Debian/Live
のリストにある Label を入力することができます。
Debian Live CD については
こちら PS3 Linux Debianの Live CD が来た! も参考にしてください。
から起動してみました。
ADDON CD の HowToEnableYourDistro.html の kboot の説明によると
1. /etc/kboot.conf がある CD/DVD
2. ボリュームラベルが BOOTMC のメモリカード
3. ラベルが / の HDD
の順で mount 対象になります。ここの検索で hit した場所から最初の kboot.conf
が読み込まれているようです。
今回はあまっている CF カードでテストしました。
●ボリュームラベルを BOOTMC に設定する
Windows 側のドライブのプロパティやフォーマット時にボリューム名を BOOTMC に
しても、コマンドラインの label コマンドを使っても、Linux 側からはどうも
# /sbin/findfs LABEL=BOOTMC
で見つかりません。なぜか書き換え前のラベル名が見えてしまいます。
いろいろ調べてみたところ、FAT のボリュームラベルは2種類あるようです。
(1) ブートセクタに書き込まれるボリュームラベル
(2) ルートディレクトリエントリに書き込まれるボリュームラベル
(1) についてはこちら http://triaez.kaisei.org/~s-zouda/pc/fat32.html
のページを参考にさせていただきました。Linux の dd コマンドで直接ダンプ
してみると確認できます。
(2) はルートディレクトリに属性 0x08 でファイル名の一種として書き込まれる
エントリです。
両方存在する場合 Windows 側では (2) が優先され、label コマンドの書き換えも
こちらに対して行われます。(2) が存在しない場合 dir コマンドでは空欄に
なりますが「ディスクの管理」画面では (2) の代わりに (1) が表示されます。
Linux 側の findfs では、(2) を識別することができずに常に (1) を参照して
いるようです。
Windows 上で (1) を編集する方法がわからなかったので、とりあえず
HowToEnableYourDistro.html の説明通りに Linux 上でフォーマットしてみました。
メモリカードが /dev/sde の場合
# /sbin/mkfs.vfat -n BOOTMC /dev/sde1
この方法で書き込んだラベルはきちんと (1) に書き込まれており Linux 上から
検索できました。逆に (2) には書き込まれないので Windows 上からはボリューム
ラベルがないように見えます。
●Live CD をコピーしてみる
ボリュームラベルを BOOTMC に設定したら、とりあえず Live CD の中身をコピー
してみます。
Debian Live CD を Windows 上で開いて、中のファイルを全部メモリカード上に
コピーします。220M ほどあります。
中はこんな感じ
DIR install
DIR isolinux
md5sum.txt
DIR casper
DIR etc
● etc/kboot.conf の書き換え
コピーしたメモリカード上の etc/kboot.conf の中身を書き換えます。
テキストエディタで開いて、root= の行を以下のように変更します。
root=/dev/sdc0
↓
root=LABEL=BOOTMC
●起動
これで LiveCD と同じ方法でメモリカードから起動できるようになります。
メモリカードを PS3 に挿入して起動します。(あらかじめ kboot 導入は必要)
kboot: プロンプトでは Live CD と同じように
こちら http://www.keshi.org/moin/moin.cgi/PS3/Debian/Live
のリストにある Label を入力することができます。
Debian Live CD については
こちら PS3 Linux Debianの Live CD が来た! も参考にしてください。
2007/01/14
PS3 から Windows を操作する
フルインストールした PS3 の Fedora Core 5 には、ターミナルサーバクライアント
も最初から入っています。これを使って 同じ LAN 上の Windows PC にログイン
してみます。
●リモートデスクトップ(rdesktop)
WindowsXP Professional 以上 (または Server 系 Windows) が必要です。
残念ながら XP の Home Edition にはつなぐことができません。
・WindowsXP 側の設定
・コントロールパネル→システムを開く
・「リモート」のタブの
「このコンピュータにユーザーがリモートで接続することを許可する」
にチェックを入れる
・PS3 側
・メニューの
「アプリケーション」→「インターネット」→「ターミナルサーバクライアント」
を実行する。
・コンピュータ名: に WindowsPC の名前か IP アドレスを入れる
・プロトコル: は RDPv5 を選ぶ
・[接続] を押す。つながったら Windows の画面が出るのでログインする。

デフォルトだと 256色モードになってしまうので、
「画面」タブ→「色」の "指定した色震度を指定する"、で 6万色 や フルカラー の
選択ができます。

720p なのでリモートデスクトップが 800x600 になってしまってます。
画面が狭いけど動作は意外にきびきびとして結構使えます。

音は出ないものの Gyao も見れました。
Vista には接続できませんでした。
・rdesktop
● VNC
VNC を使って Windows にログインするには、Windows 版の VNC server が必要です。
・RealVNC vnc-4_1_2-x86_win32.exe
こちらは XP Professional でなくても動作します。
入れると Windows Defender に怒られました。
通信路のリスクを承知して使うということで許可しました。
・Windows 側
「スタートメニュー」→「VNC Server 4 (User-Mode)」→「Run VNC Server」
タスクトレイにVNCアイコンが入ったら右ボタンから Options
「VNC Server Properities (User-Mode)」 の Authentication タブの
"VNC Password Authentication" を選択して [Configure]
パスワードを登録したら [OK]
・PS3 側
・ターミナルサーバクライアントを起動して、今度はプロトコルを VNC にする
・[接続] を押すとパスワードを聞かれるので入力

こちらは Vista につないでます。VNC はデスクトップをイメージで送信している
らしく、Vista の AeroGlass もきちんと描画されています。
その分描画の更新が重くなってます。
さらに VNC 自体は Linux 側でサーバーを動かして PC 側で操作することもできます。
もっといろんな面白いことができるようです。
不要になったら必ず VNC Server は停止しておいてください。
●使い道
使い道はありそうです。rdesktop はレスポンスも良く、Windows 同士でつないだ
リモートデスクトップとほとんど変わらない印象でした。
例えば、リビングに置いた PS3 を HDMI のフルHDでつないでおいて、別の部屋の
PC 内の写真を大画面で見たいとか・・・これだとデジカメを直接 USB で PS3 に
つないでも同じことができそうです。
PC 上のムービーなら Xbox360 でできますね。
むしろ職場など、会議室の大画面TVに D端子 か HDMI しかない状況で、PS3 経由で
パワーポイントを開くなんてのは十分ありかもしれません。
も最初から入っています。これを使って 同じ LAN 上の Windows PC にログイン
してみます。
●リモートデスクトップ(rdesktop)
WindowsXP Professional 以上 (または Server 系 Windows) が必要です。
残念ながら XP の Home Edition にはつなぐことができません。
・WindowsXP 側の設定
・コントロールパネル→システムを開く
・「リモート」のタブの
「このコンピュータにユーザーがリモートで接続することを許可する」
にチェックを入れる
・PS3 側
・メニューの
「アプリケーション」→「インターネット」→「ターミナルサーバクライアント」
を実行する。
・コンピュータ名: に WindowsPC の名前か IP アドレスを入れる
・プロトコル: は RDPv5 を選ぶ
・[接続] を押す。つながったら Windows の画面が出るのでログインする。

デフォルトだと 256色モードになってしまうので、
「画面」タブ→「色」の "指定した色震度を指定する"、で 6万色 や フルカラー の
選択ができます。

720p なのでリモートデスクトップが 800x600 になってしまってます。
画面が狭いけど動作は意外にきびきびとして結構使えます。

音は出ないものの Gyao も見れました。
Vista には接続できませんでした。
・rdesktop
● VNC
VNC を使って Windows にログインするには、Windows 版の VNC server が必要です。
・RealVNC vnc-4_1_2-x86_win32.exe
こちらは XP Professional でなくても動作します。
入れると Windows Defender に怒られました。
通信路のリスクを承知して使うということで許可しました。
・Windows 側
「スタートメニュー」→「VNC Server 4 (User-Mode)」→「Run VNC Server」
タスクトレイにVNCアイコンが入ったら右ボタンから Options
「VNC Server Properities (User-Mode)」 の Authentication タブの
"VNC Password Authentication" を選択して [Configure]
パスワードを登録したら [OK]
・PS3 側
・ターミナルサーバクライアントを起動して、今度はプロトコルを VNC にする
・[接続] を押すとパスワードを聞かれるので入力

こちらは Vista につないでます。VNC はデスクトップをイメージで送信している
らしく、Vista の AeroGlass もきちんと描画されています。
その分描画の更新が重くなってます。
さらに VNC 自体は Linux 側でサーバーを動かして PC 側で操作することもできます。
もっといろんな面白いことができるようです。
不要になったら必ず VNC Server は停止しておいてください。
●使い道
使い道はありそうです。rdesktop はレスポンスも良く、Windows 同士でつないだ
リモートデスクトップとほとんど変わらない印象でした。
例えば、リビングに置いた PS3 を HDMI のフルHDでつないでおいて、別の部屋の
PC 内の写真を大画面で見たいとか・・・これだとデジカメを直接 USB で PS3 に
つないでも同じことができそうです。
PC 上のムービーなら Xbox360 でできますね。
むしろ職場など、会議室の大画面TVに D端子 か HDMI しかない状況で、PS3 経由で
パワーポイントを開くなんてのは十分ありかもしれません。
2007/01/13
PS3 Linux のちょっと残念な点
●本体 HDD を一度フォーマット(パーティション分割)しないと Linux の起動ができないこと
(2007/01/13。システムソフトウエアバージョン v1.32 現在)
本体のフォーマットユーティリティで他のシステム用領域を作らないと
「他のシステムのインストール」の実行ができない。
本体のフォーマットユーティリティで他のシステム用領域を作らないと
「優先起動システム」の選択ができない。(メニューに出てこない)
「他のシステムのインストール」で書き込まれるブートローダー自体は、
HDD ではなくフラッシュメモリに書き込まれます。また本体 HDD に Linux を
インストールしなくても、CD/DVD-ROM や外付け HDD からでも Linux 自体の
起動ができます。
なので原理的には内蔵 HDD に Linux 領域が無くても十分ブートできそうな
気がします。将来のファームアップでは、パーティション分割必須という上記の
制限をなくしてもらえると非常に活用方法が広がります。
ちなみに、
1. パーティション分割(その他のシステム用領域作成)
2. 他のシステムのインストール
3. kboot の起動を確認
4. フォーマットして「すべてPS3に割り当て」
とした場合も、結局「優先起動システム」の変更ができないので Linux の起動が
できなくなります。
その後
5. もう一度フォーマットしてパーティション分割
6. 優先起動システムを「その他のシステム」に変更
とすると、きちんとさっきと同じ kboot が起動します。
このことから HDD をフォーマットしても一度書き込まれたブートローダー部分
には影響が無いことがわかります。
●本体 HDD のパーティション分割方法が 1種類しかないこと
現状では 10GB とそれ以外、の分割しかできないようです。60GB モデルを 30:30
に分けることもできないし、20GB モデルで Linux 側をもっと減らしたくても
できないのが残念。もし可能なら改善して欲しい点です。
●画面モード設定
XMB (PS3,GAME-OS) 上で設定した画面モードなどの設定は Linux 側に引き継がれ
ないので、Linux 側の起動やインストール画面は、表示可能で安全な最低の
解像度(480i)が選択されてしまいます。
今後の解析やファームアップデートによってはもしかしたらできるようになるの
かもしれないです。
(2007/01/13。システムソフトウエアバージョン v1.32 現在)
本体のフォーマットユーティリティで他のシステム用領域を作らないと
「他のシステムのインストール」の実行ができない。
本体のフォーマットユーティリティで他のシステム用領域を作らないと
「優先起動システム」の選択ができない。(メニューに出てこない)
「他のシステムのインストール」で書き込まれるブートローダー自体は、
HDD ではなくフラッシュメモリに書き込まれます。また本体 HDD に Linux を
インストールしなくても、CD/DVD-ROM や外付け HDD からでも Linux 自体の
起動ができます。
なので原理的には内蔵 HDD に Linux 領域が無くても十分ブートできそうな
気がします。将来のファームアップでは、パーティション分割必須という上記の
制限をなくしてもらえると非常に活用方法が広がります。
ちなみに、
1. パーティション分割(その他のシステム用領域作成)
2. 他のシステムのインストール
3. kboot の起動を確認
4. フォーマットして「すべてPS3に割り当て」
とした場合も、結局「優先起動システム」の変更ができないので Linux の起動が
できなくなります。
その後
5. もう一度フォーマットしてパーティション分割
6. 優先起動システムを「その他のシステム」に変更
とすると、きちんとさっきと同じ kboot が起動します。
このことから HDD をフォーマットしても一度書き込まれたブートローダー部分
には影響が無いことがわかります。
●本体 HDD のパーティション分割方法が 1種類しかないこと
現状では 10GB とそれ以外、の分割しかできないようです。60GB モデルを 30:30
に分けることもできないし、20GB モデルで Linux 側をもっと減らしたくても
できないのが残念。もし可能なら改善して欲しい点です。
●画面モード設定
XMB (PS3,GAME-OS) 上で設定した画面モードなどの設定は Linux 側に引き継がれ
ないので、Linux 側の起動やインストール画面は、表示可能で安全な最低の
解像度(480i)が選択されてしまいます。
今後の解析やファームアップデートによってはもしかしたらできるようになるの
かもしれないです。
2007/01/13
PS3 Linux 20GBモデルを使うときの注意点など
「PS3 の 60GB モデルと 20GB モデルで、Linux を使うときに違いがあるのかどうか」
今までずっと 60GB 版の PS3 だけ使って Linux install の実験をしてきました。
20GB 版も手に入れたのでちょっと調べてみました。
● デバイス名の違い
・60GB 版のデバイス (Fedora Core 5 起動時のもの)
/dev/sda 内蔵HDD
/dev/sdb ブート用フラッシュメモリ
/dev/sdc 内蔵カードリーダー MS
/dev/sdd 内蔵カードリーダー SD
/dev/sde 内蔵カードリーダー CF
/dev/sdf USBポートにさしたUSBメモリ・HDD等 1
/dev/sdg USBポートにさしたUSBメモリ・HDD等 2
:
・20GB 版のデバイス (Fedora Core 5 起動時のもの)
/dev/sda 内蔵HDD
/dev/sdb ブート用フラッシュメモリ
/dev/sdc USBポートにさしたUSBメモリ・HDD等 1
/dev/sdd USBポートにさしたUSBメモリ・HDD等 2
:
内蔵カードリーダーの分だけデバイス名がずれてます。
この blog ではずっと外付け HDD が /dev/sdf として説明を書いてきましたが
20GB 版では /dev/sdc になるようです。ご注意ください。
kboot.conf や fstab も、デバイス名でなくちゃんと LABEL 指定で書いた方が
良かったのかもしれません。
内蔵無線LAN はまだ使えないみたいなので、上記デバイス名と HDD 容量以外に
両者の違いはたぶん無いと思います。
● 20GB 版で本体 HDD に Fedora Core 5 が install できない
これも 20GB 版を手に入れてみてはじめてわかったのですが、Linux への割り当て
を最小にすると FC5 の install ができないようです。
本体 HDD のフォーマットで「PS3に10GB割り当て」を行うと、その他のシステム側
(Linux 側)が約 6GB になります。
この状態で Fedora Core 5 のインストーラ( install-fc sda )を実行しても
「Too small disk size to install Linux」と表示されてインストールできません。
容量的には minimum を選べば大丈夫なはずなんだけど、インストーラの
チェックの手抜きかもしれません。
その他のシステムに 10GB 割り当てる設定だと大丈夫です。
ちなみにこの状態で、外付け USB HDD ( 20GB モデルだと /dev/sdc ) には
FC5 をインストールできました。
● パーティションが 6GB でも Linux インストールができるかどうか
本体 HDD のフォーマットで「PS3に10GB割り当て」を行うとその他のシステム側
容量がおよそ 6GB になります。この状態で Linux がインストールできるか
試しました。
・Debian
Debian Live CD から install してみました。インストールできました。
ただし、途中のパッケージ選択画面で「デスクトップ環境」が出てきません。
ウィンドウ無しになってしまうようです。
(それでも gdm が起動しようとして最初エラーになりますが問題ないです)
最小 install で 2.3G くらい。
・内蔵HDDは未使用のままにする
内蔵 HDD を使わずに、外付けの USB HDD にインストールできました。
FC5 で試しましたがたぶん Debian も ok でしょう。
本体 HDD を swap にするのもいいかもしれません。
今までずっと 60GB 版の PS3 だけ使って Linux install の実験をしてきました。
20GB 版も手に入れたのでちょっと調べてみました。
● デバイス名の違い
・60GB 版のデバイス (Fedora Core 5 起動時のもの)
/dev/sda 内蔵HDD
/dev/sdb ブート用フラッシュメモリ
/dev/sdc 内蔵カードリーダー MS
/dev/sdd 内蔵カードリーダー SD
/dev/sde 内蔵カードリーダー CF
/dev/sdf USBポートにさしたUSBメモリ・HDD等 1
/dev/sdg USBポートにさしたUSBメモリ・HDD等 2
:
・20GB 版のデバイス (Fedora Core 5 起動時のもの)
/dev/sda 内蔵HDD
/dev/sdb ブート用フラッシュメモリ
/dev/sdc USBポートにさしたUSBメモリ・HDD等 1
/dev/sdd USBポートにさしたUSBメモリ・HDD等 2
:
内蔵カードリーダーの分だけデバイス名がずれてます。
この blog ではずっと外付け HDD が /dev/sdf として説明を書いてきましたが
20GB 版では /dev/sdc になるようです。ご注意ください。
kboot.conf や fstab も、デバイス名でなくちゃんと LABEL 指定で書いた方が
良かったのかもしれません。
内蔵無線LAN はまだ使えないみたいなので、上記デバイス名と HDD 容量以外に
両者の違いはたぶん無いと思います。
● 20GB 版で本体 HDD に Fedora Core 5 が install できない
これも 20GB 版を手に入れてみてはじめてわかったのですが、Linux への割り当て
を最小にすると FC5 の install ができないようです。
本体 HDD のフォーマットで「PS3に10GB割り当て」を行うと、その他のシステム側
(Linux 側)が約 6GB になります。
この状態で Fedora Core 5 のインストーラ( install-fc sda )を実行しても
「Too small disk size to install Linux」と表示されてインストールできません。
容量的には minimum を選べば大丈夫なはずなんだけど、インストーラの
チェックの手抜きかもしれません。
その他のシステムに 10GB 割り当てる設定だと大丈夫です。
ちなみにこの状態で、外付け USB HDD ( 20GB モデルだと /dev/sdc ) には
FC5 をインストールできました。
● パーティションが 6GB でも Linux インストールができるかどうか
本体 HDD のフォーマットで「PS3に10GB割り当て」を行うとその他のシステム側
容量がおよそ 6GB になります。この状態で Linux がインストールできるか
試しました。
・Debian
Debian Live CD から install してみました。インストールできました。
ただし、途中のパッケージ選択画面で「デスクトップ環境」が出てきません。
ウィンドウ無しになってしまうようです。
(それでも gdm が起動しようとして最初エラーになりますが問題ないです)
最小 install で 2.3G くらい。
・内蔵HDDは未使用のままにする
内蔵 HDD を使わずに、外付けの USB HDD にインストールできました。
FC5 で試しましたがたぶん Debian も ok でしょう。
本体 HDD を swap にするのもいいかもしれません。
2007/01/12
PS3 の HDD バックアップ方法の実験
PS3 に Linux を入れる場合、必要になるのが HDD のパーティションを切ることです。
このとき HDD 内のゲームデータが消えてしまわないようにバックアップを取る
ことができます。
60GB クラスのバックアップが可能な USB 機器といえば外付けのハードディスク
くらいしか思い浮かびません。で、一番身近にあって意外に大容量なのが iPod 等の
HDD 系音楽プレイヤーだったりします。
早速試してみました
● iPod (80GB)
http://www.apple.com/jp/ipod/ipod.html
USB 接続で認識できました。
PS3 のバックアップユーティリティでバックアップ&リストアも成功。
FAT32 の制約上 4GB を超えるファイルは作れないので、バックアップデータ
が巨大になると分割格納されるようです。
今回のバックアップ容量は約 5GB だったので、おそよ 4G で分割されていました。
ここの GAME Watch の記事には
http://www.watch.impress.co.jp/game/docs/20061121/ggl.htm
>>ファイルシステムの制限として、FATは4GB、FAT32は32GBまでしかPS3上でも
>>認識しない。
とありますがそんなことはないようです。
80GB かつ FAT32 の iPod はきちんと認識されました。
単に Windows2000/XP/Vista 標準のフォーマッタでは、32GB 以上の FAT32
パーティションを作れないだけのようです。
http://support.microsoft.com/kb/184006/ja
(16KB のクラスタサイズまでしか対応してないのかもしれません)
市販のフォーマットユーティリティを使えば 32GB 以上でも FAT32 でフォーマット
できるのだそうです。また Linux のコマンドでもフォーマットできるみたいです。
● gigabeat S30 (30GB)
http://www.gigabeat.net/mobileav/audio/manual/s-series/index_j.htm
接続したところ、PS3 側で「不明なUSB機器が接続されました」と表示されて
しまいます。
もともとマスストレージモードが無くて Windows につないだ場合でも
WindowsCE の ActiveSync みたいな認識のされ方でした。
やはり Windows 以外での接続はむりみたいです。残念。
● GIGABEAT (5GB)
http://www.toshiba.co.jp/about/press/2002_06/pr_j1701.htm
こっちの古い GIGABEAT は使えました。
容量が小さいけど、収まる容量ならバックアップも OK でした。
時間がかかったのでリストアは未確認です。
●外付け HDD (80GB)
USB の外付けの 3.5 インチ HDD を、Linux 上のコマンドを使って FAT32 で
フォーマットしてみます。容量は 80GB です。
作業は PS3 の Fedora Core 5 上で行いました。
HDD 上のパーティションはあらかじめ Windows 上で全部削除しておきました。
※以下 USB の HDD が /dev/sdf で認識されていると仮定します。
※フォーマットなので中のデータは消えますのでご注意ください。
※表示される細かい数値は HDD によって異なります。
(1) パーティション作成
# /sbin/fdisk /dev/sdf
■パーティションテーブルが空っぽなのを確認
Command (m for help): p [Enter]
■パーティション作成
Command (m for help): n [Enter]
p [Enter]
Partition number (1-4): 1 [Enter]
First cylinder (1-9729, default 1): [Enter]
Last cylinder or +size or +sizeM or +sizeK (1-9729,default 9729): [Enter]
■タイプ変更 (W95 FAT32 に変更)
Command (m for help): t [Enter]
Hex code (type L to list codes): b [Enter]
■確認
Command (m for help): p [Enter]
Device Boot Start End Blocks Id System
/dev/sdf1 1 9729 78148161 b W95 FAT32
■書き込み&終了
Command (m for help): w [Enter]
(2) フォーマット
# /sbin/mkfs.vfat /dev/sdf1
(3) 完了
# /sbin/boot-game-os
GAME-OS に戻って確認してみます。
しっかりと認識されているようです。「USB機器(A)」
空き容量は「74 GB」と表示されました。
実際に バックアップユーティリティ でバックアップしてみました。
リストアできちんと復元できています。成功です。
だけど、そもそも Linux を入れるためのバックアップ手段だったので、
これからはじめようとしてる人には微妙に本末転倒な感じがします。
結局 60GB まるまる HDD を使ってる場合、GAME のインストールデータとか消して
32GB 未満に収まるように整理するのが現実的かもしれません・・。
●リストアの注意
もう PS3 に何回 Linux の install を行ったのかわからないくらいなのですが、
過去に一度だけ、バックアップユーティリティのリストアが失敗したことが
あります。
http://donya.jp/everg/7.1/4547479510686/
こんな感じの IDE USB 変換ケーブルを使って HDD を直結しているので、
もしかしたらリストア中にケーブルに触ってしまったのかもしれません。
リストア中に致命的なエラーで終了すると、そのあとに HDDの再フォーマット
が入ります。この強制フォーマットはなんと内蔵 HDD を丸ごと消してくれます。
つまり他のシステムのためのパーティション分割を無視して、全体を GAME に
割り当てる設定に戻ってしまいます。そのためリストアの失敗によって他の
システム用の Linux 領域も消えてしまうこともありえますので十分注意してください。
今回何度もリストア実験したのですが、この貴重な経験をすっかり忘れてました。
あぶない あぶない。
ちなみに以前エラーになったときは、パーティション分割直後だったので
ダメージはありませんでした。もう一度実行したらリストアも成功しました。
このとき HDD 内のゲームデータが消えてしまわないようにバックアップを取る
ことができます。
60GB クラスのバックアップが可能な USB 機器といえば外付けのハードディスク
くらいしか思い浮かびません。で、一番身近にあって意外に大容量なのが iPod 等の
HDD 系音楽プレイヤーだったりします。
早速試してみました
● iPod (80GB)
http://www.apple.com/jp/ipod/ipod.html
USB 接続で認識できました。
PS3 のバックアップユーティリティでバックアップ&リストアも成功。
FAT32 の制約上 4GB を超えるファイルは作れないので、バックアップデータ
が巨大になると分割格納されるようです。
今回のバックアップ容量は約 5GB だったので、おそよ 4G で分割されていました。
ここの GAME Watch の記事には
http://www.watch.impress.co.jp/game/docs/20061121/ggl.htm
>>ファイルシステムの制限として、FATは4GB、FAT32は32GBまでしかPS3上でも
>>認識しない。
とありますがそんなことはないようです。
80GB かつ FAT32 の iPod はきちんと認識されました。
単に Windows2000/XP/Vista 標準のフォーマッタでは、32GB 以上の FAT32
パーティションを作れないだけのようです。
http://support.microsoft.com/kb/184006/ja
(16KB のクラスタサイズまでしか対応してないのかもしれません)
市販のフォーマットユーティリティを使えば 32GB 以上でも FAT32 でフォーマット
できるのだそうです。また Linux のコマンドでもフォーマットできるみたいです。
● gigabeat S30 (30GB)
http://www.gigabeat.net/mobileav/audio/manual/s-series/index_j.htm
接続したところ、PS3 側で「不明なUSB機器が接続されました」と表示されて
しまいます。
もともとマスストレージモードが無くて Windows につないだ場合でも
WindowsCE の ActiveSync みたいな認識のされ方でした。
やはり Windows 以外での接続はむりみたいです。残念。
● GIGABEAT (5GB)
http://www.toshiba.co.jp/about/press/2002_06/pr_j1701.htm
こっちの古い GIGABEAT は使えました。
容量が小さいけど、収まる容量ならバックアップも OK でした。
時間がかかったのでリストアは未確認です。
●外付け HDD (80GB)
USB の外付けの 3.5 インチ HDD を、Linux 上のコマンドを使って FAT32 で
フォーマットしてみます。容量は 80GB です。
作業は PS3 の Fedora Core 5 上で行いました。
HDD 上のパーティションはあらかじめ Windows 上で全部削除しておきました。
※以下 USB の HDD が /dev/sdf で認識されていると仮定します。
※フォーマットなので中のデータは消えますのでご注意ください。
※表示される細かい数値は HDD によって異なります。
(1) パーティション作成
# /sbin/fdisk /dev/sdf
■パーティションテーブルが空っぽなのを確認
Command (m for help): p [Enter]
■パーティション作成
Command (m for help): n [Enter]
p [Enter]
Partition number (1-4): 1 [Enter]
First cylinder (1-9729, default 1): [Enter]
Last cylinder or +size or +sizeM or +sizeK (1-9729,default 9729): [Enter]
■タイプ変更 (W95 FAT32 に変更)
Command (m for help): t [Enter]
Hex code (type L to list codes): b [Enter]
■確認
Command (m for help): p [Enter]
Device Boot Start End Blocks Id System
/dev/sdf1 1 9729 78148161 b W95 FAT32
■書き込み&終了
Command (m for help): w [Enter]
(2) フォーマット
# /sbin/mkfs.vfat /dev/sdf1
(3) 完了
# /sbin/boot-game-os
GAME-OS に戻って確認してみます。
しっかりと認識されているようです。「USB機器(A)」
空き容量は「74 GB」と表示されました。
実際に バックアップユーティリティ でバックアップしてみました。
リストアできちんと復元できています。成功です。
だけど、そもそも Linux を入れるためのバックアップ手段だったので、
これからはじめようとしてる人には微妙に本末転倒な感じがします。
結局 60GB まるまる HDD を使ってる場合、GAME のインストールデータとか消して
32GB 未満に収まるように整理するのが現実的かもしれません・・。
●リストアの注意
もう PS3 に何回 Linux の install を行ったのかわからないくらいなのですが、
過去に一度だけ、バックアップユーティリティのリストアが失敗したことが
あります。
http://donya.jp/everg/7.1/4547479510686/
こんな感じの IDE USB 変換ケーブルを使って HDD を直結しているので、
もしかしたらリストア中にケーブルに触ってしまったのかもしれません。
リストア中に致命的なエラーで終了すると、そのあとに HDDの再フォーマット
が入ります。この強制フォーマットはなんと内蔵 HDD を丸ごと消してくれます。
つまり他のシステムのためのパーティション分割を無視して、全体を GAME に
割り当てる設定に戻ってしまいます。そのためリストアの失敗によって他の
システム用の Linux 領域も消えてしまうこともありえますので十分注意してください。
今回何度もリストア実験したのですが、この貴重な経験をすっかり忘れてました。
あぶない あぶない。
ちなみに以前エラーになったときは、パーティション分割直後だったので
ダメージはありませんでした。もう一度実行したらリストアも成功しました。
2007/01/11
PS3 やっぱり Debian 再インストールメモ
Debian Live CD のインストーラが新しくなっているらしいので、
もう一度外付けの HDD に install しなおしてみました。(3度目!)
問題も直ってて良い感じです。
●想定しているインストール前の状態
・本体 HDD にはすでに Fedora Core 5 が入っています。
・USBのアダプタ経由で IDE HDD をつないでそこにインストールします。
・すでに Debian の Live CD (20070110版) が起動することを確認している
Debian Live CD の起動については
「PS3 Linux Debianの Live CD が来た!」を参考にしてください。
前に Debian をインストールしたときにメモはこちら
「PS3 Linux debian installメモ」です。
●インストール
(1) Debian Live CD (20070110) を挿入した状態で起動します。
kboot: というプロンプトが出たら「 install 」と入力します。
kboot: install [Enter]
インストール中は画面モードがデフォルト(480i)になります。
TV 画面でもインストール可能です。
(2) 画面のメッセージに従ってインストール
インストーラは全部日本語で表示できるので簡単です。
最初の言語選択で「日本語」を選んでください。
インストーラは カーソルキーや [TAB] で選択します。
カーソルキーだけでは移動できない項目には [TAB] キーを使うので注意です。
★設定手順メモ
・インストーラの言語 日本語
・キーボード 日本(106キー)
・ホスト名入力
・ドメイン(無し、空欄)
・ミラー、日本
・アーカイブミラー、デフォルト(一番上)
・プロキシ無し、空欄
・パーテショナー
ガイドのディスク全体を使うが簡単
今回は外付け HDD にインストールするので sda ではなく sdf を選ぶ。
sda = PS3 内蔵 HDD
sdf = USB ポートにつないだ HDD
「NewWorldブートパーティションは見つかりませんでした。~」
が出たら「いいえ」
「PowerPC PReP パーティションが見つかりませんでした。~」
が出たら「いいえ」
・rootパスワード入力
・ユーザー名入力
・ユーザー用パスワード入力
・インストールカーネル選択 (1つしかないのでそれを選ぶ)
・インストールするソフトコレクションの選択
今回はこれだけ選んだ (最初からデスクトップを入れてみる)
* デスクトップ環境
* ウェブサーバー
* ファイルサーバー
* 標準システム
・Samba のワークグループ Windowsに合わせる。任意
・WINS のための dhcp 設定書き換え はい
・X の解像度選択、どうせあとで変えるので適当
・インストール完了 再起動
手順を確実にするために、再起動ではなく一度ここで電源を切ります。
●起動の準備
(3) いちど電源切断する
・内蔵 HDD にも Linux (FC5等) が入っている場合はパーティションのラベルが
競合するので初回の起動に失敗します。
・また、CD が入ったままだと CD 上の Live 版 Debian が起動してしまいます。
なのでいったん電源を切って、外付けの USB HDD をはずしておきます。
また CD も取り出したことを確認してから再び起動してください。
もし内蔵 HDD にも特に Linux が入っていない場合や、内蔵 HDD そのものに
Debian をインストールした場合は問題なく起動できますので
(4)~(6) の手順はスキップしてください。
(4) いったん内蔵 HDD の FC5 を起動する
外付け HDD を外して、さらに CD もとりだした状態で FC5 を通常起動します。
◎もし内蔵 HDD に FC5 等の Linux が入っていない場合はこの手順は
必要ありませんので (7) に進んでください。
◎これは Dual Boot 環境にして、起動時に好きなディストリビューションを
選択できるようにするための手順です。
なぜ競合するかというと、内蔵 HDD の /dev/sda1 等にはすでに「/」という
ラベルがついているのに、Debian をインストールしたパーティションにも
同じ「/」ラベルがついてしまうからです。
※ちなみに YDL のインストーラは、HDD のラベルが競合しないように「/1」
のように数値を追加してくれます。
そのため /dev/sda1 の kboot.conf を読み込みつつ、root が /dev/sdf1
という混乱がおきてしまいます。
FC5 が起動したら、以後の作業のために root でログインしておきます。
(5) HDD のラベル書き換え
ここで外しておいた USB の HDD を取り付けてください。
認識には時間がかかるので 15 秒以上待ちます。
認識できたらコンソールにシステムのメッセージが出ます。
まず HDD のラベルを書き換えます。
以後 Debian の / が /dev/sdf1 にインストールされていると想定します。
# /sbin/e2label /dev/sdf1 /2
YDL のインストーラに倣って、ラベルを「/2」に書き換えておきます。
(6) kboot.conf に Debian の起動設定を加える
次に Debian が起動できるように FC5 上で /etc/kboot.conf をこんな感じに
書き換えます。
(変数を使った kboot.conf のラベル設定は Debian Live CD を真似ました)
# vi /etc/kboot.conf
default=fc5
timeout=30
root=LABEL=/
# fc5 (sda)
fc5='/dev/sda1:/boot/vmlinux-2.6.16 initrd=/dev/sda1:/boot/initrd.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"
fc51080p="$fc5 video=ps3fb:mode:5"
# debian (sdf)
debian='/dev/sdf1:/boot/vmlinux initrd=/dev/sdf1:/boot/initrd.img root=LABEL=/2 '
debian480i="$debian video=ps3fb:mode:1"
debian480if="$debian video=ps3fb:mode:129"
debian720p="$debian video=ps3fb:mode:3"
debian720pf="$debian video=ps3fb:mode:131"
debian1080p="$debian video=ps3fb:mode:5"
これで起動時に何もしなければ内蔵 HDD 上の Fedora Core 5 が起動します。
また、kboot: のコマンド行で次のコマンドを入力することによって好きな
画面モード& Debian の起動ができるようになります。
fc5 Fedora Core 5 画面モード自動 (480i)
fc5480i 480i オーバースキャン対応 TV 向け
fc5480if 480i フルスクリーン
fc5720p 720p オーバースキャン対応
fc5720pf 720p フルスクリーン
fc51080p 1080p
debian Debian 画面モード自動 (480i)
debian480i
debian480if
debian720p
debian720pf
debian1080p
書き換えたら FC5 は終了して今度こそ Debian を起動します。
# reboot
再起動後にまた kboot: 画面が現れたら、今度は「 debian 」と入力して下さい。
外付け HDD 側の Debian が起動します。
また、好きな画面モードを指定して「 debain1080p 」のように入力しても構いません。
※もし kboot.conf の書き換えに失敗して、fc5 とか debian と書いても起動し
なくなったら
kboot: の画面で直接カーネルを指定して起動できます。なので kboot.conf の
記述にミスがあっても問題なく起動することができます。安心してください。
例えば (ちょっと長いけど) こんな感じに書いて実行すれば、内蔵 HDD の
FC5 が起動するはずです。
kboot: /boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=LABEL=/ [Enter]
●起動後の設定
(7) Debian 起動と X 設定
前回外付けドライブに install したときは、実は Fedora Core 5 の
パーティションのカーネルとイメージを流用していました。
そうしないと root に mount するドライブが /dev/sdd に割り当てられていて
起動時にエラーで止まってしまっていたからです。
今回の新しいインストーラではきちんと sdf 側のカーネル呼び出しで難なく起動
できました。
なお、せっかく起動したのですが、最初いきなり画面が出ずにエラーになります。
これは、インストール時に「デスクトップ環境」を入れたので gdm が起動
しようとしているのですが、xorg.conf の設定が済んでいないために
呼び出しているドライバが合わないからです。
しばらく待つとエラーが出てコンソールに戻りますが、CTRL + ALT + F1 を押して
直接コンソールに切り替えても良いです。
まず xorg の足りないファイルをインストールします。
# apt-get update
# apt-get install xserver-xorg-video-fbdev
# apt-get install xserver-xorg-input-mouse
# apt-get install xserver-xorg-input-kbd
次に xorg.conf を書き換えます。
Debian Live CD の X が 720p full 意外でもきちんと動いていたのでそれを
参考にします。
# cd /etc/X11
# mv xorg.conf xorg.conf-backup
# cp xorg.conf-backup xorg.conf
# vi xorg.conf
◎68行目あたり、Section "Device" の中を次のように変更します。
Identifier "Generic Video Card"
Driver "apm"
Option "UseFBDev" "true"
↓
Identifier "Generic Video Card"
Driver "fbdev"
Option "ShadowFB" "false"
Option "UseFBDev" "true"
・Driver の "apm" を "fbdev" に変更
・Option "ShadowFB" "false" を追加
◎86行目あたりの Section "Screen" の中に次の行を追加します。
DefaultFbBpp 32
これで X が起動できるようになります。
可能な人は Live CD の /etc/X11/xorg.conf をコピーしてきても OK です。
あらためて gdm を立ち上げます。
# /etc/init.d/gdm restart
無事デスクトップ環境が使えるようになりました。
「 Option "ShadowFB" "false" 」が無いと、ps3videomode で fullscreen を
選択しないと同期が崩れたような画面になりきちんと表示されません。
これが原因だったんですね。
Fedora Core 6 でも同じような問題があるそうなので、もしかしてこれで直る
のかもしれません。
・「FC6の罠」
(8) ps3pf_utils の install
「PS3 の Debian で ps3ps_util を」では自前で作りましたが、
何のことは無い、きちんとパッケージが用意されていました。(知らなかった)
sources.list の先頭に書かれている http://ps3.keshi.org/debian のエントリを
有効にします。
# vi /etc/apt/sources.list
「# deb http://ps3.keshi.org/debian ./」の行の先頭の # を削除する。
# apt-get update
# apt-get install ps3pf-utils
これで ps3videomode や /sbin/boot-game-os が使えるようになります。
●まとめ
起動時のドライブ認識も正常で、外付けドライブでもきちんと起動するように
なって sdb もあるし、ps3pf-utils もあるし、さらに完成度が高まった感じが
します。
あとは Cell の SDK が欲しいところ。
Live CD も簡単に作れるみたいなのでいろいろためせますね。
USB メモリ起動とか。
もう一度外付けの HDD に install しなおしてみました。(3度目!)
問題も直ってて良い感じです。
●想定しているインストール前の状態
・本体 HDD にはすでに Fedora Core 5 が入っています。
・USBのアダプタ経由で IDE HDD をつないでそこにインストールします。
・すでに Debian の Live CD (20070110版) が起動することを確認している
Debian Live CD の起動については
「PS3 Linux Debianの Live CD が来た!」を参考にしてください。
前に Debian をインストールしたときにメモはこちら
「PS3 Linux debian installメモ」です。
●インストール
(1) Debian Live CD (20070110) を挿入した状態で起動します。
kboot: というプロンプトが出たら「 install 」と入力します。
kboot: install [Enter]
インストール中は画面モードがデフォルト(480i)になります。
TV 画面でもインストール可能です。
(2) 画面のメッセージに従ってインストール
インストーラは全部日本語で表示できるので簡単です。
最初の言語選択で「日本語」を選んでください。
インストーラは カーソルキーや [TAB] で選択します。
カーソルキーだけでは移動できない項目には [TAB] キーを使うので注意です。
★設定手順メモ
・インストーラの言語 日本語
・キーボード 日本(106キー)
・ホスト名入力
・ドメイン(無し、空欄)
・ミラー、日本
・アーカイブミラー、デフォルト(一番上)
・プロキシ無し、空欄
・パーテショナー
ガイドのディスク全体を使うが簡単
今回は外付け HDD にインストールするので sda ではなく sdf を選ぶ。
sda = PS3 内蔵 HDD
sdf = USB ポートにつないだ HDD
「NewWorldブートパーティションは見つかりませんでした。~」
が出たら「いいえ」
「PowerPC PReP パーティションが見つかりませんでした。~」
が出たら「いいえ」
・rootパスワード入力
・ユーザー名入力
・ユーザー用パスワード入力
・インストールカーネル選択 (1つしかないのでそれを選ぶ)
・インストールするソフトコレクションの選択
今回はこれだけ選んだ (最初からデスクトップを入れてみる)
* デスクトップ環境
* ウェブサーバー
* ファイルサーバー
* 標準システム
・Samba のワークグループ Windowsに合わせる。任意
・WINS のための dhcp 設定書き換え はい
・X の解像度選択、どうせあとで変えるので適当
・インストール完了 再起動
手順を確実にするために、再起動ではなく一度ここで電源を切ります。
●起動の準備
(3) いちど電源切断する
・内蔵 HDD にも Linux (FC5等) が入っている場合はパーティションのラベルが
競合するので初回の起動に失敗します。
・また、CD が入ったままだと CD 上の Live 版 Debian が起動してしまいます。
なのでいったん電源を切って、外付けの USB HDD をはずしておきます。
また CD も取り出したことを確認してから再び起動してください。
もし内蔵 HDD にも特に Linux が入っていない場合や、内蔵 HDD そのものに
Debian をインストールした場合は問題なく起動できますので
(4)~(6) の手順はスキップしてください。
(4) いったん内蔵 HDD の FC5 を起動する
外付け HDD を外して、さらに CD もとりだした状態で FC5 を通常起動します。
◎もし内蔵 HDD に FC5 等の Linux が入っていない場合はこの手順は
必要ありませんので (7) に進んでください。
◎これは Dual Boot 環境にして、起動時に好きなディストリビューションを
選択できるようにするための手順です。
なぜ競合するかというと、内蔵 HDD の /dev/sda1 等にはすでに「/」という
ラベルがついているのに、Debian をインストールしたパーティションにも
同じ「/」ラベルがついてしまうからです。
※ちなみに YDL のインストーラは、HDD のラベルが競合しないように「/1」
のように数値を追加してくれます。
そのため /dev/sda1 の kboot.conf を読み込みつつ、root が /dev/sdf1
という混乱がおきてしまいます。
FC5 が起動したら、以後の作業のために root でログインしておきます。
(5) HDD のラベル書き換え
ここで外しておいた USB の HDD を取り付けてください。
認識には時間がかかるので 15 秒以上待ちます。
認識できたらコンソールにシステムのメッセージが出ます。
まず HDD のラベルを書き換えます。
以後 Debian の / が /dev/sdf1 にインストールされていると想定します。
# /sbin/e2label /dev/sdf1 /2
YDL のインストーラに倣って、ラベルを「/2」に書き換えておきます。
(6) kboot.conf に Debian の起動設定を加える
次に Debian が起動できるように FC5 上で /etc/kboot.conf をこんな感じに
書き換えます。
(変数を使った kboot.conf のラベル設定は Debian Live CD を真似ました)
# vi /etc/kboot.conf
default=fc5
timeout=30
root=LABEL=/
# fc5 (sda)
fc5='/dev/sda1:/boot/vmlinux-2.6.16 initrd=/dev/sda1:/boot/initrd.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"
fc51080p="$fc5 video=ps3fb:mode:5"
# debian (sdf)
debian='/dev/sdf1:/boot/vmlinux initrd=/dev/sdf1:/boot/initrd.img root=LABEL=/2 '
debian480i="$debian video=ps3fb:mode:1"
debian480if="$debian video=ps3fb:mode:129"
debian720p="$debian video=ps3fb:mode:3"
debian720pf="$debian video=ps3fb:mode:131"
debian1080p="$debian video=ps3fb:mode:5"
これで起動時に何もしなければ内蔵 HDD 上の Fedora Core 5 が起動します。
また、kboot: のコマンド行で次のコマンドを入力することによって好きな
画面モード& Debian の起動ができるようになります。
fc5 Fedora Core 5 画面モード自動 (480i)
fc5480i 480i オーバースキャン対応 TV 向け
fc5480if 480i フルスクリーン
fc5720p 720p オーバースキャン対応
fc5720pf 720p フルスクリーン
fc51080p 1080p
debian Debian 画面モード自動 (480i)
debian480i
debian480if
debian720p
debian720pf
debian1080p
書き換えたら FC5 は終了して今度こそ Debian を起動します。
# reboot
再起動後にまた kboot: 画面が現れたら、今度は「 debian 」と入力して下さい。
外付け HDD 側の Debian が起動します。
また、好きな画面モードを指定して「 debain1080p 」のように入力しても構いません。
※もし kboot.conf の書き換えに失敗して、fc5 とか debian と書いても起動し
なくなったら
kboot: の画面で直接カーネルを指定して起動できます。なので kboot.conf の
記述にミスがあっても問題なく起動することができます。安心してください。
例えば (ちょっと長いけど) こんな感じに書いて実行すれば、内蔵 HDD の
FC5 が起動するはずです。
kboot: /boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=LABEL=/ [Enter]
●起動後の設定
(7) Debian 起動と X 設定
前回外付けドライブに install したときは、実は Fedora Core 5 の
パーティションのカーネルとイメージを流用していました。
そうしないと root に mount するドライブが /dev/sdd に割り当てられていて
起動時にエラーで止まってしまっていたからです。
今回の新しいインストーラではきちんと sdf 側のカーネル呼び出しで難なく起動
できました。
なお、せっかく起動したのですが、最初いきなり画面が出ずにエラーになります。
これは、インストール時に「デスクトップ環境」を入れたので gdm が起動
しようとしているのですが、xorg.conf の設定が済んでいないために
呼び出しているドライバが合わないからです。
しばらく待つとエラーが出てコンソールに戻りますが、CTRL + ALT + F1 を押して
直接コンソールに切り替えても良いです。
まず xorg の足りないファイルをインストールします。
# apt-get update
# apt-get install xserver-xorg-video-fbdev
# apt-get install xserver-xorg-input-mouse
# apt-get install xserver-xorg-input-kbd
次に xorg.conf を書き換えます。
Debian Live CD の X が 720p full 意外でもきちんと動いていたのでそれを
参考にします。
# cd /etc/X11
# mv xorg.conf xorg.conf-backup
# cp xorg.conf-backup xorg.conf
# vi xorg.conf
◎68行目あたり、Section "Device" の中を次のように変更します。
Identifier "Generic Video Card"
Driver "apm"
Option "UseFBDev" "true"
↓
Identifier "Generic Video Card"
Driver "fbdev"
Option "ShadowFB" "false"
Option "UseFBDev" "true"
・Driver の "apm" を "fbdev" に変更
・Option "ShadowFB" "false" を追加
◎86行目あたりの Section "Screen" の中に次の行を追加します。
DefaultFbBpp 32
これで X が起動できるようになります。
可能な人は Live CD の /etc/X11/xorg.conf をコピーしてきても OK です。
あらためて gdm を立ち上げます。
# /etc/init.d/gdm restart
無事デスクトップ環境が使えるようになりました。
「 Option "ShadowFB" "false" 」が無いと、ps3videomode で fullscreen を
選択しないと同期が崩れたような画面になりきちんと表示されません。
これが原因だったんですね。
Fedora Core 6 でも同じような問題があるそうなので、もしかしてこれで直る
のかもしれません。
・「FC6の罠」
(8) ps3pf_utils の install
「PS3 の Debian で ps3ps_util を」では自前で作りましたが、
何のことは無い、きちんとパッケージが用意されていました。(知らなかった)
sources.list の先頭に書かれている http://ps3.keshi.org/debian のエントリを
有効にします。
# vi /etc/apt/sources.list
「# deb http://ps3.keshi.org/debian ./」の行の先頭の # を削除する。
# apt-get update
# apt-get install ps3pf-utils
これで ps3videomode や /sbin/boot-game-os が使えるようになります。
●まとめ
起動時のドライブ認識も正常で、外付けドライブでもきちんと起動するように
なって sdb もあるし、ps3pf-utils もあるし、さらに完成度が高まった感じが
します。
あとは Cell の SDK が欲しいところ。
Live CD も簡単に作れるみたいなのでいろいろためせますね。
USB メモリ起動とか。
2007/01/10
PS3 Linux Debianの Live CD が来た!
Debian の Live CD が ほげめも さんのところから来ました!早速使ってみます。
これは CD-ROM から起動できる Linux です。
時間のかかる HDD インストール無しに起動できるので、
PS3 上で Linux の環境を簡単に体験することができます。
ほげめも 「Debian Live for PS3」
●起動までの準備
(1) Live-CD の作成
こちら から iso イメージをダウンロードします。
今回は 20070110 の debian-live-ps3pf-20070110.iso を使いました。
CD に iso イメージを焼きこめる環境が必要です。
とりあえず WindowsPC などで iso イメージとして書き込みます。
20070110 版の容量は 222M なので余裕で CD-R/RW に収まります。
もしすでに FC5 等を install していて、ブートローダーの kboot が
入っていれば、作業はこれでおわりです。
(2) kboot (otheros.bld) の install
もし Linux インストールを行ったことが無くまだ kboot が入っていない場合は
この作業が必要になります。
「PS3 に Linux を入れるまでの手順」の (4)~(9) までの手順が必要です。
今回は試していませんが、おそらく YDL の kboot (otheros.bld) でも大丈夫です。
とりあえず起動するだけなら内蔵 HDD は使わないので、作成する Linux 用の
パーティションは最小で大丈夫です。
Linux 用パーティションを最小にする(GAME用領域を最大にする)には
・20GB モデル > 「PS3に10GBを割り当てる」 (約6.6GB)
・60GB モデル > 「他のシステムに10GBを割り当てる」 (約10.7GB)
を選びます。
(PS3 Linux FAQ を参考にさせていただきました)
●起動方法
作成した Live-CD を入れた状態で「他のシステム」を起動します。
具体的には GAME-OS で、本体設定の「優先起動システム」を「他のシステム」に
変更してから電源を入れなおします。
すでに Linux が入っている場合は普通の reboot で OK です。
画面が止まったように見えてもそのまま待っていてください。
そのうち勝手に起動します。簡単です。
このとき画面モードは次のようになります。
・HDMI 接続の場合> 480p
・HDMI じゃない場合> 480i
もし HD (ハイレゾ) で起動したい場合は次のようにしてください。
起動時に kboot: とプロンプトが出ている状態で次のコマンドを打ち込みます。
(一覧はこちら http://www.keshi.org/moin/moin.cgi/PS3/Debian/Live )
live (自動選択、デフォルト)
yuv480i
yuv480p
yuv720p
yuv1080i
yuv1080p
yuv576i
yuv576p
WXGA
SXGA
WUXGA
例えば D4 (720p) にするなら
kboot: yuv720p [Enter]
ここで選択できる画面モードはオバースキャン前提なので、720p でも厳密に
1280x720 になりません。TV 画面に収まるように一回り小さくなります。
●日本語にする方法
デフォルトでは英語のデスクトップになります。
起動時の kboot: プロンプトで次のように指定して起動すると日本語になります。
デフォルト解像度の場合
kboot: live locale=ja_JP.UTF-8 keyb=jp106
720pの場合(例)
kboot: yuv720p locale=ja_JP.UTF-8 keyb=jp106
●終了の仕方
画面上のメニューから「Desktop」「Shut down」を選びます。
またはら「デスクトップ」「シャットダウン」です。
画面が止まって電源が切れないな、と思ったら何度か Enter を押してください。
●できること
この Live CD は最小構成なので、ブラウザ (Firefox ) のみのようです。
自分でカスタマイズした Live CD を作れるそうなので、日本語かつ
アプリケーションを追加した自分環境を作ることが可能でしょう。
●注意点
Live CD は CD-ROM から起動してお試しできる環境です。
HDD を必要としない代わりにディスクは RAMDISK なので、
電源を切ると消えてしまいます。
●まとめ
ubuntu のように、インストール無しに気軽に Linux を体験することができます。
が、アプリケーションが全く入っていないので、初心者が初めて Linux に触った
場合や、どんなことができるのか体験したい人には少々物足りないでしょう。
どちらかというと普段 FC5/YDL を使っていて Debian を試したい人、
または自分で Live CD を作成したい人にお勧めです。
この CD でそのまま HDD に Debian を PS3 に install することもできます。
インストールするには起動時の kboot: のプロンプトで install と入力します。
このときネットワーク接続が必要です。
やっぱり FC5 に比べると、ウィンドウ上でも軽快に使えるのがいいですね。
正直軽いです。
最初 Debian を入れたときは HDD ドライブの性能の違いかと思っていたのですが
別のドライブに入れた YDL も比較的軽くてそれなりに動作するし
同じ HDD に入れた FC5 デスクトップも速くならなかったので、
純粋に FC5 が重いだけかもしれません。
軽いといっても最新の PC のウィンドウに比べたら比較にならないのだけど、
FC5 が操作時に不可解な重さを感じることがあるのに対して、Debian はまだ
理解できる重さです。ぜひ試してみてください。
個人的には CELL 開発環境さえ動けば、あとは Debian を使いたいと思ってます。
これは CD-ROM から起動できる Linux です。
時間のかかる HDD インストール無しに起動できるので、
PS3 上で Linux の環境を簡単に体験することができます。
ほげめも 「Debian Live for PS3」
●起動までの準備
(1) Live-CD の作成
こちら から iso イメージをダウンロードします。
今回は 20070110 の debian-live-ps3pf-20070110.iso を使いました。
CD に iso イメージを焼きこめる環境が必要です。
とりあえず WindowsPC などで iso イメージとして書き込みます。
20070110 版の容量は 222M なので余裕で CD-R/RW に収まります。
もしすでに FC5 等を install していて、ブートローダーの kboot が
入っていれば、作業はこれでおわりです。
(2) kboot (otheros.bld) の install
もし Linux インストールを行ったことが無くまだ kboot が入っていない場合は
この作業が必要になります。
「PS3 に Linux を入れるまでの手順」の (4)~(9) までの手順が必要です。
今回は試していませんが、おそらく YDL の kboot (otheros.bld) でも大丈夫です。
とりあえず起動するだけなら内蔵 HDD は使わないので、作成する Linux 用の
パーティションは最小で大丈夫です。
Linux 用パーティションを最小にする(GAME用領域を最大にする)には
・20GB モデル > 「PS3に10GBを割り当てる」 (約6.6GB)
・60GB モデル > 「他のシステムに10GBを割り当てる」 (約10.7GB)
を選びます。
(PS3 Linux FAQ を参考にさせていただきました)
●起動方法
作成した Live-CD を入れた状態で「他のシステム」を起動します。
具体的には GAME-OS で、本体設定の「優先起動システム」を「他のシステム」に
変更してから電源を入れなおします。
すでに Linux が入っている場合は普通の reboot で OK です。
画面が止まったように見えてもそのまま待っていてください。
そのうち勝手に起動します。簡単です。
このとき画面モードは次のようになります。
・HDMI 接続の場合> 480p
・HDMI じゃない場合> 480i
もし HD (ハイレゾ) で起動したい場合は次のようにしてください。
起動時に kboot: とプロンプトが出ている状態で次のコマンドを打ち込みます。
(一覧はこちら http://www.keshi.org/moin/moin.cgi/PS3/Debian/Live )
live (自動選択、デフォルト)
yuv480i
yuv480p
yuv720p
yuv1080i
yuv1080p
yuv576i
yuv576p
WXGA
SXGA
WUXGA
例えば D4 (720p) にするなら
kboot: yuv720p [Enter]
ここで選択できる画面モードはオバースキャン前提なので、720p でも厳密に
1280x720 になりません。TV 画面に収まるように一回り小さくなります。
●日本語にする方法
デフォルトでは英語のデスクトップになります。
起動時の kboot: プロンプトで次のように指定して起動すると日本語になります。
デフォルト解像度の場合
kboot: live locale=ja_JP.UTF-8 keyb=jp106
720pの場合(例)
kboot: yuv720p locale=ja_JP.UTF-8 keyb=jp106
●終了の仕方
画面上のメニューから「Desktop」「Shut down」を選びます。
またはら「デスクトップ」「シャットダウン」です。
画面が止まって電源が切れないな、と思ったら何度か Enter を押してください。
●できること
この Live CD は最小構成なので、ブラウザ (Firefox ) のみのようです。
自分でカスタマイズした Live CD を作れるそうなので、日本語かつ
アプリケーションを追加した自分環境を作ることが可能でしょう。
●注意点
Live CD は CD-ROM から起動してお試しできる環境です。
HDD を必要としない代わりにディスクは RAMDISK なので、
電源を切ると消えてしまいます。
●まとめ
ubuntu のように、インストール無しに気軽に Linux を体験することができます。
が、アプリケーションが全く入っていないので、初心者が初めて Linux に触った
場合や、どんなことができるのか体験したい人には少々物足りないでしょう。
どちらかというと普段 FC5/YDL を使っていて Debian を試したい人、
または自分で Live CD を作成したい人にお勧めです。
この CD でそのまま HDD に Debian を PS3 に install することもできます。
インストールするには起動時の kboot: のプロンプトで install と入力します。
このときネットワーク接続が必要です。
やっぱり FC5 に比べると、ウィンドウ上でも軽快に使えるのがいいですね。
正直軽いです。
最初 Debian を入れたときは HDD ドライブの性能の違いかと思っていたのですが
別のドライブに入れた YDL も比較的軽くてそれなりに動作するし
同じ HDD に入れた FC5 デスクトップも速くならなかったので、
純粋に FC5 が重いだけかもしれません。
軽いといっても最新の PC のウィンドウに比べたら比較にならないのだけど、
FC5 が操作時に不可解な重さを感じることがあるのに対して、Debian はまだ
理解できる重さです。ぜひ試してみてください。
個人的には CELL 開発環境さえ動けば、あとは Debian を使いたいと思ってます。
2007/01/10
PS3 Linux 起動時画面モードの謎に兆戦
カスタム kboot を作って簡単に書き込めることがわかったので、起動時の画面
モードをもっと何とかできないか調査しています。
カーネルのソースを見ていくと、
drivers/video/ps3fb.c
ps3fb_probe()
の中で最初の画面モードを設定していることがわかります。
モードは ps3fb_mode に入ります。この値の初期値は 0 ですが、
ps3fb_init()
で ps3av_get_mode() を呼び出して画面モード値を取得しています。
もし起動時にカーネルオプション ( video=ps3fb:mode:3 とかのあれ) があれば、
その直後にオプションで指定された値で上書きします。
最初の kboot のブートローダー呼び出しではオプションは NULL でした。
なので ps3av_get_mode() の値が有効です。
この関数は
arch/powerpc/platforms/ps3fp/ps3av.c
の中にあります。
ここでわかったのは、起動時にシステム側からモニタの設定らしき値を受け取って
いて、一応自動で画面モードを判定しているということ。
だとしたら GAME-OS 側で設定した条件にしたがって初回の画面モードを選ぶだけで
いいような気がします。
GAME-OS 側では「D端子/コンポーネント」の選択もあるし、さらに使用可能な
解像度も登録できます。この中で一番大きな解像度で表示されるのが理想です。
実際のコードを見ると、
・HDMI の場合
・HDMI じゃない場合 (AV MULTI)
の2種類の判定を行っています。
原則として HDMI の場合はデフォルトとして 480p を、それ以外の場合は
480i が選ばれるようです。(60/50Hz の区別もある)
得られる構造体パラメータを見ても、ヘッダのシンボルを見ても、どうも
「D端子/コンポーネント」の区別がつきません。デジタル と アナログ の
区別のみです。
使用可能な解像度の Bit 情報も受け取っていますが、値をダンプしてみても
実際にコードを書いて試してもうまくいきません。
HDMI じゃない場合 (AV MULTI の場合) はきちんと値が格納されていないようです。
もしかしたらこれは GAME-OS 側で設定した config の値ではなくて、
直接デバイスに問い合わせて得られるパラメータなのかもしれません。
もしそうなら、デジタルかつ新しい規格の HDMI ではモニタ側の情報がわかるけど、
D端子 や コンポーネントでは 区別できないのもなんとなく納得できます。
仕方ないのでとりあえず、画面モードの固定値を埋め込んでみます。
kboot-20061208/kboot-10/linux-2.6.16/arch/powerpc/platforms/ps3fp/ps3av.c
の中の auto_videomode() の戻り値を好きな画面モードに書き換えた
otheros.bld を作ってシステムに登録すれば、最初の boot 画面からきちんと
ハイレゾで表示されることがわかりました。
具体的には auto_videomode() の一番最後の
return (vid2table_id(vid) | dvi | rgb);
を
return 3;
のように直接値にしてしまいます。これで最初から 3 = 720p になります。
固定値なので解像度ごとに otheros.bld を作らないといけないですね。
other-os-flash-util で書き込んでいるフラッシュメモリの空き領域を使って、
どこかに画面モード値を埋め込んでおけばいいのかもしれません。
otheros.bld (kboot) のコンパイル方法は前回の記事
「PS3 Linux カスタム kboot を作る」の手順どおりです。
一度 make した後にまたカーネルだけ再コンパイルする場合は、
kboot-10/root-meta/installed/linux
を先に消しておく必要があります。例えば今回は、こんなスクリプトを書いて
build &テストをしていました。
rm kboot-10/root-meta/installed/linux
make
gzip -9c kboot-10/linux > otheros.bld
できた otheros.bld をシステムにインストールするには、さらに
# /sbin/other-os-flash-util -B -g /dev/sdb otheros.bld
を実行します。
(注意点は「PS3 Linux カスタム kboot を作る」を参照にしてください)
・PS3 Linux で kboot をハイレゾにする
・PS3 Linux カスタム kboot を作る
と来て、3度目の挑戦でようやく本当のハイレゾ kboot になりました。
モードをもっと何とかできないか調査しています。
カーネルのソースを見ていくと、
drivers/video/ps3fb.c
ps3fb_probe()
の中で最初の画面モードを設定していることがわかります。
モードは ps3fb_mode に入ります。この値の初期値は 0 ですが、
ps3fb_init()
で ps3av_get_mode() を呼び出して画面モード値を取得しています。
もし起動時にカーネルオプション ( video=ps3fb:mode:3 とかのあれ) があれば、
その直後にオプションで指定された値で上書きします。
最初の kboot のブートローダー呼び出しではオプションは NULL でした。
なので ps3av_get_mode() の値が有効です。
この関数は
arch/powerpc/platforms/ps3fp/ps3av.c
の中にあります。
ここでわかったのは、起動時にシステム側からモニタの設定らしき値を受け取って
いて、一応自動で画面モードを判定しているということ。
だとしたら GAME-OS 側で設定した条件にしたがって初回の画面モードを選ぶだけで
いいような気がします。
GAME-OS 側では「D端子/コンポーネント」の選択もあるし、さらに使用可能な
解像度も登録できます。この中で一番大きな解像度で表示されるのが理想です。
実際のコードを見ると、
・HDMI の場合
・HDMI じゃない場合 (AV MULTI)
の2種類の判定を行っています。
原則として HDMI の場合はデフォルトとして 480p を、それ以外の場合は
480i が選ばれるようです。(60/50Hz の区別もある)
得られる構造体パラメータを見ても、ヘッダのシンボルを見ても、どうも
「D端子/コンポーネント」の区別がつきません。デジタル と アナログ の
区別のみです。
使用可能な解像度の Bit 情報も受け取っていますが、値をダンプしてみても
実際にコードを書いて試してもうまくいきません。
HDMI じゃない場合 (AV MULTI の場合) はきちんと値が格納されていないようです。
もしかしたらこれは GAME-OS 側で設定した config の値ではなくて、
直接デバイスに問い合わせて得られるパラメータなのかもしれません。
もしそうなら、デジタルかつ新しい規格の HDMI ではモニタ側の情報がわかるけど、
D端子 や コンポーネントでは 区別できないのもなんとなく納得できます。
仕方ないのでとりあえず、画面モードの固定値を埋め込んでみます。
kboot-20061208/kboot-10/linux-2.6.16/arch/powerpc/platforms/ps3fp/ps3av.c
の中の auto_videomode() の戻り値を好きな画面モードに書き換えた
otheros.bld を作ってシステムに登録すれば、最初の boot 画面からきちんと
ハイレゾで表示されることがわかりました。
具体的には auto_videomode() の一番最後の
return (vid2table_id(vid) | dvi | rgb);
を
return 3;
のように直接値にしてしまいます。これで最初から 3 = 720p になります。
固定値なので解像度ごとに otheros.bld を作らないといけないですね。
other-os-flash-util で書き込んでいるフラッシュメモリの空き領域を使って、
どこかに画面モード値を埋め込んでおけばいいのかもしれません。
otheros.bld (kboot) のコンパイル方法は前回の記事
「PS3 Linux カスタム kboot を作る」の手順どおりです。
一度 make した後にまたカーネルだけ再コンパイルする場合は、
kboot-10/root-meta/installed/linux
を先に消しておく必要があります。例えば今回は、こんなスクリプトを書いて
build &テストをしていました。
rm kboot-10/root-meta/installed/linux
make
gzip -9c kboot-10/linux > otheros.bld
できた otheros.bld をシステムにインストールするには、さらに
# /sbin/other-os-flash-util -B -g /dev/sdb otheros.bld
を実行します。
(注意点は「PS3 Linux カスタム kboot を作る」を参照にしてください)
・PS3 Linux で kboot をハイレゾにする
・PS3 Linux カスタム kboot を作る
と来て、3度目の挑戦でようやく本当のハイレゾ kboot になりました。
2007/01/10
PS3 Linux カスタム kboot を作る
ハイレゾ対応版kbootを作ります。
前回外付け USB HDD からの起動で、インストールされている kboot (otheros.bld)
の違いで少々はまりました。
また Linux のブートローダーである kboot は常に 480i で起動します。
kboot.conf に書いておけば kboot から呼ばれたカーネルは任意の画面モード
で起動しますが、その選択画面である kboot: コマンドラインはいつも 480i です。
これ、PCモニタなど 480i で表示ができない環境を使っていると結構困ります。
・Linux インストールのためだけに TV が要る
・起動ドライブや起動するディストリビューションの選択ができない
なので自前の kboot を作ってみることにしました。
rpm のインストールが必要なので、今回は build 環境として Fedora Core 5 を
使います。
(1) ppu-gcc の install
kboot の build に必要なので ppu-gcc をインストールします。
「PS3 の Cell 開発環境を入れてみる」で入れた spu-gcc と要領は同じです。
http://www.bsc.es/plantillaH.php?cat_id=252
まずこちらから ppu-gcc 一式をダウンロードします。
PowerPC(ppc) 上で動作する ppu 向けのバイナリパッケージを選択します。
ppu-binutils-3.3-72.ppc.rpm
ppu-gcc-3.3-72.ppc.rpm
ppu-gcc-c++-3.3-72.ppc.rpm
ppu-gdb-3.3-72.ppc.rpm
上記パッケージを必ずこの順番でインストールします。
# rpm -ihv ppu-binutils-3.3-72.ppc.rpm
# rpm -ihv ppu-gcc-3.3-72.ppc.rpm
# rpm -ihv ppu-gcc-c++-3.3-72.ppc.rpm
# rpm -ihv ppu-gdb-3.3-72.ppc.rpm
(2) kboot のソースの準備
kboot のソースはいつもの ADDON CD に含まれています。
FC5 のインストールに使ったやつです。
ftp://ftp.uk.linux.org/pub/linux/Sony-PS3/
CELL-Linux-CL_20061208-ADDON.iso
この中の \src から kboot-20061208.tar.bz2 を任意のフォルダにコピーします。
PS3 Linux は何度も再起動したりしてるので、最近は Windows PC から putty
経由でアクセスして作業しています。なのでファイルもいつも Windows で
落としてから samba で PS3 にコピーしています。
(PS3 Linux をサーバーにしてみる)
(3) kboot (otheros.bld) の build
展開して build してみます。
# tar -jxvf kboot-20061208.tar.bz2
# cd kboot-20061208
# make
HDD があふれました・・。Linux 用に 10G しか割り当てておらず、
しかも FC5 をフルインストールしたので空きが足りなかったようです。
外付けの HDD ドライブ上にソースを移してもう一度 make します。
カーネルごとコンパイルなのでかなり時間がかかりますが、
今度は特に問題も無くコンパイルが通りました。
ぽちネット さんの こちら の記事によると、kboot-10/linux が
otheros.bld そのものだそうです。参考にさせていただきました。
kboot の root イメージは kboot-10/root に入っています。
kboot 時に実行されるスクリプト init は、kboot-10/scripts/kboot にありました。
(4) kboot のカスタマイズテスト
まず YDL 版 kboot のように、kboot: 上でも ps3videomode を使えるようにします。
そもそも kboot には ps3pf_util が含まれていて、kboot-10/ps3pf_utils-1.0.1
の中にはちゃんと ps3videomode もできています。
これを root にコピーするように手を加えます。
コピーしているのは Makefile の中です。
# vi kboot-10/Makefile
□1556行目、boot-game-os の後ろに ps3videomode も付け加えます。
cp $(PS3PF_UTILS_DIR)/{find-other-os-flash,other-os-flash-util,boot-game-os} $(PWD)/root/sbin
↓
cp $(PS3PF_UTILS_DIR)/{find-other-os-flash,other-os-flash-util,boot-game-os,ps3videomode} $(PWD)/root/sbin
□512行目にも boot-game-os があるので、同じように ps3videomode を加えます。
"$$FILE" = "root/sbin/boot-game-os" -o \
"$$FILE" = "root/sbin/ps3videomode" -o \
root-meta/installed からから 0byte のファイル ps3pf_utils を消します。
# rm kboot-10/root-meta/installed/ps3pf_utils
scripts/kboot に ps3videomode の呼び出しを追加してみます。
これで「PS3 Linux で kboot をハイレゾにする」に書いたように、
いちいち kboot.conf に ps3videomode の起動を書かなくてすみます。
# vi kboot-10/scripts/kboot
□87行目あたり、PATH の設定のあとに追加してみる
ps3videomode -v 3
(ここでの設定は 3 = 720p なので、TV 等 480i の方はこの行を追加しないで
ください)
これでもう一度 make します。
# make
できたら otheros.bld に変換します。(gzip してリネームするだけ)
# cp kboot-10/linux .
# gzip -9 linux
# mv linux.gz otheros.bld
これで自分だけの kboot (otheros.bld) ができました。
(5) otheros.bld の install テスト
正規の手順で otheros.bld をインストールするのは結構面倒です。
USB メモリや SD カードなどに書き込んでから、一旦 GAME-OS に戻って
メニューから実行する必要があります。
しかもいちいちコントローラを USB の有線接続しなければなりません。
前回「PS3 の Debian で ps3ps_util を」で Linux (Debian) 上から
ブートローダの書き込みを試しましたが見事に失敗しました。
でもせっかくだからもう一度挑戦します。今度は FC5 上からやります。
先に /sbin/find-other-os-flash を実行して、必ず /dev/sdb と表示されることを
確認してください。
# /sbin/find-other-os-flash
ここで何も表示されなければドライバがきちんと読み込まれていない可能性があります。
書き込みの実行はこんな感じです。
# /sbin/other-os-flash-util -b -g /dev/sdb otheros.bld
うまくいったら reboot してみます。
(6) とりあえず成功
今回は Linux 上からのブートローダーの書き込みがうまくいきました。
kboot: が表示される直前に、きちんと 720p になっています。
またこれでこれでいちいち otheros.bld の書き込みのために
GAME-OS に戻る必要がなくなりました。
もちろん試す場合は自己責任でお願いします。
もし otheros.bld の書き込みに失敗した場合、起動できなくなった場合は
次の手順に従ってください。
1. 電源も切れず何もできなくなったら、本体裏の電源スイッチを切る
2. 30秒以上待ってから本体後ろの電源スイッチを入れる
3. 前面にあるドライブの前の電源ボタンを、7秒くらい押しっぱなしにして
電源を入れる。(音がするので指を離すタイミングがわかる)
これで強制的に GAME-OS で起動します。このとき画面モードは 480i になります。
GAME-OS 上で正常に動作する方の otheros.bld を入れなおしてください。
今回作った otheros.bld のスペックはこんな感じです。
・動作は FC5 版 (ADDON CD版) と同じで、常に sda1 の kboot.conf を読み込む
(YDL 版のように全ドライブの kboot.conf をマージしない)
・基本的に FC5 版 (ADDON CD版) と同じ。install-fc コマンドも入ってる。
・YDL 版の kexec のように ps3videomode が含まれているので、kboot:
プロンプトやそこから shell に降りた状態で画面モードを切り替えられる。
・ついでに起動時に勝手に好きな画面モードにしてしまう。
これで 480i 表示できない環境でも、FC5、Debian、YDL 等を kboot で選択して
切り替え起動できるようになりました。
画面モード設定はもう少し融通が利くように改善したいところです。
前回外付け USB HDD からの起動で、インストールされている kboot (otheros.bld)
の違いで少々はまりました。
また Linux のブートローダーである kboot は常に 480i で起動します。
kboot.conf に書いておけば kboot から呼ばれたカーネルは任意の画面モード
で起動しますが、その選択画面である kboot: コマンドラインはいつも 480i です。
これ、PCモニタなど 480i で表示ができない環境を使っていると結構困ります。
・Linux インストールのためだけに TV が要る
・起動ドライブや起動するディストリビューションの選択ができない
なので自前の kboot を作ってみることにしました。
rpm のインストールが必要なので、今回は build 環境として Fedora Core 5 を
使います。
(1) ppu-gcc の install
kboot の build に必要なので ppu-gcc をインストールします。
「PS3 の Cell 開発環境を入れてみる」で入れた spu-gcc と要領は同じです。
http://www.bsc.es/plantillaH.php?cat_id=252
まずこちらから ppu-gcc 一式をダウンロードします。
PowerPC(ppc) 上で動作する ppu 向けのバイナリパッケージを選択します。
ppu-binutils-3.3-72.ppc.rpm
ppu-gcc-3.3-72.ppc.rpm
ppu-gcc-c++-3.3-72.ppc.rpm
ppu-gdb-3.3-72.ppc.rpm
上記パッケージを必ずこの順番でインストールします。
# rpm -ihv ppu-binutils-3.3-72.ppc.rpm
# rpm -ihv ppu-gcc-3.3-72.ppc.rpm
# rpm -ihv ppu-gcc-c++-3.3-72.ppc.rpm
# rpm -ihv ppu-gdb-3.3-72.ppc.rpm
(2) kboot のソースの準備
kboot のソースはいつもの ADDON CD に含まれています。
FC5 のインストールに使ったやつです。
ftp://ftp.uk.linux.org/pub/linux/Sony-PS3/
CELL-Linux-CL_20061208-ADDON.iso
この中の \src から kboot-20061208.tar.bz2 を任意のフォルダにコピーします。
PS3 Linux は何度も再起動したりしてるので、最近は Windows PC から putty
経由でアクセスして作業しています。なのでファイルもいつも Windows で
落としてから samba で PS3 にコピーしています。
(PS3 Linux をサーバーにしてみる)
(3) kboot (otheros.bld) の build
展開して build してみます。
# tar -jxvf kboot-20061208.tar.bz2
# cd kboot-20061208
# make
HDD があふれました・・。Linux 用に 10G しか割り当てておらず、
しかも FC5 をフルインストールしたので空きが足りなかったようです。
外付けの HDD ドライブ上にソースを移してもう一度 make します。
カーネルごとコンパイルなのでかなり時間がかかりますが、
今度は特に問題も無くコンパイルが通りました。
ぽちネット さんの こちら の記事によると、kboot-10/linux が
otheros.bld そのものだそうです。参考にさせていただきました。
kboot の root イメージは kboot-10/root に入っています。
kboot 時に実行されるスクリプト init は、kboot-10/scripts/kboot にありました。
(4) kboot のカスタマイズテスト
まず YDL 版 kboot のように、kboot: 上でも ps3videomode を使えるようにします。
そもそも kboot には ps3pf_util が含まれていて、kboot-10/ps3pf_utils-1.0.1
の中にはちゃんと ps3videomode もできています。
これを root にコピーするように手を加えます。
コピーしているのは Makefile の中です。
# vi kboot-10/Makefile
□1556行目、boot-game-os の後ろに ps3videomode も付け加えます。
cp $(PS3PF_UTILS_DIR)/{find-other-os-flash,other-os-flash-util,boot-game-os} $(PWD)/root/sbin
↓
cp $(PS3PF_UTILS_DIR)/{find-other-os-flash,other-os-flash-util,boot-game-os,ps3videomode} $(PWD)/root/sbin
□512行目にも boot-game-os があるので、同じように ps3videomode を加えます。
"$$FILE" = "root/sbin/boot-game-os" -o \
"$$FILE" = "root/sbin/ps3videomode" -o \
root-meta/installed からから 0byte のファイル ps3pf_utils を消します。
# rm kboot-10/root-meta/installed/ps3pf_utils
scripts/kboot に ps3videomode の呼び出しを追加してみます。
これで「PS3 Linux で kboot をハイレゾにする」に書いたように、
いちいち kboot.conf に ps3videomode の起動を書かなくてすみます。
# vi kboot-10/scripts/kboot
□87行目あたり、PATH の設定のあとに追加してみる
ps3videomode -v 3
(ここでの設定は 3 = 720p なので、TV 等 480i の方はこの行を追加しないで
ください)
これでもう一度 make します。
# make
できたら otheros.bld に変換します。(gzip してリネームするだけ)
# cp kboot-10/linux .
# gzip -9 linux
# mv linux.gz otheros.bld
これで自分だけの kboot (otheros.bld) ができました。
(5) otheros.bld の install テスト
正規の手順で otheros.bld をインストールするのは結構面倒です。
USB メモリや SD カードなどに書き込んでから、一旦 GAME-OS に戻って
メニューから実行する必要があります。
しかもいちいちコントローラを USB の有線接続しなければなりません。
前回「PS3 の Debian で ps3ps_util を」で Linux (Debian) 上から
ブートローダの書き込みを試しましたが見事に失敗しました。
でもせっかくだからもう一度挑戦します。今度は FC5 上からやります。
先に /sbin/find-other-os-flash を実行して、必ず /dev/sdb と表示されることを
確認してください。
# /sbin/find-other-os-flash
ここで何も表示されなければドライバがきちんと読み込まれていない可能性があります。
書き込みの実行はこんな感じです。
# /sbin/other-os-flash-util -b -g /dev/sdb otheros.bld
うまくいったら reboot してみます。
(6) とりあえず成功
今回は Linux 上からのブートローダーの書き込みがうまくいきました。
kboot: が表示される直前に、きちんと 720p になっています。
またこれでこれでいちいち otheros.bld の書き込みのために
GAME-OS に戻る必要がなくなりました。
もちろん試す場合は自己責任でお願いします。
もし otheros.bld の書き込みに失敗した場合、起動できなくなった場合は
次の手順に従ってください。
1. 電源も切れず何もできなくなったら、本体裏の電源スイッチを切る
2. 30秒以上待ってから本体後ろの電源スイッチを入れる
3. 前面にあるドライブの前の電源ボタンを、7秒くらい押しっぱなしにして
電源を入れる。(音がするので指を離すタイミングがわかる)
これで強制的に GAME-OS で起動します。このとき画面モードは 480i になります。
GAME-OS 上で正常に動作する方の otheros.bld を入れなおしてください。
今回作った otheros.bld のスペックはこんな感じです。
・動作は FC5 版 (ADDON CD版) と同じで、常に sda1 の kboot.conf を読み込む
(YDL 版のように全ドライブの kboot.conf をマージしない)
・基本的に FC5 版 (ADDON CD版) と同じ。install-fc コマンドも入ってる。
・YDL 版の kexec のように ps3videomode が含まれているので、kboot:
プロンプトやそこから shell に降りた状態で画面モードを切り替えられる。
・ついでに起動時に勝手に好きな画面モードにしてしまう。
これで 480i 表示できない環境でも、FC5、Debian、YDL 等を kboot で選択して
切り替え起動できるようになりました。
画面モード設定はもう少し融通が利くように改善したいところです。
2007/01/09
PS3 の Debian で ps3ps_util を
Debian でも ps3videomode や boot-game-os が無いとやっぱり不便なので
作っておきます。
ソースは ADDON CD CELL-Linux-CL_20061208-ADDON.iso に含まれています。
ftp://ftp.uk.linux.org/pub/linux/Sony-PS3/
(1) ADDON CD の \src の中身をコピーしておく
ps3pf_util とカーネルのソースが必要
(2) ソース展開
とりあえず手作業で
$ rpm -i ps3pf_utils-1.0.9-3.src.rpm
$ tar -jxvf /usr/src/rpm/SOURCES/ps3pf_utils-1.0.9.tar.bz2
$ tar -jxvf ../linux-20061208.tar.bz2
(3) Makefile 修正
Makefile の CFLAGS に -I../linux-20061208/include を追加
$ cd ps3pf_utils-1.0.9
$ vi Makefile
こうなる
CFLAGS = -O2 -Wall -W -Wstrict-prototypes -I../linux-20061208/include
(4) build と install
$ make
$ su
# make install
これで FC5 環境同様に
/usr/bin/ps3videomode
/sbin/boot-game-os
が使えるようになります。
また、一緒にインストールされる other-os-flash-util を使うと、
フラッシュメモリの設定を表示したり書き換えができるようになります。
# /sbin/other-os-flash-util -s `/sbin/find-other-os-flash`
version: 0x00000001
offset1: 0x00000002
offset2: 0x00000004
boot loader format: 0x00000001 : gziped
boot loader size : 0 : whole of area
boot flag: 0x00000001 : boot linux
num_params: 3
param_data0: 00 00 00 00 38 6d 43 74 00 00 ff ff ff ff ff ff
rtc_diff : 946684788
video_mode : 0x00 : NTSC
controller : 0x00 : O button means yes
param_data1: 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
Static IP : 0.0.0.0
Network Mask : 0.0.0.0
Default Gateway : 0.0.0.0
param_data2: 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
DNS Server 1 : 0.0.0.0
DNS Server 2 : 0.0.0.0
FC5 環境では /dev/sdb がフラッシュデバイスです。
容量は 4Mbyte でした。
このコマンドでブートローダーの書き込みもできるようです。
が、ためしに書き込んでみたら起動しなくなりました・・。
電源長押しの強制復帰+他のOSインストーラの再実行で一応元に戻りました。
作っておきます。
ソースは ADDON CD CELL-Linux-CL_20061208-ADDON.iso に含まれています。
ftp://ftp.uk.linux.org/pub/linux/Sony-PS3/
(1) ADDON CD の \src の中身をコピーしておく
ps3pf_util とカーネルのソースが必要
(2) ソース展開
とりあえず手作業で
$ rpm -i ps3pf_utils-1.0.9-3.src.rpm
$ tar -jxvf /usr/src/rpm/SOURCES/ps3pf_utils-1.0.9.tar.bz2
$ tar -jxvf ../linux-20061208.tar.bz2
(3) Makefile 修正
Makefile の CFLAGS に -I../linux-20061208/include を追加
$ cd ps3pf_utils-1.0.9
$ vi Makefile
こうなる
CFLAGS = -O2 -Wall -W -Wstrict-prototypes -I../linux-20061208/include
(4) build と install
$ make
$ su
# make install
これで FC5 環境同様に
/usr/bin/ps3videomode
/sbin/boot-game-os
が使えるようになります。
また、一緒にインストールされる other-os-flash-util を使うと、
フラッシュメモリの設定を表示したり書き換えができるようになります。
# /sbin/other-os-flash-util -s `/sbin/find-other-os-flash`
version: 0x00000001
offset1: 0x00000002
offset2: 0x00000004
boot loader format: 0x00000001 : gziped
boot loader size : 0 : whole of area
boot flag: 0x00000001 : boot linux
num_params: 3
param_data0: 00 00 00 00 38 6d 43 74 00 00 ff ff ff ff ff ff
rtc_diff : 946684788
video_mode : 0x00 : NTSC
controller : 0x00 : O button means yes
param_data1: 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff
Static IP : 0.0.0.0
Network Mask : 0.0.0.0
Default Gateway : 0.0.0.0
param_data2: 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
DNS Server 1 : 0.0.0.0
DNS Server 2 : 0.0.0.0
FC5 環境では /dev/sdb がフラッシュデバイスです。
容量は 4Mbyte でした。
このコマンドでブートローダーの書き込みもできるようです。
が、ためしに書き込んでみたら起動しなくなりました・・。
電源長押しの強制復帰+他のOSインストーラの再実行で一応元に戻りました。
2007/01/09
PS3 Linux kboot の挙動の違いについて
「PS3 Linux を外付け HDD から起動するまとめ」 で
kboot の kboot.conf の読み込み挙動が把握できなかった点について原因が
わかりました。install した otheros.bld によって、kboot の動作が異なって
いるのが原因でした。
・FC5 版 (ADDON CD) の otheros.bld
/dev/sda のみ参照
・YDL 版 otheros.bld
各ドライブの /etc/kboot.conf を集めてマージ
kboot起動時に /init を読むと __read_fstab() の動作が異なっていることが
わかります。
とりあえず sda の kboot.conf 固定にしたいので、sdf の kboot.conf は削除
しておくことにします。
kboot のソースは ADDON CD に含まれているようです。
kboot の kboot.conf の読み込み挙動が把握できなかった点について原因が
わかりました。install した otheros.bld によって、kboot の動作が異なって
いるのが原因でした。
・FC5 版 (ADDON CD) の otheros.bld
/dev/sda のみ参照
・YDL 版 otheros.bld
各ドライブの /etc/kboot.conf を集めてマージ
kboot起動時に /init を読むと __read_fstab() の動作が異なっていることが
わかります。
とりあえず sda の kboot.conf 固定にしたいので、sdf の kboot.conf は削除
しておくことにします。
kboot のソースは ADDON CD に含まれているようです。
2007/01/09
PS3 Linux を外付け HDD から起動するまとめ
Debian(Etch)、Fedora Core 5、Yellow Dog Linux と、3種類ほど
外付けドライブにインストールしてみました。
で、はまった点とか書いてみます。
内蔵HDD (sda) へのインストールだと特に問題がなくても、外付け HDD に
install すると不具合が出ることがあります。
●外付けドライブにインストールはできるが起動できない
OSインストールはできるけど、起動時に root を mount できずに boot が
途中で止まってしまうことがあります。
これは root になるべきドライブが認識される前に mount しようとするのが
原因のようです。FC5 では問題が起こらないので、これをお手本にして initrd
の init スクリプトに手を加えるとなんとかなります。
(http://www.devdrv.co.jp/linux/cpio-initrd-format.htm を参考にしました)
・/boot の initrd*.img をコピー (ファイル名は環境依存)
# cp /boot/initrd*.img .
# mkdir image
# cd image
# zcat ../initrd*.img | cpio -i -c
・init の修正
mkblkdevs と mkblkdevs の間にドライバ読み込みと認識待ちの sleep を追加。
追加する内容は FC5 の init を参考にする。
さらにこの中で読み込んでいる module を lib フォルダに入れておく。
・新しい initrd の作成
# find . | cpio --quiet -c -o | gzip -c > ../initrd-new.img
kboot.conf の指定で新しい initrd-new.img を読み込むように手直しします。
initrd.img の修正が手間な場合は、実は FC5 の initrd.img をそのまま使っても
たいていうまくいきます。FC5 の initrd.img は ADDON CD の \target に入って
いるので、これを HDD にコピーして使えます。
●kboot.conf がどこから読み込まれるか
基本的に内蔵 HDD sda でラベル '/' がついたパーティションがあるとそこから
読み込まれます。なので、外付け HDD にインストールした場合でもそのカーネル
呼び出しの設定を sda 側の /etc/kboot.conf に追加する必要があります。
この辺の挙動はまだ完全に把握していないのですが、ごくまれに違うドライブの
kboot.conf も読み込まれていることがあります。
ADDON CD の HowToEnableYourDistro.html に書いてある通りにも必ずしもなら
ないことがあるし。もしかしたら認識順も影響するのかもしれません。
メモリカードとか使って kboot.conf の読み込み位置を固定した方がいいのかも
しれません。
外付けドライブにインストールしてみました。
で、はまった点とか書いてみます。
内蔵HDD (sda) へのインストールだと特に問題がなくても、外付け HDD に
install すると不具合が出ることがあります。
●外付けドライブにインストールはできるが起動できない
OSインストールはできるけど、起動時に root を mount できずに boot が
途中で止まってしまうことがあります。
これは root になるべきドライブが認識される前に mount しようとするのが
原因のようです。FC5 では問題が起こらないので、これをお手本にして initrd
の init スクリプトに手を加えるとなんとかなります。
(http://www.devdrv.co.jp/linux/cpio-initrd-format.htm を参考にしました)
・/boot の initrd*.img をコピー (ファイル名は環境依存)
# cp /boot/initrd*.img .
# mkdir image
# cd image
# zcat ../initrd*.img | cpio -i -c
・init の修正
mkblkdevs と mkblkdevs の間にドライバ読み込みと認識待ちの sleep を追加。
追加する内容は FC5 の init を参考にする。
さらにこの中で読み込んでいる module を lib フォルダに入れておく。
・新しい initrd の作成
# find . | cpio --quiet -c -o | gzip -c > ../initrd-new.img
kboot.conf の指定で新しい initrd-new.img を読み込むように手直しします。
initrd.img の修正が手間な場合は、実は FC5 の initrd.img をそのまま使っても
たいていうまくいきます。FC5 の initrd.img は ADDON CD の \target に入って
いるので、これを HDD にコピーして使えます。
●kboot.conf がどこから読み込まれるか
基本的に内蔵 HDD sda でラベル '/' がついたパーティションがあるとそこから
読み込まれます。なので、外付け HDD にインストールした場合でもそのカーネル
呼び出しの設定を sda 側の /etc/kboot.conf に追加する必要があります。
この辺の挙動はまだ完全に把握していないのですが、ごくまれに違うドライブの
kboot.conf も読み込まれていることがあります。
ADDON CD の HowToEnableYourDistro.html に書いてある通りにも必ずしもなら
ないことがあるし。もしかしたら認識順も影響するのかもしれません。
メモリカードとか使って kboot.conf の読み込み位置を固定した方がいいのかも
しれません。
2007/01/09
YPbPr to RGBHV VGA Box で 1080p
PS3 の HD 画面を PC モニタに映すために、
・PS3 を PCモニタに無理やりつなぐまで
・PS3を繋いだPCモニタ画面
・PS3 Linuxの画面を広く使う
こちらで紹介した「YPbPr to RGBHV VGA Box」を使っています。
モニタは UXGA 1600x1200 の EIZO FlexScan L887 です。
(モニタとの相性も結構あると思います)
いままで 1080p (D5) がだめで 720p (D4) を使ってましたが、Linux だとぎりぎり
1080p で描画できることがわかりました。
それぞれのモードでの画面はこんな感じです。
○ D4 720p オーバースキャン 1124x644 (ps3videomode -v 3)

○ D4 720p フルスクリーン 1280x720 (ps3videomode -v 131)

○ D5 1080p オーバースキャン 1688x964 (ps3videomode -v 5)

× D5 1080p フルスクリーン 1920x1080 (ps3videomode -v 133)

D5 1080p のフルスクリーンだと同期が崩れてかなりノイズが入ります。
なぜか同じ 1080p でも PS3 Linux のモード 5 (オーバースキャン 1688x964) だと
同期が取れてきちんと表示できます。
VGAケーブルは L887 付属のものをそのまま使用しています。
残念ながらゲーム画面 (GAME-OS) は常にフルスクリーン相当なので全くだめでした。
ちなみにモニタの解像度は 1600x1200 なのでそもそも 1920pixel も出ません。
オーバースキャンでも 1688pixel あってさらに画面中央部に収まっているので、
実際は画面が若干縮小されています。
つまりモニタの画素とは 1対1 ではなくてアスペクト比も違っています。
だけどこれだけ画面の広さに差があるので使いやすくなりました。
今はこんな感じで繋いでますが、
[PS3] - コンポーネント - [YPbPr to RGBHV VGA Box] - VGA - [L887]
これだと 480i (D1) の表示ができないので、Linux Install の ためだけ にとうとう
VABOX2 も入手してしまいました。ゲームだけやってる分にはいらないんだけど・・
[PS3] - コンポジット - [VABOX2] - VGA - [L887]
・PS3 を PCモニタに無理やりつなぐまで
・PS3を繋いだPCモニタ画面
・PS3 Linuxの画面を広く使う
こちらで紹介した「YPbPr to RGBHV VGA Box」を使っています。
モニタは UXGA 1600x1200 の EIZO FlexScan L887 です。
(モニタとの相性も結構あると思います)
いままで 1080p (D5) がだめで 720p (D4) を使ってましたが、Linux だとぎりぎり
1080p で描画できることがわかりました。
それぞれのモードでの画面はこんな感じです。
○ D4 720p オーバースキャン 1124x644 (ps3videomode -v 3)

○ D4 720p フルスクリーン 1280x720 (ps3videomode -v 131)

○ D5 1080p オーバースキャン 1688x964 (ps3videomode -v 5)

× D5 1080p フルスクリーン 1920x1080 (ps3videomode -v 133)

D5 1080p のフルスクリーンだと同期が崩れてかなりノイズが入ります。
なぜか同じ 1080p でも PS3 Linux のモード 5 (オーバースキャン 1688x964) だと
同期が取れてきちんと表示できます。
VGAケーブルは L887 付属のものをそのまま使用しています。
残念ながらゲーム画面 (GAME-OS) は常にフルスクリーン相当なので全くだめでした。
ちなみにモニタの解像度は 1600x1200 なのでそもそも 1920pixel も出ません。
オーバースキャンでも 1688pixel あってさらに画面中央部に収まっているので、
実際は画面が若干縮小されています。
つまりモニタの画素とは 1対1 ではなくてアスペクト比も違っています。
だけどこれだけ画面の広さに差があるので使いやすくなりました。
今はこんな感じで繋いでますが、
[PS3] - コンポーネント - [YPbPr to RGBHV VGA Box] - VGA - [L887]
これだと 480i (D1) の表示ができないので、Linux Install の ためだけ にとうとう
VABOX2 も入手してしまいました。ゲームだけやってる分にはいらないんだけど・・
[PS3] - コンポジット - [VABOX2] - VGA - [L887]
2007/01/08
PS3 Linux 外付け HDD から YDL を起動する
YDL (Yellow Dog Linux) 動きました。外付けの USB HDD からの起動です。
PS3 の内蔵 HDD にはすでに Fedora Core 5 が入っているので、
これを消さないように YDL と共存させています。
どちらを起動するのかは boot 時に選択することができます。

ちなみに使っている外付け USB HDD は
http://donya.jp/everg/7.1/4547479510686/
こんな感じの IDE + USB アダプタです。
●PC 上で作業
(0) 参考ページ
http://cell.fixstars.com/ps3linux/index.php/Yellow_Dog_Linux_for_PS3
(1) YDL ダウンロード
http://www.terrasoftsolutions.com/resources/ftp_mirrors.shtml
この辺から DVD 用の iso イメージをダウンロードしてメディアに焼いておきます。
yellowdog-5.0-phoenix-20061208-PS3.iso
同時に iso と同じ場所にある otheros.bld もダウンロードします。
(2) ブートローダのインストール準備
FC5 の場合 ( http://ch09144.kitaguni.tv/e327222.html )
と同じ手順でブートローダをインストールします。
http://www.playstation.com/ps3-openplatform/jp/manual.html
ここから otheros.self をダウンロードして USB メモリの
\PS3\otheros に入れます。
同じフォルダに (1) でダウンロードした otheros.bld も入れます。
ファイル名が同じですが、FC5 のときに ADDON CD から取り出した otheros.bld
とは別物です。
FC5 のインストールですでに準備してある場合でも、もう一度作り直す必要が
あります。
\PS3\otheros\otheros.self
\PS3\otheros\otheros.bld
USBメモリでなくても PS3 で認識できるメディアなら何でもかまいません。
●PS3 上での作業
(3) 内蔵 HDD の準備
GAME OS を起動しておきます。
今回の YDL install は本体 HDD に FC5 が入っていることが前提なので、
すでに PS3 のパーティションは切ってあるものとします。
FC5 のインストールやパーティション分割については
http://ch09144.kitaguni.tv/e327222.html
こちらの手順を参考にしてください。
外付け HDD への install であっても、本体の HDD を分割しておかないと
他のシステムのインストールができません。
(4) 他のシステムのインストール
用意した USB メモリを PS3 に差し込んでから
設定 → 本体設定 → 他のシステムのインストール
を実行します。もちろん USBメモリでなくても PS3 で認識できるメディアなら
何でもかまいません。
(5) kboot 起動
設定 → 本体設定 → 優先起動システム → 他のシステム
設定したら電源を切ってから入れ直します。
ここでいったん画面モードが 480i になるので、PC モニタなど 480i の
表示ができないディスプレイを使っている場合は注意してください。
起動の前に
・PS3 に USB キーボードとマウスを忘れずにつないでおいてください。
・インストールする外付けの USB HDD も先に接続しておきます。
・(1) で作った YDL の DVD を挿入しておきます。
(6) YDL インストール
kboot: のプロンプトが出たらすぐに「 install 」と入力します。
内蔵 HDD に FC5 が入っている場合、ここで読み込まれているのは
/dev/sda1 の kboot.conf です。
なので [TAB] キーは使えません。
おそらく timeout が 10秒になっているので黙っていると FC5 が
起動してしまいます。
YDL のインストーラは 720p で起動するので、今度は 720p 以上が表示できる
モニタが必須です。必要ならモニタをつなぎ変えてください。
SD のまま実行できるテキストインストーラもありますが、
こちらはインストール後もウィンドウ環境にならないので今回は見送ります。
(7) インストーラ
日本語を選択できるので、表示されるメッセージにしたがっていけば簡単です。
Partitioning Type の選択では
「Remove all partitions on selected drives and create default layout.」
を選びます。
インストール先を聞かれるので sdf にします。(sda のチェックを外す)
このあと root パスワードなど必要な情報を入力します。
しばらくして開始の確認ダイアログが出るので後はじっと待ちます。
DVD メディアがイジェクトされて完了画面が出たら、メッセージにしたがって
そのまま再起動します。
(8) 一度 FC5 を起動する
再起動後再び kboot: の画面になったら YDL をインストールした USB HDD を
外しておきます。そのまま内蔵 HDD の FC5 を起動します。
kboot では常に /dev/sda1 の kboot.conf が読み込まれるので、
YDL 用の設定追加が必要です。
内蔵 HDD から FC5 が起動したら USB HDD を再び取り付けて mount します。
YDL のパーティション分割をインストーラに任せた場合 /dev/sdf2 が root に
なっているはずです。
# mkdir /mnt/usbhdd
# mount /dev/sdf2 /mnt/usbhdd
(9) kboot.conf の設定をマージする
内蔵 HDD 上の FC5 と YDL を起動時に選択できるように sda1 の
kboot.conf を書き換えます。
# vi /etc/kboot.conf
具体的には /etc/kboot.conf に YDL の kboot.conf の起動設定を加えます。
YDL の kboot.conf は (8) の手順で mount した場合
/mnt/usbhdd/etc/kboot.conf としてアクセスできます。
下記は設定した /etc/kboot.conf の例です。
default=fc5
timeout=30
root=LABEL=/
fc5='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:1'
fc5720p='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:3'
fc51080i='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:4'
fc51080p='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:5'
ydl='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:3 rhgb'
ydl480i='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:1 rhgb'
ydl720p='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:3 rhgb'
ydl1080i='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:4 rhgb'
ydl1080p='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:5 rhgb'
ydltext='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init 3'
ここで書き換える場合の注意点がいくつかあります。
・YDL のデフォルトは 480i ではなく 720p になっています。
・YDL の起動時に参照する initrd.img は、必ず FC5 のものを使ってください。
上記の設定例の場合もともとの YDL の kboot.conf では
initrd=/dev/sdf1:/initrd-2.6.16-20061110.ydl.2ps3.img
だったものを次のように置き換えています。(sdf1 → sda1 に注意)
initrd=/dev/sda1:/boot/initrd.img
(10) YDL 起動
kboot.conf の書き換えが終わったら reboot コマンドで再起動します。
# reboot
起動しなおして kboot: プロンプトになったら、[TAB] やキー入力で ydl を
選択します。
上の例の場合、YDL を 720p で起動するなら ydl と打ち込みます。
kboot: ydl
他にも、ydl480i ydl720p ydl1080i ydl1080p を選択できます。
もし YDL ではなく FC5 を起動したい場合は kboot: で fc5 と入力してください。
この場合 480i で起動します。他にも fc5720p fc51080i fc51080p の選択が
できます。
外付けドライブからの起動では、FC5 の initrd.img を使うのがポイントです。
YDL の initrd-2.6.16-20061110.ydl.2ps3.img を使うと起動時にエラーで
止まってしまいます。
YDL の initrd 内の nash のスクリプトでは USB のドライバ組み込みや
起動待ちが入っていないので、外付けのドライブを root ファイルシステム
として認識できないからです。
それ以外の内容は FC5 の initrd.img とほとんど一緒です。
PS3 の内蔵 HDD にはすでに Fedora Core 5 が入っているので、
これを消さないように YDL と共存させています。
どちらを起動するのかは boot 時に選択することができます。

ちなみに使っている外付け USB HDD は
http://donya.jp/everg/7.1/4547479510686/
こんな感じの IDE + USB アダプタです。
●PC 上で作業
(0) 参考ページ
http://cell.fixstars.com/ps3linux/index.php/Yellow_Dog_Linux_for_PS3
(1) YDL ダウンロード
http://www.terrasoftsolutions.com/resources/ftp_mirrors.shtml
この辺から DVD 用の iso イメージをダウンロードしてメディアに焼いておきます。
yellowdog-5.0-phoenix-20061208-PS3.iso
同時に iso と同じ場所にある otheros.bld もダウンロードします。
(2) ブートローダのインストール準備
FC5 の場合 ( http://ch09144.kitaguni.tv/e327222.html )
と同じ手順でブートローダをインストールします。
http://www.playstation.com/ps3-openplatform/jp/manual.html
ここから otheros.self をダウンロードして USB メモリの
\PS3\otheros に入れます。
同じフォルダに (1) でダウンロードした otheros.bld も入れます。
ファイル名が同じですが、FC5 のときに ADDON CD から取り出した otheros.bld
とは別物です。
FC5 のインストールですでに準備してある場合でも、もう一度作り直す必要が
あります。
\PS3\otheros\otheros.self
\PS3\otheros\otheros.bld
USBメモリでなくても PS3 で認識できるメディアなら何でもかまいません。
●PS3 上での作業
(3) 内蔵 HDD の準備
GAME OS を起動しておきます。
今回の YDL install は本体 HDD に FC5 が入っていることが前提なので、
すでに PS3 のパーティションは切ってあるものとします。
FC5 のインストールやパーティション分割については
http://ch09144.kitaguni.tv/e327222.html
こちらの手順を参考にしてください。
外付け HDD への install であっても、本体の HDD を分割しておかないと
他のシステムのインストールができません。
(4) 他のシステムのインストール
用意した USB メモリを PS3 に差し込んでから
設定 → 本体設定 → 他のシステムのインストール
を実行します。もちろん USBメモリでなくても PS3 で認識できるメディアなら
何でもかまいません。
(5) kboot 起動
設定 → 本体設定 → 優先起動システム → 他のシステム
設定したら電源を切ってから入れ直します。
ここでいったん画面モードが 480i になるので、PC モニタなど 480i の
表示ができないディスプレイを使っている場合は注意してください。
起動の前に
・PS3 に USB キーボードとマウスを忘れずにつないでおいてください。
・インストールする外付けの USB HDD も先に接続しておきます。
・(1) で作った YDL の DVD を挿入しておきます。
(6) YDL インストール
kboot: のプロンプトが出たらすぐに「 install 」と入力します。
内蔵 HDD に FC5 が入っている場合、ここで読み込まれているのは
/dev/sda1 の kboot.conf です。
なので [TAB] キーは使えません。
おそらく timeout が 10秒になっているので黙っていると FC5 が
起動してしまいます。
YDL のインストーラは 720p で起動するので、今度は 720p 以上が表示できる
モニタが必須です。必要ならモニタをつなぎ変えてください。
SD のまま実行できるテキストインストーラもありますが、
こちらはインストール後もウィンドウ環境にならないので今回は見送ります。
(7) インストーラ
日本語を選択できるので、表示されるメッセージにしたがっていけば簡単です。
Partitioning Type の選択では
「Remove all partitions on selected drives and create default layout.」
を選びます。
インストール先を聞かれるので sdf にします。(sda のチェックを外す)
このあと root パスワードなど必要な情報を入力します。
しばらくして開始の確認ダイアログが出るので後はじっと待ちます。
DVD メディアがイジェクトされて完了画面が出たら、メッセージにしたがって
そのまま再起動します。
(8) 一度 FC5 を起動する
再起動後再び kboot: の画面になったら YDL をインストールした USB HDD を
外しておきます。そのまま内蔵 HDD の FC5 を起動します。
kboot では常に /dev/sda1 の kboot.conf が読み込まれるので、
YDL 用の設定追加が必要です。
内蔵 HDD から FC5 が起動したら USB HDD を再び取り付けて mount します。
YDL のパーティション分割をインストーラに任せた場合 /dev/sdf2 が root に
なっているはずです。
# mkdir /mnt/usbhdd
# mount /dev/sdf2 /mnt/usbhdd
(9) kboot.conf の設定をマージする
内蔵 HDD 上の FC5 と YDL を起動時に選択できるように sda1 の
kboot.conf を書き換えます。
# vi /etc/kboot.conf
具体的には /etc/kboot.conf に YDL の kboot.conf の起動設定を加えます。
YDL の kboot.conf は (8) の手順で mount した場合
/mnt/usbhdd/etc/kboot.conf としてアクセスできます。
下記は設定した /etc/kboot.conf の例です。
default=fc5
timeout=30
root=LABEL=/
fc5='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:1'
fc5720p='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:3'
fc51080i='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:4'
fc51080p='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:5'
ydl='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:3 rhgb'
ydl480i='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:1 rhgb'
ydl720p='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:3 rhgb'
ydl1080i='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:4 rhgb'
ydl1080p='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init video=ps3fb:mode:5 rhgb'
ydltext='/dev/sdf1:/vmlinux-2.6.16-20061110.ydl.2ps3 initrd=/dev/sda1:/boot/initrd.img root=/dev/sdf2 init=/sbin/init 3'
ここで書き換える場合の注意点がいくつかあります。
・YDL のデフォルトは 480i ではなく 720p になっています。
・YDL の起動時に参照する initrd.img は、必ず FC5 のものを使ってください。
上記の設定例の場合もともとの YDL の kboot.conf では
initrd=/dev/sdf1:/initrd-2.6.16-20061110.ydl.2ps3.img
だったものを次のように置き換えています。(sdf1 → sda1 に注意)
initrd=/dev/sda1:/boot/initrd.img
(10) YDL 起動
kboot.conf の書き換えが終わったら reboot コマンドで再起動します。
# reboot
起動しなおして kboot: プロンプトになったら、[TAB] やキー入力で ydl を
選択します。
上の例の場合、YDL を 720p で起動するなら ydl と打ち込みます。
kboot: ydl
他にも、ydl480i ydl720p ydl1080i ydl1080p を選択できます。
もし YDL ではなく FC5 を起動したい場合は kboot: で fc5 と入力してください。
この場合 480i で起動します。他にも fc5720p fc51080i fc51080p の選択が
できます。
外付けドライブからの起動では、FC5 の initrd.img を使うのがポイントです。
YDL の initrd-2.6.16-20061110.ydl.2ps3.img を使うと起動時にエラーで
止まってしまいます。
YDL の initrd 内の nash のスクリプトでは USB のドライバ組み込みや
起動待ちが入っていないので、外付けのドライブを root ファイルシステム
として認識できないからです。
それ以外の内容は FC5 の initrd.img とほとんど一緒です。
2007/01/08
PS3 Linux で kboot をハイレゾにする
ブート時の kboot: 画面はいつも SD (480i) です。
ここで起動するカーネルの選択等ができるのですが、
PC モニタなど 480i に対応していない環境では困ることがあります。
画面に何も映らないので結局 timeout を待つ羽目に。
そこで、kboot.conf の先頭に
ps3videomode -v 3
等と書いておくと kboot: プロンプトでも HD に切り替えることが可能です。
(3 は 720p のオーバースキャンの場合)
だけど kboot: プロンプトが出るまでの画面はやっぱり SD です。
timeout 時間は長めにしておいた方が安心です。
例えばこんな感じ
(131 は 720p のフルスクリーン http://ch09144.kitaguni.tv/e327416.html)
ps3videomode -v 131
default=linux
timeout=30
root=LABEL=/
linux='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img video=ps3fb:mode:131'
2007/01/09 追記
kboot: で ps3videomode が使えるのは YDL 版の otheros.bld を install
した場合だけでした。FC5 版のままでは有効になりません。ごめんなさい。
ここで起動するカーネルの選択等ができるのですが、
PC モニタなど 480i に対応していない環境では困ることがあります。
画面に何も映らないので結局 timeout を待つ羽目に。
そこで、kboot.conf の先頭に
ps3videomode -v 3
等と書いておくと kboot: プロンプトでも HD に切り替えることが可能です。
(3 は 720p のオーバースキャンの場合)
だけど kboot: プロンプトが出るまでの画面はやっぱり SD です。
timeout 時間は長めにしておいた方が安心です。
例えばこんな感じ
(131 は 720p のフルスクリーン http://ch09144.kitaguni.tv/e327416.html)
ps3videomode -v 131
default=linux
timeout=30
root=LABEL=/
linux='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img video=ps3fb:mode:131'
2007/01/09 追記
kboot: で ps3videomode が使えるのは YDL 版の otheros.bld を install
した場合だけでした。FC5 版のままでは有効になりません。ごめんなさい。
2007/01/07
PS3 Linux Debian 設定メモ
インストール時にデスクトップ環境を入れなかったので後から設定してみました。
◎ X のインストール
パッケージをインストールします。画面モードの選択がありますが、
あとで書き換えるので適当でよいです。
# apt-get install xorg
# apt-get install xserver-xorg-video-all
# apt-get install xserver-xorg-input-all
◎ xorg.conf の書き換え
設定ファイルを書き換えます。
# cd /etc/X11
# mv xorg.conf xorg.conf-backup
# cp xorg.conf-backup xorg.conf
# vi xorg.conf
・「Section "Device"」の Driver を "fbdev" にします。
Driver "fbdev"
・「Section "Screen"」を次のように書き換えます。
Identifier "Default Screen"
Device "Generic Video Card"
Monitor "Generic Monitor"
DefaultDepth 24
DefaultFbBpp 32
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
これで一応 startx できるようになりました。起動すると xterm が1つ。
◎GNOME install
設定がうまくいったので GNOME 入れます。
# apt-get install gnome
ps3videomode が動かないので、画面モード変更は kboot.conf で行います。
/dev/sda1 の /etc/kboot.conf 側で画面モードの設定をします。
うちは 720p なので、3 + 128 = 131 に設定しています。
default=debian720
timeout=20
root=LABEL=/
debian='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img '
debian480='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img video=ps3fb:mode:129'
debian720='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img video=ps3fb:mode:131'
ケーブル繋ぎ変えて再起動。
720p で起動し、gdm でログインできるようになりました。
◎日本語入力等
# apt-get install scim-anthy
あとはウィンドウ上で各種設定など。
◎ X のインストール
パッケージをインストールします。画面モードの選択がありますが、
あとで書き換えるので適当でよいです。
# apt-get install xorg
# apt-get install xserver-xorg-video-all
# apt-get install xserver-xorg-input-all
◎ xorg.conf の書き換え
設定ファイルを書き換えます。
# cd /etc/X11
# mv xorg.conf xorg.conf-backup
# cp xorg.conf-backup xorg.conf
# vi xorg.conf
・「Section "Device"」の Driver を "fbdev" にします。
Driver "fbdev"
・「Section "Screen"」を次のように書き換えます。
Identifier "Default Screen"
Device "Generic Video Card"
Monitor "Generic Monitor"
DefaultDepth 24
DefaultFbBpp 32
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
これで一応 startx できるようになりました。起動すると xterm が1つ。
◎GNOME install
設定がうまくいったので GNOME 入れます。
# apt-get install gnome
ps3videomode が動かないので、画面モード変更は kboot.conf で行います。
/dev/sda1 の /etc/kboot.conf 側で画面モードの設定をします。
うちは 720p なので、3 + 128 = 131 に設定しています。
default=debian720
timeout=20
root=LABEL=/
debian='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img '
debian480='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img video=ps3fb:mode:129'
debian720='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img video=ps3fb:mode:131'
ケーブル繋ぎ変えて再起動。
720p で起動し、gdm でログインできるようになりました。
◎日本語入力等
# apt-get install scim-anthy
あとはウィンドウ上で各種設定など。
2007/01/07
PS3 Linux の dual boot(?)
USB の外付け HDD に Linux を install してみました。
内蔵 HDD には Fedora Core 5 が入ったままなので切り替えて試しています。
外付けの方には Debian(etch) を入れてみました。
やった手順のメモ
(1) FC5 install
内蔵 HDD への install 手順は下記ページに書いたものそのままです。
http://ch09144.kitaguni.tv/e327222.html
kboot: で入力できる install-fc コマンドは、HDD のパーティションが
からっぽでないとうまく動かないので注意です。
すでに一度内蔵 HDD にインストールしたことがある場合、
kboot: で「sh」とタイプして shell に降りてから fdisk でパーティションを
削除しておくとうまくいきます。
kboot: sh
# fdisk /dev/sda
(2) 外付け HDD に PS3 Linux install
http://ch09144.kitaguni.tv/e332153.html
こちらに書いた手順そのままです。
外付け HDD が /dev/sdf で認識されていたので、パーティションを切るときに
/dev/sdf を選択します。
(3) 再起動時の注意
(2) の install が完了し、再起動する場合は注意が必要です。
最初の kboot は内蔵 HDD (/dev/sda) 側のものであり、こちらの設定
(/dev/sda1 の /etc/kboot.conf) が参照されます。
ところがここから起動をかけると USB HDD 側 (/dev/sdf1) が root として
mount されます。
つまり FC5 側 HDD のカーネルで Debian 環境が起動します。
もちろん USB HDD をはずしておけば常に内蔵 HDD 側 (FC5) が root です。
(4) kboot での選択
内蔵 HDD 側の kboot.conf を次のように書き換えています。
kboot: 画面で [TAB] を押すごとに debian → fc5 → linux のように
選択できます。
default=linux
timeout=20
root=LABEL=/
linux='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img '
fc5='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1'
debian='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sdf1'
解像度も選択できるようにするとこんな感じでしょうか。
default=linux
timeout=20
root=LABEL=/
linux='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img '
fc5='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1'
fc5480='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:129'
fc5720='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:131'
debian='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sdf1'
debian480='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sdf1 video=ps3fb:mode:129'
debian720='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sdf1 video=ps3fb:mode:131'
これはたまたまうまくいっていますが、USB HDD は環境によっては sdf にならない
こともあると思うのでご注意ください。
内蔵 HDD には Fedora Core 5 が入ったままなので切り替えて試しています。
外付けの方には Debian(etch) を入れてみました。
やった手順のメモ
(1) FC5 install
内蔵 HDD への install 手順は下記ページに書いたものそのままです。
http://ch09144.kitaguni.tv/e327222.html
kboot: で入力できる install-fc コマンドは、HDD のパーティションが
からっぽでないとうまく動かないので注意です。
すでに一度内蔵 HDD にインストールしたことがある場合、
kboot: で「sh」とタイプして shell に降りてから fdisk でパーティションを
削除しておくとうまくいきます。
kboot: sh
# fdisk /dev/sda
(2) 外付け HDD に PS3 Linux install
http://ch09144.kitaguni.tv/e332153.html
こちらに書いた手順そのままです。
外付け HDD が /dev/sdf で認識されていたので、パーティションを切るときに
/dev/sdf を選択します。
(3) 再起動時の注意
(2) の install が完了し、再起動する場合は注意が必要です。
最初の kboot は内蔵 HDD (/dev/sda) 側のものであり、こちらの設定
(/dev/sda1 の /etc/kboot.conf) が参照されます。
ところがここから起動をかけると USB HDD 側 (/dev/sdf1) が root として
mount されます。
つまり FC5 側 HDD のカーネルで Debian 環境が起動します。
もちろん USB HDD をはずしておけば常に内蔵 HDD 側 (FC5) が root です。
(4) kboot での選択
内蔵 HDD 側の kboot.conf を次のように書き換えています。
kboot: 画面で [TAB] を押すごとに debian → fc5 → linux のように
選択できます。
default=linux
timeout=20
root=LABEL=/
linux='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img '
fc5='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1'
debian='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sdf1'
解像度も選択できるようにするとこんな感じでしょうか。
default=linux
timeout=20
root=LABEL=/
linux='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img '
fc5='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1'
fc5480='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:129'
fc5720='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sda1 video=ps3fb:mode:131'
debian='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sdf1'
debian480='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sdf1 video=ps3fb:mode:129'
debian720='/boot/vmlinux-2.6.16 initrd=/boot/initrd.img root=/dev/sdf1 video=ps3fb:mode:131'
これはたまたまうまくいっていますが、USB HDD は環境によっては sdf にならない
こともあると思うのでご注意ください。
2007/01/02
PS3 Linux debian installメモ
Debian のインストール手順が「ほげめも」さんのところに公開されていたので
ちょっとだけいれてみました。install 作業自体には特にはまりも何もなく
下記の参考ページそのまんまです。なのであんまり役に立たないメモです。
http://www.keshi.org/blog/2006/12/debian_installer_for_ps3.html
http://www.keshi.org/moin/moin.cgi/PS3/Debian/Installer
インストール作業はコンポジットの普通のビデオ端子接続で行いました。
PS3 につながる USBキーボードが必要です。
(A) kboot の install と準備
最初は Fedora core 5 の install 手順と同じです。
http://ch09144.kitaguni.tv/e327222.html
の (1)~(9) まで行っておきます。
すでに FC5 を install した状態であれば上記の (1)~(9) までの手順は
スキップできます。
(B) install CD-ROM の用意
下記ページ
http://www.keshi.org/moin/moin.cgi/PS3/Debian/Installer
のリンク先にある
debian-installer-ps3pf-20061225.iso
をダウンロードして CD-ROM を作っておきます。
(C) 作成した CD-ROM を入れた状態で起動
kboot: のプロンプトが表示されたら
install [Enter]
と入力します。
(D) debian インストール
debian のインストーラが起動するのでそのまま画面のメッセージに
従うだけです。日本語を選択できます。下記のメモは一例なので、
環境によって変更してください。
(インストーラは [TAB]で選択して [Enter])
・言語選択
Japanese 日本語
・キーボード選択
日本 106キー
・ネットワークの検出
DHCP自動検出
・ホスト名設定
・ドメイン入力
・アーカイブミラー選択
日本
・サーバー
デフォルト
・プロキシ
無し
・ディスクパーティショニング
ディスク全体を使う
・SCSI2 sda 47.1GB SCEI Sec:Master-3
・すべてのファイルを1つのパーティションに
1 基本 46.5GB B f ext3 /
5 論理 600.4MB f スワップ
・パーティショニングの終了とディスクへの変更の書き込み
・ディスクに変更を書き込みますか?
はい
・「NewWorld ブートパーティションは見つかりませんでした。
yaboot ブートローダは少なくとも 819200バイトのサイズの HFS Macintosh
ファイルシステムを使った Apple_Bootstrap パーティションを必要とします。
メニューに戻ってパーティショニングを再開しますか?」
と表示されたら「いいえ」
・「PowerPC PReP パーティションが見つかりませんでした。
メニューに戻ってパーティショニングを再開しますか?」
と表示されたら「いいえ」
・rootパスワード設定
・ユーザー設定
・インストールするカーネル
linux-image-2.6.16-1-ps3pf
・インストールするソフトの選択
デスクトップ環境
* ウェブサーバー
印 サーバー
DNSサーバー
* ファイルサーバー
メールサーバー
* SQLデータベース
ラップトップ
* 標準システム
デスクトップ環境を入れると最初に X が起動してしまう。
PS3 の画面モードでは表示されないので最初は入れないで必要に応じて
構築した方がよさそう。
・Samnba Server
ワークグループ/ドメイン名設定
・インストール完了
・再起動
(E) debian 起動
デスクトップ環境を入れると最初に X が起動してしまう。
480i だと表示されないので、とりあえず CTRL + ALT + F1 で console に降りる。
root でログイン。
テレビ画面は厳しいので、とりあえず
# apt-get install ssh
これで PC の putty 経由で作業できるようになったので、以後そちらから。
samba にユーザー登録 (ユーザー名が handle とすると)
# smbpasswd -a handle
設定書き換え
# vi /etc/samba/smb.conf
[homes] の中の「writable = no」を yes に書き換える
セーブしたら
# /etc/init.d/samba restart
これで PC から samba でファイル転送できるようになったので、
リモートで環境設定とか。
CELL 用の SDK とか rpm で配布されているので、そのままでは install できなくて
変換が必要なようです。debian に無いパッケージの依存とか、もしあればそれらも
用意しないといけないので、PS3 らしい環境にするにはちょっとすんなりとは
いかないみたいです。
ちょっとだけいれてみました。install 作業自体には特にはまりも何もなく
下記の参考ページそのまんまです。なのであんまり役に立たないメモです。
http://www.keshi.org/blog/2006/12/debian_installer_for_ps3.html
http://www.keshi.org/moin/moin.cgi/PS3/Debian/Installer
インストール作業はコンポジットの普通のビデオ端子接続で行いました。
PS3 につながる USBキーボードが必要です。
(A) kboot の install と準備
最初は Fedora core 5 の install 手順と同じです。
http://ch09144.kitaguni.tv/e327222.html
の (1)~(9) まで行っておきます。
すでに FC5 を install した状態であれば上記の (1)~(9) までの手順は
スキップできます。
(B) install CD-ROM の用意
下記ページ
http://www.keshi.org/moin/moin.cgi/PS3/Debian/Installer
のリンク先にある
debian-installer-ps3pf-20061225.iso
をダウンロードして CD-ROM を作っておきます。
(C) 作成した CD-ROM を入れた状態で起動
kboot: のプロンプトが表示されたら
install [Enter]
と入力します。
(D) debian インストール
debian のインストーラが起動するのでそのまま画面のメッセージに
従うだけです。日本語を選択できます。下記のメモは一例なので、
環境によって変更してください。
(インストーラは [TAB]で選択して [Enter])
・言語選択
Japanese 日本語
・キーボード選択
日本 106キー
・ネットワークの検出
DHCP自動検出
・ホスト名設定
・ドメイン入力
・アーカイブミラー選択
日本
・サーバー
デフォルト
・プロキシ
無し
・ディスクパーティショニング
ディスク全体を使う
・SCSI2 sda 47.1GB SCEI Sec:Master-3
・すべてのファイルを1つのパーティションに
1 基本 46.5GB B f ext3 /
5 論理 600.4MB f スワップ
・パーティショニングの終了とディスクへの変更の書き込み
・ディスクに変更を書き込みますか?
はい
・「NewWorld ブートパーティションは見つかりませんでした。
yaboot ブートローダは少なくとも 819200バイトのサイズの HFS Macintosh
ファイルシステムを使った Apple_Bootstrap パーティションを必要とします。
メニューに戻ってパーティショニングを再開しますか?」
と表示されたら「いいえ」
・「PowerPC PReP パーティションが見つかりませんでした。
メニューに戻ってパーティショニングを再開しますか?」
と表示されたら「いいえ」
・rootパスワード設定
・ユーザー設定
・インストールするカーネル
linux-image-2.6.16-1-ps3pf
・インストールするソフトの選択
デスクトップ環境
* ウェブサーバー
印 サーバー
DNSサーバー
* ファイルサーバー
メールサーバー
* SQLデータベース
ラップトップ
* 標準システム
デスクトップ環境を入れると最初に X が起動してしまう。
PS3 の画面モードでは表示されないので最初は入れないで必要に応じて
構築した方がよさそう。
・Samnba Server
ワークグループ/ドメイン名設定
・インストール完了
・再起動
(E) debian 起動
デスクトップ環境を入れると最初に X が起動してしまう。
480i だと表示されないので、とりあえず CTRL + ALT + F1 で console に降りる。
root でログイン。
テレビ画面は厳しいので、とりあえず
# apt-get install ssh
これで PC の putty 経由で作業できるようになったので、以後そちらから。
samba にユーザー登録 (ユーザー名が handle とすると)
# smbpasswd -a handle
設定書き換え
# vi /etc/samba/smb.conf
[homes] の中の「writable = no」を yes に書き換える
セーブしたら
# /etc/init.d/samba restart
これで PC から samba でファイル転送できるようになったので、
リモートで環境設定とか。
CELL 用の SDK とか rpm で配布されているので、そのままでは install できなくて
変換が必要なようです。debian に無いパッケージの依存とか、もしあればそれらも
用意しないといけないので、PS3 らしい環境にするにはちょっとすんなりとは
いかないみたいです。