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

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 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 版のままでは有効になりません。ごめんなさい。