日別アーカイブ: 2006年12月16日

PS3 Linux をサーバーにしてみる

Playstation3 に Linux が入ったので、お手軽なLAN用サーバーとして使えます。
常時運用するにはちょっと発熱が心配なのが難点だけど。
ちなみにファンの音は意外にも静かです。

なお、ここでの設定はインターネットのアクセスには間に必ずルータが存在しており、
外部向けにはサーバーリソースは公開しないものと考えています。

● PS3にLinuxを入れるまでの手順
● PS3 Linux で最初に行う設定
● PS3 Linux を使える環境にしてみる
の続きです。20061208 版 ADDON CD で Fedora core5 をフルインストールした状態を
想定しています。

(1) ホスト名

PC名(hostname) がきちんと設定されていなかったので再設定しました。
確認は、コマンドライン上で hostname を実行します。

 $ hostname

以後の設定は X (Gnome) 上です。

 デスクトップ → 管理 → ネットワーク → DNS → ホスト名

再起動(reboot)で有効になります。

(2) サービスを起動してみる

 デスクトップ → 管理 → サーバ設定 → サービス

最初に root のパスワードを聞かれます。
現在のランレベルが3になっているので、メニューの「ランレベルの編集」
から「ランレベル3」を選択。

左下の一覧から起動するサービスにチェックを入れます。

 httpd
 mysqld
 smb

の3つにチェックを入れて [保存] しました。
その場で個別に起動するには、選択してから [開始] を押します。

それぞれ選択して [開始] を押して、サービスを起動しておきます。

(3) ブラウザで開いてみる

LAN 上の他の PC からブラウザで

 http://<設定したPS3のホスト名>/

を開いてみます。
例えばホスト名を handleps3 に設定した場合は URL は

 http://handleps3/

になります。
httpd が起動していれば「Fedora Core Test Page」が見えます。
これで php や MySQL を使った Wiki 等のツールを動かすことができるように
なりました。

(4) Samba の設定

この Samba の設定でファイルサーバーとして使えるようになります。

 デスクトップ → 管理 → サーバ設定 → Samba

を開きます。メニューから

 プレファレンス → Sambaのユーザー → ユーザーの追加

・UNIXユーザー名で自分のアカウントを選択
・Windowsユーザー名に任意のユーザー名を登録
・Sambaのパスワードを登録

これで LAN 上の他の Windows PC から、PS3 Linux にアクセスして自分の
ホームディレクトリを開くことができます。

例えば Windows PC の explorer 上から

 \\<PS3ホスト名>

と入力します。(例えば \\handleps3 など)
\\IPアドレス でも構いません。
自分のユーザーのホームディレクトリが見えていれば成功です。
これでファイルのやりとりは Explorer で簡単にできるようになりました。

(5) PuTTY でリモートでコマンドライン作業を行う

今までは直接 PS3 Linux のコンソールから作業していましたが、
環境によってはリモートでコマンド操作したほうが楽な場合があります。
上記のサーバーなど各種設定も、実際には X の Window 上でやらずに
コマンドラインから設定することも可能です。

TV の解像度が小さかったり、マウスやキーボードの数が足りずに他の PC と共有
していたりする場合はこちらの方が使いやすいかもしれません。

Windows PC 側に PuTTY をインストールします。
http://yebisuya.dip.jp/Software/PuTTY/
こちらの日本語版を使わせてもらいました。

PuTTY を起動し、ホスト名に PS3 Linux に設定したホスト名前か IP アドレスを
入力します。プロトコルは SSH を選択します。

Security Alert ダイアログが表示されるので Y (はい) を選択します。

login as: プロンプトが表示されるので、PS3 Linux のユーザーでログインできます。

日本語をきちんと表示させるためには、接続する前に PuTTY の左側にある設定から

 ウィンドウ→変換

を選択し、受信データの文字セットを「UTF-8(CJK)」にしておきます。

(6) 自分のユーザーの HOME に html を置けるようにする

httpd.conf を書き換えます。

 # vi /etc/httpd/conf/httpd.conf

httod.conf の中の「UserDir disable」の先頭に # をつけます。(コメントアウト)
その下にある「#UserDir public_html」の先頭の # を取ります。

編集後
   #UserDir disable
   UserDir public_html

書き換えたら httpd に設定を読み込ませます。

 # /etc/init.d/httpd reload

これで自分のユーザーのディレクトリに public_html フォルダを作って、
その中に html ファイルを置けるようになります。

例えばユーザー名が wheel なら /home/wheel/public_html です。
ここに index.html を作っておくと

 http://handleps3/~wheel

のように指定して開くことができるようになります。
(ホスト名が handleps3 の場合です)

(7) Wiki を設置してみる

DokuWiki を install してみます。
http://wiki.splitbrain.org/wiki%3ADokuWiki

今回は WindowsPC 上で作業しています。
まず
http://www.splitbrain.org/projects/dokuwiki
ここから
dokuwiki-2006-11-06.tgz
をダウンロードします。

Explorer で PS3 Linux のフォルダを開いて、ダウンロードしたファイルを
自分のホームディレクトリにコピーします。

PuTTY で PS3 Linux にログインします。

自分のホームディレクトリに public_html フォルダを作って、
dokuwiki を展開します。

 $ cd
 $ mkdir public_html
 $ cd public_html
 $ tar -zxvf ../dokuwiki-2006-11-06.tgz

cd [Enter] で自分の Home ディレクトリに移動、[Tab] キーでファイル名補完
ができることを覚えておくと便利です。

展開してできたディレクトリ名をわかりやすいものに変えます。

 $ mv dokuwiki-2006-11-06 wiki

Windows PC のブラウザで、次のように指定してインストーラを起動します。

 http://handleps3/~wheel/wiki/install.php

インストーラは日本語に対応しているので、右上のプルダウンメニューで ja を
選択してください。

最初はパーミッションのエラーでいっぱい怒られるので、メッセージに従って
記のようにパーミッションを1つ1つ設定していきます。
chmod 777 は誰でも読み書きできるように設定することを意味しています。

 $ cd
 $ cd public_html/wiki
 $ chmod 777 conf data
 $ chmod 777 data/pages
 $ chmod 777 data/attic
 $ chmod 777 data/media
 $ chmod 777 data/meta
 $ chmod 777 data/cache
 $ chmod 777 data/locks

インストーラの [再読込] で確認してエラーが無くなれば次に進みます。
必要な項目を入力したら install.php を削除するよう促されるので、

 /home/wheel/public_html/install.php を削除しておきます。

 $ rm install.php

これで完了です。

 http://handleps3/~wheel/wiki

にアクセスすると Wiki としてページを自由に編集できます。

もはや単なる Linux マシンです。

PS3 Linux を使える環境にしてみる

● PS3にLinuxを入れるまでの手順
● PS3 Linux で最初に行う設定
の続きです。
なお ADDON CD の 20061208 版で Fedora core5 をインストールした状態を
想定しています。

(1) 一般ユーザーの追加

root ユーザーによる作業は必要最小限にして、普段は一般ユーザーのアカウント
を使います。root ログインしたらユーザーの追加を行います。

 # adduser <ユーザー名>

追加しただけだとパスワードが無いのでログインできません。
次にパスワードを登録します。

 # passwd <ユーザー名>

たとえばユーザー名が「wheel」なら

 # adduser wheel
 # passwd wheel

となります。
これで最初の login: 画面で登録したユーザー名でログインできるようになります。
以後 root でログインする必要はありません。
一旦 exit して、新しいユーザーでログインしてみます。

# exit

前にも書きましたが「#」は root ユーザーのプロンプトを意味します。
たとえば説明で「# exit 」と書いてある場合は

 exit [Enter]

の部分をキータイプしてください、という意味です。
root 権限での作業と区別するために、一般ユーザーでログインした場合の
コマンド入力用プロンプトを「$」で表記します。

 $ startx

例えばこのように書いてある場合、一般ユーザーのプロンプトで startx コマンド
を実行することを意味します。

(2) 一般ユーザーで作業する場合の注意

一般ユーザーでログインした場合に各種設定を行おうとすると root のパスワード
を聞かれることがあります。

またコマンドライン上で root 権限が必要な作業を行うには su コマンドを使います。

$ su

root パスワードを入力すると一時的に root ユーザーとして作業できます。
exit コマンドや Ctrl+D で元のユーザーに戻ります。

一般ユーザー経由で root になった場合は /sbin にパスが通っていないので、
コマンドの実行ができない場合はフルパスで指定してみてください。
例えば ifconfig や boot-game-os が /sbin にあります。

boot-game-os を実行するには su で root になったあとに

 # /sbin/boot-game-os

とフルパスで呼び出す必要があります。

(3) X (Gnome) を日本語に設定してみます

一般ユーザーでログインしたら、startx で X を起動してから次の設定をします。
設定時に root パスワードが必要です。

 Administration → Language → Japanese(日本語)

一度 Log Out して再び X を起動すると、メニューや設定やら
ほとんどのものが日本語になっています。

また、[Ctrl] + [SPACE] や [半/全]キー で日本語入力もできるようになります。

フルインストールなので、最初からかなりの量のアプリケーションが入っている
ようです。ただ各アプリの起動は少々またされますね。

(4) X 上でコマンドライン作業をするには

メニューから GNOME端末 を呼び出します。

 アプリケーション → アクセサリ → GNOME端末

(5) キーボードの再設定

X (Gnome) を日本語にして起動しなおしたら、キーボードの配列がまた英語に
戻っていました。GNOME端末 を起動して、コマンドラインからまた配列変更を
行います。

$ system-config-keyboard

root パスワードが必要です。日本語を選びなおすとキーボードの配列が正常に
なります。

(6) Windows とファイルやり取り

Windows でも使用している NAS (玄箱) の samba につないでみます。

 場所 → サーバへ接続

サービスの種類を「Windows共有」にして、サーバー名を入力して [接続]
explorer のように簡単にアクセスできました。

なお、PS3 Linux 自身をファイルサーバーとして使うことができます。
サーバー設定は次の「PS3 Linux をサーバーにしてみる」で説明します。

PS3 Linux で最初に行う設定

Fedora core 5 を PS3 にインストールして、
login できるようになったらまず最初にやっておきたい設定です。
普段 debian 系ばかり使っていたので実はかなり不慣れです。
間違ってるかもしれないけど調べながら行った設定をまとめてみます。

(1) キーボードの種類設定

インストール時にも一度設定画面が出ますが、そのまま進めると英語キーボードの
配列になっています。日本語キーボードを繋いでいる場合はキー配列が異なっている
ので設定変更します。
コマンドラインから

 # system-config-keyboard

と入力して、一覧から「Japanese」を選びます。
[Tab]キーを押すと「OK」の位置にカーソルが移動するので [Enter] で確定します。

なお「#」は一般的に root ユーザーのコマンド入力プロンプトをあらわします。
「# system-config-keyboard」と表記されている場合実際にキータイプするのは
system-config-keyboard [Enter] です。

(2) コマンドラインで画面の解像度変更テスト

参考ページ
http://cell.fixstars.com/ps3linux/index.php/PS3_Linux%E3%82%92%E4%B8%80%E9%80%9A%E3%82%8A%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B

TV が画面モードに対応しているか確認する意味も含めて、コマンドラインで
画面モードを切り替えることができます。
たとえば 720p ならモード番号が 3 なので次のように実行します。

 # ps3videomode -v 3

もし失敗して何も表示されなくなったら、画面が見えなくても

 # ps3videomode -v 0

または

 # reboot

をがんばってタイプします。
他にも

1=480i
2=480p
3=720p
4=1080i
5=1080p

等があります。モード番号は D端子番号と微妙に違うので注意です。
常に指定したモードで起動したい場合は、次に説明するように
kboot.conf を書き換える必要があります。

(3) 最初からハイレゾで起動する場合の設定

参考ページ
http://cell.fixstars.com/ps3linux/index.php/PS3_Linux%E3%82%92%E9%AB%98%E8%A7%A3%E5%83%8F%E5%BA%A6%E3%81%A7%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B

上記ページの設定どおりに /etc/kboot.conf を書き換えて、起動時から
ハイレゾになるよう設定できます。
HD 対応テレビに D端子やコンポーネント、HDMI 接続している場合はお勧め。
そうでない場合(ビデオ入力で繋いでる場合等)は設定しないでください。

たとえば 720p で起動したいなら video=ps3fb:mode:3 を追加して下記のように
なります。

linux=”/boot/vmlinux-2.6.16 initrd=/boot/initrd.img video=ps3fb:mode:3″

この設定は再起動してから有効になります。
失敗すると表示されなくなるかもしれないので慎重に。
使用できる画面モードはあらかじめコマンドラインで確かめておいてください。

この設定を行っても、起動中 kboot の最初までは 480i で表示され、
その後画面モードが切り替わります。
知らないと最初設定ミスかな、と思いますがしばらく待ってみてください。

上記参考ページでは書き換えのために vi を使っていますが、操作方法が一般の
Windows のテキストエディタと違います。最初に簡単に使い方を覚えておく
必要があります。

・一例(大文字小文字の区別あり)
強制終了 [:][q][!][ENTER]
セーブ終了 [Z][Z]
カーソル移動 [h][j][k][l]
文字挿入モードに切り替え [i]
文字挿入モード終了 [ESC]
※挿入モードではコマンド入力できないのでモードの終了が必要

(4) X (Window)の起動

USB マウスが必要です。あらかじめ繋いでおいてください。
また X を使う場合は 720p 以上の画面モードで使うことをお勧めします。
もちろん 480i/480p でも使えますが、ダイアログが画面内に完全に収まらない
ことがあります。

 # startx

コマンドラインで上記のように実行すると X (Gnome)が立ち上がります。
起動時必ず「no ‘/dev/pmu’ device found」と表示されますがとりあえず無視します。

X を終了するには、画面上部のメニューから

 System → Log Out root…

を選びます。終了するとまた黒バックのテキストのコマンドラインに戻ります。

(5) ネットワーク設定

デフォルトではまだネットワークにつながっていません。
ネットワーク設定を行います。

◎その1 720p以上

X を起動した後下記のように設定します。ただしこの方法だと画面解像度が 720p
以上でないとダイアログのボタンが押せません。
TV のビデオ接続など 480i/480p の場合は「◎その2」の方法をお試しください。

Gnome の画面上部のメニューから
 System → Administration → Network

Devices のタブに何も表示されていないので、ここで [New] ボタンを押す。

 Ethernet Connection → Forward → Gelic Network Driver(eth0) → Forward

・DHCP の場合(通常はこれ)
 デフォルトのまま特に変更は不要です。
 「Automatically obtaion IP address ~ [dhcp]」と
 「Automatically obtaion DNS ~」が選択されているはずです。
 ホスト名は必要に応じて設定してください。

・手動設定の場合
 「Statically~」を選択して自分で IP アドレスなどを登録します。

最後に Forward して [Apply] します。
最初の「Devices」のタブに eth0 が表示され、profile のチェックが入っていれば
大丈夫です。Network のウィンドウをセーブ終了してください。

◎その2 480i/480p の場合

まず X を起動しないでコマンドラインから

 # system-config-network

を実行します。Ethernet が選択されている状態で [Tab] を押し、カーソルが
Configure にきたら [Enter] します。

Name、Device 共に「eth0」と書き込んで、Use DHCP の上でスペースを押して
チェック「*」を入れます。または直接 IP Address を書き込んでください。

 [Tab] → OK → [Tab] → Exit

で終了します。

次に startx コマンドで X を起動します。

 # startx

起動したら Gnome の画面上部のメニューから
 System → Administration → Network

を選択します。Device のタブに表示されている一覧に eth0 がありますが、
左端の Profile にチェックが入っていないので On にしてください。

必要ならホスト名もここで設定できます。
Device のタブで選択してから Edit ボタンを押します。

ダイアログが画面外にはみ出ていますがウィンドウ上部のメニューは
呼び出せるので、セーブして終了してください。

「◎その1」または「◎その2」の設定ができたら、X を終了して一度 reboot します。

(6) ネットワーク設定の確認

ネットワーク設定を行った後、再起動したらネットにつながっているかどうか
確認します。

root でログインしたら ifconfig を実行します。

 # ifconfig

eth0 が表示され、inet addr に IP address が表示されていることを確認します。
lo しか表示されていない場合はもう一度設定を確認してみてください。

きちんとネットワークにつながれば、X を立ち上げて普通にブラウザ (Firefox)
が使えるようになっているはずです。

PS3 に Linux を入れるまでの手順

一度インストールしたのですが、ファーム v1.31 でまた Fedora core 5 を
インストールし直してみました。その手順を書きます。
(フルインストールはこれで3度目)

参考ページ
http://cell.fixstars.com/ps3linux/index.php

●PC 上の作業

(1) Fedora core 5 PPC の用意
http://fedora.jp/modules/download/
を参考に
http://ftp.iij.ad.jp/pub/linux/fedora/core/5/ppc/iso/
この辺から
 FC-5-ppc-DVD.iso
を落として DVD に iso イメージで焼いておく。

(2) ADDON CD
ftp://ftp.uk.linux.org/pub/linux/Sony-PS3/
あたりから
 CELL-Linux-CL_20061208-ADDON.iso
を落として CD に iso イメージで焼いておく。

(3) マニュアルを見てみる

作成した ADDON CD の中身を見ると各種ドキュメントが入っているので
参考になります。CDドライブを Q: とすると

 Q:\README-j.txt
 Q:\doc\index.html

など。たとえば Linux インストール方法も
Q:\doc\HowToEnableYourDistro.html
を読むと書いてあります。

(4) ブートローダ
http://www.playstation.com/ps3-openplatform/jp/manual.html
ここから
 otheros.self
をダウンロードして、何らかの USB メモリやフラッシュカードなど、
PS3 で読めるメディアに書き込んでおきます。
私は iPod Shuffle (初代) を USB メモリ代わりに使用しました。
USBメモリのドライブを D: とすると、D:\PS3\otheros に入れておきます。

 D:\PS3\otheros\otheros.self

こんな感じ。

同じように (2) で作成した ADDON CD 内の Q:\kboot\otheros.bld も
USB メモリの同じフォルダに入れておきます。

 D:\PS3\otheros\otheros.bld

●PS3の作業

バックアップなど時間がかかるものもあるので、PC 作業と平行してやって
おくと良いです。

(5) HDDバックアップ
 設定→本体設定→バックアップユーティリティ→バックアップ

USB メモリや SDカードなど、PS3 で認識できるメディアにバックアップできます。
ゲームのインストールデータなど巨大なものがあると大変なので、必要なもの
以外は消しておいた方がよいです。
自分は未使用で使っていないマイクロドライブ(1GB)があったので
これにバックアップを取りました。
60GBモデルなので 直接 CF カードスロットで読み書きできました。

(6) フォーマット
 設定→本体設定→フォーマットユーティリティ→ハードディスクのフォーマット

 必ず「カスタム」を選択
 ・他のシステムに 10GBを割り当てる
 ・PS3に10GBを割り当てる
のどちらかを選ぶ。
クイックフォーマットで大丈夫でしょう。

自分は 60GB モデルを使っていて Linux メインにするつもりなので
PS3に10GBを割り当てました。これで GAME 10G、Linux 50G になるはずです。

(7) リストア
 設定→本体設定→バックアップユーティリティ→リストア(復元)

これでパーティションを切りなおしてフォーマットしても一応元の状態に
戻るはずです。

(8) 他のシステムのインストール
USBメモリ(自分の場合 iPod Shuffle)をさしてから

 設定→本体設定→他のシステムのインストール

見つからないときは USB の認識待ちか、(4) で作ったフォルダが間違っているか、
PS3で認識できない USBメモリか、等が考えられます。

このときコントローラを USB の有線で繋ぐように言われます。

(9) kboot 起動

まずPS3側にUSBキーボードを接続しておきます。

 設定→本体設定→優先起動システム→他のシステム

他のシステムに設定したら一度電源を切って入れなおします。
これで PS3 のゲーム画面にならずに kboot が起動します。
しばらく待つとペンギンが2匹で kboot のプロンプトの入力待ちになります。
このとき画面モードが必ず 480i になるので注意です。

(10) FC5 install

kboot: の画面で 「install-fc sda」と入力します。
(1) で作った DVD を入れて「y」
その後メッセージに従いフルインストール「2」を選択して
最後の確認にさらに「y」
しばらく待ちます。
最初固まったかのような画面になりますが徐々に進行してますので我慢です。
2時間以上。

(11) ADDON CD

しばらくして FC5 の DVD がイジェクトされたら合図です。
(2) で作った ADDON CD の挿入を求められるので、入れたら「y」を押します。
ADDON CD のインストールが終わると、root のパスワード設定です。

(12) 完了、再起動

すべてインストールが終わるとまた kboot: のプロンプトに戻ってくるので
「reboot」と入力して再起動します。
完全に起動するまで放置してください。
今回は途中で一旦ペンギンの数が増えます。
初回だけ途中でテキストの設定画面が出ます。
そのまま無視しても進みます。
うまく起動しない場合は一旦電源を切って入れなおしても大丈夫です。
Linux の起動が終了すると login: というプロンプトが出ます。

(13) ログイン確認

login: にはユーザー名「root」、インストール時に設定したパスワードで
ログインします。成功すると root のプロンプト
 [root@localhost ~]#
が表示され、コマンド入力できるようになります。

(14) 最低限のコマンド

reboot 再起動
halt  電源切断(少々時間がかかる)
boot-game-os PS3の元のゲーム画面に戻る

PS3の画面に戻った後にまた Linux に切り替えるには、(9) で設定したように
「優先起動システム」を「他のシステム」に変更して電源を入れなおす
必要があります。