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

PS3 Linux の画面を広く使う

現在 PC 用のモニタに VGA でつないで 720p で使用しています。
(つなぐまでのあれこれ http://ch09144.kitaguni.tv/e326105.html)
(画面写真 http://ch09144.kitaguni.tv/e326652.html)
でも、なんか解像度の割りに画面が狭いなあと思っていました。
ウィンドウを立ち上げて

 デスクトップ → 設定 → 画面の解像度

をみるとなんと「1124×644」になっています。

もしかしたら TV に合わせてオーバースキャンを考慮して
有効画素数を減らしているのかもしれません。

ps3videomode コマンドのヘルプを良く見ると full screen mode なるものがあります。

X を落としてから試してみました。

 $ ps3videomode -f -v 3

この状態で startx すると、以前よりずっと広い画面になりました。
解像度を調べると 1280×720 で、今度はきちんと 720p です。
面積で 1.27倍、体感ではかなり広さの差を感じます。

起動時から fullscreen 指定するには /etc/kboot.conf を書き換える必要が
あります。

前回の記事(PS3 Linux で最初に行う設定 http://ch09144.kitaguni.tv/e327238.html)
では次のように数値指定しました。

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

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

ps3videomode のヘルプによると、-f 指定だけでなくモードの数値に +128
しても fullscreen 指定になるようです。
mode 3 + 128 = 131 ということで、モード番号を 131 に書き換えます。

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

これで起動時から 720p の fullscreen 画面になりました。

PS3 の Cell 開発環境を入れてみる

PS3 をクライアントとしても使えて、
サーバーとしてもアクセスできるようになりました。
次は PS3 ならではの使い方として Cell の開発環境を install してみます。

インストール手順同様、こちらのページを参考にさせていただきました
http://cell.fixstars.com/ps3linux/index.php

従来のゲーム機は単なるターゲットとみなしてクロス開発するのが普通でしたが、
PS3 は HDD 搭載で Linux の動く PC として使えるため、自分自身でアプリ
開発を行うことができます。

(1) SPU 用コンパイラ

せっかくなので出たばかりの新しいバージョン CellSDK 2.0 を入れてみました。

http://www.bsc.es/plantillaH.php?cat_id=252

ここから PowerPC で動く SPU 向けの各種ツールをダウンロードします。
表のうち PowerPC の方の SPU と書かれている一式です。

●3.3-72
GNU Binutils
GNU GCC Compiler
GNU GCC C++ Compiler
GNU GDB
GNU newlib C library
GNU Toolchain debuginfo

ダウンロードした *.rpm を PS3 Linux に転送してインストールします。
パッケージのインストールなので、ファイルはどこにおいても構いません。

# rpm -i spu-binutils-3.3-72.ppc.rpm
# rpm -i spu-gcc-3.3-72.ppc.rpm
# rpm -i spu-gcc-c++-3.3-72.ppc.rpm
# rpm -i spu-gdb-3.3-72.ppc.rpm
# rpm -i spu-newlib-3.3-72.ppc.rpm
# rpm -i spu-toolchain-debuginfo-3.3-72.ppc.rpm

インストールは上記の順番で行います。

(2) SPU を使うためのライブラリ

PS3 に Linux を入れるまでの手順
http://ch09144.kitaguni.tv/e327222.html
で作った ADDON CD の Q:\spu の中にある次のファイルを PS3 Linux に
転送します。

libspe2-2.0.1-be0647.3.20061130.1.ps3pf.ppc.rpm
libspe2-2.0.1-be0647.3.20061130.1.ps3pf.ppc64.rpm
libspe2-devel-2.0.1-be0647.3.20061130.1.ps3pf.ppc.rpm
libspe2-devel-2.0.1-be0647.3.20061130.1.ps3pf.ppc64.rpm
elfspe2-2.0.1-be0647.3.20061130.1.ps3pf.ppc.rpm

これらも順番に rpm -i で install します。

(3) Hello World

http://cell.fixstars.com/ps3linux/index.php/PS3%E3%81%A7Hello%2C_World%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
こちらから Hw-samples-all.tar.gz をダウンロードします。

PS3 Linux に転送してアーカイブを展開します。下記の操作は home に転送したと
仮定しています。

 $ cd
 $ mkdir src
 $ cd src
 $ tar -zxvf ../Hw-samples-all.tar.gz
 $ cd hw-samples-all
 $ make

libspe1 を install していないのでエラーが出ますが無視します。

 $ cd spe
 $ ./spe-main
[SPE] Hello, World!

SPEでコンパイルしたプログラムが動きました。

(4) SPE 用の C/C++ 言語拡張について

SPU_language_extensions_v21_j.pdf

こちらからダウンロードできます。
http://cell.scei.co.jp/

これをみると vector 型が拡張されているのがわかります。
例えば float 4 要素の 128bit 変数は

vector float v1;

のように宣言できます。
残念ながら、HLSL のように自由自在に各ベクトル要素にアクセスできるわけでは
無いようです。(例えば v1.x 等は使えない)

vector 系の演算には組み込みの intrinsics 命令を使うようです。
あとでもう少し詳しくしらべてみます。

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)
が使えるようになっているはずです。