2009年03月21日
スワップを増やしてみる。(ps3vram)
ブログ更新してなかったので、久しぶりに更新。
ずいぶん前にカーネルの再構成したときにubuntuでps3vramをしたので、
それについて、書いておこうと思う。
↓のページを参考にした。
http://psubuntu.com/forums/viewtopic.php?f=22&t=635
きれいに書いてあるので、とくに注意するところはないかなぁ。
カーネルの再構成のやり方は、
http://takeshich.slmame.com/e507055.html
の途中からを見てもらうといいし。
スワップが増えたのはいいんだけど、
SLの速度がこれが要因で速くなるわけではないんだよねぇ。
ずいぶん前にカーネルの再構成したときにubuntuでps3vramをしたので、
それについて、書いておこうと思う。
↓のページを参考にした。
http://psubuntu.com/forums/viewtopic.php?f=22&t=635
きれいに書いてあるので、とくに注意するところはないかなぁ。
カーネルの再構成のやり方は、
http://takeshich.slmame.com/e507055.html
の途中からを見てもらうといいし。
スワップが増えたのはいいんだけど、
SLの速度がこれが要因で速くなるわけではないんだよねぇ。
2009年02月11日
llmozlib2のコンパイル
llmozlib2は、トップページで画像を出して、現在ログインしている人を表示するなどをしています。
で、それをはずしてコンパイルしていたのですが、やはり必要だということでコンパイルに挑戦しています。
なぜか間違えてllmozlibのコンパイルをして、成功していたw。
で、しかたないので、llmozlib2のコンパイル。
エラーが出て、とまってしまう。
caseが重複しているらしい。
ソースを良く見ると重複していないんだよね。
マクロ的に引数を渡しているんだからcaseの重複じゃない。誤認識しているっぽいけど、検索しても引っかからない。
なんでだろ?
ソースはこんな感じ
#define CASE__NUMBER_INT32(type_, member_) \
case nsIDataType :: type_ : \
outData->u.mInt32Value = inData.u. member_ ; \
outData->mType = nsIDataType::VTYPE_INT32; \
return NS_OK;
CASE__NUMBER_INT32(VTYPE_INT8, mInt8Value)
CASE__NUMBER_INT32(VTYPE_INT16, mInt16Value)
CASE__NUMBER_INT32(VTYPE_INT32, mInt32Value)
CASE__NUMBER_INT32(VTYPE_UINT8, mUint8Value)
CASE__NUMBER_INT32(VTYPE_UINT16, mUint16Value)
CASE__NUMBER_INT32(VTYPE_BOOL, mBoolValue)
CASE__NUMBER_INT32(VTYPE_CHAR, mCharValue)
CASE__NUMBER_INT32(VTYPE_WCHAR, mWCharValue)
で、それをはずしてコンパイルしていたのですが、やはり必要だということでコンパイルに挑戦しています。
なぜか間違えてllmozlibのコンパイルをして、成功していたw。
で、しかたないので、llmozlib2のコンパイル。
エラーが出て、とまってしまう。
caseが重複しているらしい。
ソースを良く見ると重複していないんだよね。
マクロ的に引数を渡しているんだからcaseの重複じゃない。誤認識しているっぽいけど、検索しても引っかからない。
なんでだろ?
ソースはこんな感じ
#define CASE__NUMBER_INT32(type_, member_) \
case nsIDataType :: type_ : \
outData->u.mInt32Value = inData.u. member_ ; \
outData->mType = nsIDataType::VTYPE_INT32; \
return NS_OK;
CASE__NUMBER_INT32(VTYPE_INT8, mInt8Value)
CASE__NUMBER_INT32(VTYPE_INT16, mInt16Value)
CASE__NUMBER_INT32(VTYPE_INT32, mInt32Value)
CASE__NUMBER_INT32(VTYPE_UINT8, mUint8Value)
CASE__NUMBER_INT32(VTYPE_UINT16, mUint16Value)
CASE__NUMBER_INT32(VTYPE_BOOL, mBoolValue)
CASE__NUMBER_INT32(VTYPE_CHAR, mCharValue)
CASE__NUMBER_INT32(VTYPE_WCHAR, mWCharValue)
2009年02月08日
SLviewer on PS3 がさくさく動くためへの嘆願2

http://www.petitiononline.com/RSX/petition.html
を訳してみた。ぜひ嘆願を出してください。
拝啓 ソニー株式会社様
私たちプレイステーション3ユーザは、ソニー株式会社にRSX(*1)を「Other OS」モードで使用することを許可するようお願いします。
現在、ファームウェアの制限で
・いろいろなフォーマットで動画を簡単にみること
・2Dアプリケーションを正しく使用すること
・軽い3Dアプリケーションの好意的な実行
ができません。
著作権侵害の争いになるのは、無益で、この制限は、著作権を侵害するユーザでなく、きちんとしたユーザには問題です。
LinuxとしてのOSをかなり面白くないものにし、プレイステーション3で「Other OS」モードを動かすすばらしいプロジェクトを台無しにするように思えます。
多くの掲示板(フォーラム)で、失望のコメントが膨大な数に上ったのは、これを立証しています。
親愛なるソニー株式会社様、私たちに夢を与えてください、どうか望みのない状態にしておかないでください。
敬具
*1 http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AC%E3%82%A4%E3%82%B9%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B33#CPU.2FGPU
2009年02月07日
SLviewer on PS3 がさくさく動くためへの嘆願
SLviewer on PS3 がさくさく動くためには、RSXへのダイレクトアクセスが必要ですが、
現状ファームウェアによって閉じられています。
それを開放してくれという嘆願を出してくださいませんか?

http://www.petitiononline.com/RSX/petition.html
PS3でSLできれば、SLユーザも増えるのではないかと思うのです!
これは良い契機となることを祈っています。
ぜひ、嘆願を出してください。
現状ファームウェアによって閉じられています。
それを開放してくれという嘆願を出してくださいませんか?

http://www.petitiononline.com/RSX/petition.html
PS3でSLできれば、SLユーザも増えるのではないかと思うのです!
これは良い契機となることを祈っています。
ぜひ、嘆願を出してください。
2009年02月05日
ジェスチャー音なったよ。
コンパイルしなおしたら、ジェスチャー音なりました。
出ていたタイムアウトもなくなりました。
適切な値かがまだわかりませんが、とりあえずなったということで良しとしましょう。
ただ、再生されるジェスチャー音は、一度キャッシュに取り込まれなければならないので
一度だけではならず、二度目でなるような感じです。
こればかりは、処理の問題なのでしょうか?
PS3ようの適切なチューニングを考える必要がありますね。
出ていたタイムアウトもなくなりました。
適切な値かがまだわかりませんが、とりあえずなったということで良しとしましょう。
ただ、再生されるジェスチャー音は、一度キャッシュに取り込まれなければならないので
一度だけではならず、二度目でなるような感じです。
こればかりは、処理の問題なのでしょうか?
PS3ようの適切なチューニングを考える必要がありますね。
2009年02月04日
2009年02月04日
鳴らぬなら鳴らせてみようジェスチャー音
タイムアウトしてしまって、メモリ中に格納されなかったジェスチャー音。
どうにか出しましょうということで、調べてみました。
http://svn.secondlife.com/trac/linden/browser/trunk/indra/llmessage/llassetstorage.h#L56
どうやらここのLL_ASSET_STORAGE_TIMEOUTがタイムアウトの値らしい。
なので、ここを変更するとジェスチャー音も出るかもしれないので、試してみることにする。
とりあえずためしに4倍にしてみる。
ヘッダファイルを変えたので、すべてのファイルをコンパイルしなおし、
時間かかってます。結果は後ほど。
どうにか出しましょうということで、調べてみました。
http://svn.secondlife.com/trac/linden/browser/trunk/indra/llmessage/llassetstorage.h#L56
どうやらここのLL_ASSET_STORAGE_TIMEOUTがタイムアウトの値らしい。
なので、ここを変更するとジェスチャー音も出るかもしれないので、試してみることにする。
とりあえずためしに4倍にしてみる。
ヘッダファイルを変えたので、すべてのファイルをコンパイルしなおし、
時間かかってます。結果は後ほど。
2009年02月02日
ジェスチャー音が出ないわけ。
よくよく、SecondLife.logを見ると
2009-02-02T11:45:53Z WARNING: _cleanupRequests: Asset download request timed out for 3643f41e-fc7b-d44c-120a-35a9aecb4de7.sound
2009-02-02T11:45:53Z INFO: assetCallback: Boom, error in audio file transfer: File transfer timeout (-23016)
とあり、タイムアウトしているようだ。
UI音は、ファイルとしてキャッシュファイルに書き込まれるので、出ていたようだが、
ジェスチャー音は、メモリ空間で読み込まれるようなので、タイムアウトを起こすというわけか…
ストリーミングは、別プロセスだし。
じゃ、メモリを増やせばいいんだな?gnome使っている自体で重いんだけど、
どうすればいいのだろう。カーネルの設定をきちんとして、ダイエットしないとだめか?
2009-02-02T11:45:53Z WARNING: _cleanupRequests: Asset download request timed out for 3643f41e-fc7b-d44c-120a-35a9aecb4de7.sound
2009-02-02T11:45:53Z INFO: assetCallback: Boom, error in audio file transfer: File transfer timeout (-23016)
とあり、タイムアウトしているようだ。
UI音は、ファイルとしてキャッシュファイルに書き込まれるので、出ていたようだが、
ジェスチャー音は、メモリ空間で読み込まれるようなので、タイムアウトを起こすというわけか…
ストリーミングは、別プロセスだし。
じゃ、メモリを増やせばいいんだな?gnome使っている自体で重いんだけど、
どうすればいいのだろう。カーネルの設定をきちんとして、ダイエットしないとだめか?
2009年01月30日
ジェスチャー音が出ない(1.23.0 on PS3)
Secondlife.logを見ると
2009-01-30T07:50:41Z WARNING: loadWAV: LLAudioBufferOpenAL::loadWAV() Error loading /home/takeshich/.secondlife/cache/5e191c7b-8996-9ced-a177-b2ac32bfea06.dsf There was already an AL error on entry to an ALUT function
とのエラー
http://svn.secondlife.com/trac/linden/browser/trunk/indra/llaudio/audioengine_openal.cpp#L334
をみても、なにやら怪しいところはない。
なんだろう。
http://jira.secondlife.com/browse/VWR-2662?focusedCommentId=80427&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_80427
においても、すでにバグはfixされているというし…
んー。謎だ。
2009-01-30T07:50:41Z WARNING: loadWAV: LLAudioBufferOpenAL::loadWAV() Error loading /home/takeshich/.secondlife/cache/5e191c7b-8996-9ced-a177-b2ac32bfea06.dsf There was already an AL error on entry to an ALUT function
とのエラー
http://svn.secondlife.com/trac/linden/browser/trunk/indra/llaudio/audioengine_openal.cpp#L334
をみても、なにやら怪しいところはない。
なんだろう。
http://jira.secondlife.com/browse/VWR-2662?focusedCommentId=80427&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_80427
においても、すでにバグはfixされているというし…
んー。謎だ。
2009年01月29日
音を出す(1.23.0 on PS3)
1.23.0からOpenALがサポートされPS3でも音が出せるようになりました。
現状、UI音とストリーミング音を出すことに成功しています。
あとは、ジェスチャーなどの音を残すばかりです。
さて、そのUI音とストリーミング音を出す方法ですが、
とりあえず、gstreamer関連を入れてみる。
sudo apt-get install gstreamer0.10-fluendo-mp3 gstreamer0.10-ffmpeg ubuntu-restricted-extras oggconvert gstreamer0.10-schroedinger jackd*
音を二重に出せるようにする。
$ vi ~/.asound
rcpcm.dsp0 {
type plug
slave.pcm "dmix"
}
ctl.mixer0 {
type hw
card 0
}
pcm.!default {
type plug
slave.pcm "dmix"
}
なんか怒られるので、追加してみた。
vi .alsoftrc
[alsa]
mmap = false
これで、UIとストリーミングの音は出せます。
現状、UI音とストリーミング音を出すことに成功しています。
あとは、ジェスチャーなどの音を残すばかりです。
さて、そのUI音とストリーミング音を出す方法ですが、
とりあえず、gstreamer関連を入れてみる。
sudo apt-get install gstreamer0.10-fluendo-mp3 gstreamer0.10-ffmpeg ubuntu-restricted-extras oggconvert gstreamer0.10-schroedinger jackd*
音を二重に出せるようにする。
$ vi ~/.asound
rcpcm.dsp0 {
type plug
slave.pcm "dmix"
}
ctl.mixer0 {
type hw
card 0
}
pcm.!default {
type plug
slave.pcm "dmix"
}
なんか怒られるので、追加してみた。
vi .alsoftrc
[alsa]
mmap = false
これで、UIとストリーミングの音は出せます。
2009年01月28日
1.23.0 on PS3
リポジトリからソースをダウンロードしてコンパイルした。

OpenALのポーティングが行われ、FMODがなくても音が出るようになった。
現状確認できているのは、ポップアップで出るメッセージのときに「ポン」となることと
終了時、確認メッセージが出るときの「チン」って音だ。
ストリーミングに関しては、いろいろ試し中。追って報告したいと思う。
メモリが少ないからぷつぷつ切れるんだろうなぁ…。たぶん。

OpenALのポーティングが行われ、FMODがなくても音が出るようになった。
現状確認できているのは、ポップアップで出るメッセージのときに「ポン」となることと
終了時、確認メッセージが出るときの「チン」って音だ。
ストリーミングに関しては、いろいろ試し中。追って報告したいと思う。
メモリが少ないからぷつぷつ切れるんだろうなぁ…。たぶん。
2009年01月26日
SLviewer on PS3 向上委員会3
フレームバッファの容量拡大を試みます。
まず、ubuntu7.10のデフォルトのカーネルから、比較的新しいカーネルにバージョンアップします。そして、フレームバッファの容量を拡大し、カーネルを再構築します。
ちょっと、Secondlifeからは、離れてしまいますが、大切な作業です。
カーネルのバージョンアップと再構築
カーネルのバージョンアップ
CELL-Linux-CL_20080609-ADDON.iso のダウンロード
isoファイルをダウンロードし中から、3つのファイルを取り出します。
wget http://ftp.uk.linux.org/pub/linux/Sony-PS3/distro-kit/CELL-Linux-CL_20080609-ADDON.iso
sudo mount -o loop CELL-Linux-CL_20080609-ADDON.iso /mnt
cd /mnt/target/
cp initrd.img-2.6.25.4 ./
cp kernel-2.6.25.4-20080609.ppc64.rpm ./
rpm2cpio をダウンロードし、実行します。
wget ftp://ftp.nsu.ru/mirrors/ftp.freebsd.org/pub/FreeBSD/releases/alpha/5.4-RELEASE/packages/All/rpm2cpio-1.2_2.tbz
tar xvf rpm2cpio-1.2_2.tbz
perl ./bin/rpm2cpio.pl kernel-2.6.25.4-20080609.ppc64.rpm | cpio -idmv
するとカーネルが展開されます。
カーネルをブートする準備をします。
cd boot
sudo cp vmlinux-2.6.25.4 /boot
sudo cp config-2.6.25.4 /boot
cd ..
sudo cp initrd.img-2.6.25.4 /boot
cd lib/modules
sudo cp -r 2.6.25.4 /lib/modules
kboot.confを編集します。
バックアップします。
sudo cp /etc/kboot.conf /etc/kboot.conf.bak
sudo vi /etc/kboot.conf
/vmlinux initrd=/initrd.img
を
/vmlinux-2.6.25.4 initrd=/initrd.img-2.6.25.4
に変更します。
イニシャライズします
sudo update-initramfs -k 2.6.25.4 -u
このときfirmwareのエラーが出ますが、無視します。
sudo depmod -a
ブートローダのダウンロード
パソコンでリムーバルメディアにダウンロードします。
\ps3\otheros以下に次のファイルを設置します。
http://ozlabs.org/~jk/projects/petitboot/downloads/bin-0.2/otheros.bld
ゲームOSに戻ります。
sudo boot-game-os
設定から他のOSのインストールを選びます。
ブートローダが新しくなり、終了です。
カーネルの再構築
ソースの取得
sudo mount -o loop CELL-Linux-CL_20080609-ADDON.iso /mnt
cd /mnt/src
cp linux-2.6.25.4-20080609.tar.bz2 ./
tar xvf linux-2.6.25.4-20080609.tar.bz2
cd linux-2.6.25.4-20080609
mkdir -p ~/build/2625
CONFIG_FB_PS3_DEFAULT_SIZE_M=9->48に変更する
vi ./arch/powerpc/configs/ps3_defconfig
makeする
make -j2 O=~/build/2625 ps3_defconfig
make -j2 O=~/build/2625
インストールする
sudo su -
cd /home/takeshich/build/2625
make modules_install
make install
git clone git://git.kernel.org/pub/scm/linux/kernel/git/geoff/ps3-linux.git
cd ps3-linux
mkdir -p ~/build/ps3
make -j2 O=~/build/ps3 ps3_defconfig
make -j2 O=~/build/ps3 menuconfig
make -j2 O=~/build/ps3
sudo su -
cd /home/hiruta/build/ps3
make modules_install
make install
2009年01月26日
SLviewer on PS3 向上委員会2
SLviewer on PS3をよりよくするために、
現状の課題とクリアした課題についてまとめる。
■現状の課題
□音
対応
・OpenALで音が出るようになったが、メモリ不足のためジェスチャー音がならない
音を出す(1.23.0 on PS3)
ジェスチャー音が出ない(1.23.0 on PS3)
ジェスチャー音が出ないわけ。
□LLMOZILIB
・コンパイルが通らない!!!
□FPS問題
対応
・mesa cellドライバでは動かない
PS3でSLを動かす-mesa cell編-1
PS3でSLを動かす-mesa cell編-2
PS3でSLを動かす-mesa cell編-3
https://lists.secondlife.com/pipermail/sldev/2009-January/012658.html
・フレームバッファの容量拡大でも向上が見られない
未対応
・スワップを増やしてみる。(ps3vram)
□デバッグ
・mesa cellドライバでは動かないのは、なぜかの検証。
https://lists.secondlife.com/pipermail/sldev/2009-January/012768.html
□その他(viewerに関係ないが…)
・無線LAN対応
wicd
nm-applet
■クリアした課題
□日本語入力
・SDLのコンパイル
・環境変数の設定
export GTK_IM_MODULE='xim'
export XMODIFIERS='@im=SCIM'

SS
現状の課題とクリアした課題についてまとめる。
■現状の課題
□音
対応
・OpenALで音が出るようになったが、メモリ不足のためジェスチャー音がならない
音を出す(1.23.0 on PS3)
ジェスチャー音が出ない(1.23.0 on PS3)
ジェスチャー音が出ないわけ。
□LLMOZILIB
・コンパイルが通らない!!!
□FPS問題
対応
・mesa cellドライバでは動かない
PS3でSLを動かす-mesa cell編-1
PS3でSLを動かす-mesa cell編-2
PS3でSLを動かす-mesa cell編-3
https://lists.secondlife.com/pipermail/sldev/2009-January/012658.html
・フレームバッファの容量拡大でも向上が見られない
未対応
・スワップを増やしてみる。(ps3vram)
□デバッグ
・mesa cellドライバでは動かないのは、なぜかの検証。
https://lists.secondlife.com/pipermail/sldev/2009-January/012768.html
□その他(viewerに関係ないが…)
・無線LAN対応
wicd
nm-applet
■クリアした課題
□日本語入力
・SDLのコンパイル
・環境変数の設定
export GTK_IM_MODULE='xim'
export XMODIFIERS='@im=SCIM'

SS

2009年01月26日
2009年01月25日
SLviewer on PS3 向上委員会
カーネルを再構築して、フレームバッファを変えてみた。
すると、実メモリの量にも変化が・・・。え・・・
フレームバッファ9MB

フレームバッファ48MB

実メモリの量が変化しています。なんで?
すると、実メモリの量にも変化が・・・。え・・・
フレームバッファ9MB

フレームバッファ48MB

実メモリの量が変化しています。なんで?
2009年01月25日
How to compile SLviewer on PS3
※目次
■はじめに
■環境作り
□ISOのダウンロード
□ubuntu7.10のダウンロード
□ブートローダの入れなおし
□ubuntuのインストール
□ネットワークの設定
□sshdのインストール
□システムを最新の状態にする
■コンパイル環境を整える
□開発関係のインストール
□要件(一般ツール)の確認
□ソース・ライブラリなどのダウンロードと展開
□要件(ライブラリなど)の確認
□その他
■おまじないコーナー
□GCCのコンパイル
□boostのバグのパッチあて
■プロジェクトファイルの自動生成
■ソースの編集
■make
■うごかす
■はじめに
PS3Linuxでsecondlifeのviewerを使っているという人にあったので
対抗して、なぜかFedora9でやってみることにした。
しかし、ubuntuでRSXのドライバがあるようなので、はじめてubuntuをインストールする。しかし、ファームウエアのバージョンの関係でドライバは有効にはならない。が
そのまま進める。
■環境作り
□ISOのダウンロード
アドオンCD
http://ftp.uk.linux.org/pub/linux/Sony-PS3/distro-kit/CELL-Linux-CL_20080609-ADDON.iso
□ubuntu7.10のダウンロード
http://cdimage.ubuntu.com/ports/releases/gutsy/release/ubuntu-7.10-alternate-powerpc+ps3.iso
□ブートローダの入れなおし
・アドオンCDをPS3に挿入する。
・XMBのトップメニューから「設定」を選ぶ。
・XMBの「設定」メニューから「本体の設定」を選ぶ。
・XMBの「本体の設定」メニューから「他のシステムのインストール」を選ぶ。
・以下のインストールデータが見つかりました。が表示される、開始をする。
・インストールが完了しました。というメッセージが出る。XMBのトップに戻る。
・アドオンCDを取り出す。
・XMBのトップメニューから「設定」を選ぶ。
・XMBの「設定」メニューから「本体の設定」を選ぶ。
・XMBの「本体の設定」メニューから「優先起動システム」を選ぶ。
・他のシステムを選ぶ。
・再起動する。
□ubuntuのインストール
・ubuntuのネットワークインストールCDをPS3に挿入する。
・kboot: install を入力する。
・メニューに従いインストールする。
□ネットワークの設定
/etc/network/interfaces を設定する。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.11.30
network 192.168.11.0
netmask 255.255.255.0
broadcast 192.168.11.255
gateway 192.168.11.1
dns-nameservers 192.168.11.1
/etc/resolv.confに書く。
nameserver 192.168.11.1
□sshdのインストール
sudo apt-get install openssh-server
□システムを最新の状態にする
sudo apt-get update
sudo apt-get dist-upgrade
■コンパイル環境を整える
http://wiki.secondlife.com/wiki/Compiling_the_viewer_%28Linux%29
より、必要なものを整える。
□開発関係のインストール
sudo apt-get install build-essential
もしCDを要求されたら、mount /dev/scd0 /mnt
□要件(一般ツール)の確認
・python
sudo apt-get install python
・Scons(もういらないw)
sudo apt-get install scons
・GCC 3.4 (もういらないw)
sudo apt-get install g++-3.4
・yacc
sudo apt-get install bison
・lex
sudo apt-get install flex
・cmake
http://www.cmake.org/cmake/resources/software.html
./configure
make
sudo make install
□ソース・ライブラリなどのダウンロードと展開
http://wiki.secondlife.com/wiki/Source_downloads
より、必要なものをダウンロードする。
・ソース
・ライブラリ
・アートワーク
□展開
・ソース
tar -zxvf
・ライブラリ
tar -zxvf
・アートワーク
unzip
□要件(ライブラリなど)の確認
・GL
sudo apt-get install mesa-common-dev
・GLU
sudo apt-get install libglu1-mesa-dev
・glibc
sudo apt-get install libc6-dev
・stdc++ library
sudo apt-get install libstdc++6-dev
・X11
sudo apt-get install libx11-dev
・zlib
sudo apt-get install zlib1g-dev
・openssl
sudo apt-get install libssl-dev
・FMOD(現状PCC64用のバイナリがありません、つまり音が出せない)
□その他
もし足りない場合は、足りないよって言われているライブラリを検索し、インストールしてください。
・apr-1
sudo apt-get install libapr1-dev
・aprutil-1
sudo apt-get install libaprutil1-dev
・boost
sudo apt-get install libboost-dev
・boost-regex
sudo apt-get install libboost-regex-dev
・c-ares
http://daniel.haxx.se/projects/c-ares/
./configure
make -j2
sudo make install
・curl
curl 7.18.1
http://curl.haxx.se/
./configure --enable-ares=/usr/local/lib --with-ssl=/usr/lib --with-zlib=/usr/linclude --without-libidn
make -j2
sudo make install
・ELFIO
cd ELFIO && g++-3.4 -shared *.o -o libELFIO.so
・expat
sudo apt-get install libcurl4-openssl-dev
・google-perftools
sudo apt-get install libgoogle-perftools-dev
・GTK 2.x
sudo apt-get install libgtk2.0-dev
・jpeglib
sudo apt-get install libjpeg62-dev
・OpenJPEG
http://www.openjpeg.org/index.php?menu=download
./configure
make
sudo make install
・OpenSSL
sudo apt-get install libssl-dev
・SDL(日本語を通す必要があるので、別途コンパイル)
http://www.libsdl.org/download-1.2.php
./configure
make
sudo make install
・Vorbis
sudo apt-get install libvorbis-dev
・xmlrpc-epi 0.51
http://xmlrpc-epi.sourceforge.net/
./configure
make
sudo make install
・gstreamer
sudo apt-get install libgstreamer0.10-dev
■おまじないコーナー
とてつもなく重要なおまじないです。おまじないにはかなりの時間がかかりますのであらかじめご了承ください。
□GCCのコンパイル
・GCCの最新版にしないとGCCのバグのためアプリケーションがリンクできないことになりますので、最新版にします。
ソースからGCCコンパイル、インストールです。
・下準備
sudo apt-get install libc6-dev-ppc64
sudo apt-get install lib64mpfr1
sudo apt-get install lib64mpfr-dev
sudo apt-get install lib64gmp3 lib64gmp3-dev lib64gmpxx4
とりあえず、リンカを新しくします。
http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.gz
./configure
make
sudo make install
ソースを取ってきて、
http://gcc.cybermirror.org/snapshots/4.4-20090102/gcc-4.4-20090102.tar.bz2
mkdir 4_4_0
cd 4_4_0
../gcc-4.4-20090102/configure --enable-languages=c,c++,fortran,objc,obj-c++ --exec-prefix=/usr --prefix=/usr/local/n --enable-shared --with-system-zlib --libexecdir=/usr/local/n/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/local/n/include/c++/4.4.0 --program-suffix=-4.4 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --disable-softfloat --enable-secureplt --enable-targets=powerpc-linux,powerpc64-linux --with-cpu=default32 --with-long-double-128 --enable-checking=release powerpc-linux-gnu
export LD_LIBRARY_PATH=/usr/lib64
make
sudo make install
□boostのバグのパッチあて
https://svn.boost.org/trac/boost/raw-attachment/ticket/2069/boost_mpl_gcc-4_4.patch
■プロジェクトファイルの自動生成
./develop.py --standalone --no-distcc
■ソースの編集
アセンブルしようとするところがあるので、そこを回避。
return get_clock_count();
llfasttimer.cpp
#if LL_LINUX && defined(__ppc64__)
U64 get_cpu_clock_count()
{
return get_clock_count();
}
#endif
■make
makeする前にも準備が必要。
linden/indra/cmake$ vi 00-Common.cmake
4.3を4.4に変更
-Werrorを削除
します。
newview/CMakeList.txt
438行付近から数行コメントアウトします。
llmoz削除
llmedia/llmediamanager.cpp
154行コメントアウトします。
llmedia/CMakeFileList.txt
4.234に変更します。
cmake/Mozlib.cmake
対象行コメントアウトします。
make
オプションとして-j2をつけたくなるが、メモリが足りなくなるのでやめておく。
何かエラーでとまったら、ぐぐって見てください。
わからなければ、takeshich.nakamura at gmail.comにメールをくれるか、ここにコメントください。
Traceback (most recent call last):
File "/home/takeshich/sl/1_22_5/linden/indra/newview/viewer_manifest.py", line 676, in
main()
File "/home/takeshich/sl/1_22_5/linden/indra/newview/../lib/python/indra/util/llmanifest.py", line 232, in main
wm = LLManifest.for_platform(args['platform'], args.get('arch'))(args)
File "/home/takeshich/sl/1_22_5/linden/indra/newview/../lib/python/indra/util/llmanifest.py", line 258, in for_platform
return self.manifests[platform.lower()]
KeyError: 'linux_ppc64'
make[2]: *** [newview/SecondLife-ppc64-1.22.5.0.tar.bz2] Error 1
make[1]: *** [newview/CMakeFiles/package.dir/all] Error 2
make: *** [all] Error 2
なのですが、バイナリはできていることだろう。。。
■うごかす
/etc/X11/xorg.conf
65:
DefaultFbBpp 32
indraで
cp ../scripts/messages/message_template.msg newview/app_settings/
cp ../etc/message.xml newview/app_settings/
indraで
( cd newview && LD_LIBRARY_PATH="`pwd`"/../../libraries/powerpc_64-linux/lib_release_client:${LD_LIBRARY_PATH}:/usr/local/lib ./secondlife-bin )
特にライブラリパスを指定しなくても動くよ。
./secondlife-bin
でおk
■はじめに
■環境作り
□ISOのダウンロード
□ubuntu7.10のダウンロード
□ブートローダの入れなおし
□ubuntuのインストール
□ネットワークの設定
□sshdのインストール
□システムを最新の状態にする
■コンパイル環境を整える
□開発関係のインストール
□要件(一般ツール)の確認
□ソース・ライブラリなどのダウンロードと展開
□要件(ライブラリなど)の確認
□その他
■おまじないコーナー
□GCCのコンパイル
□boostのバグのパッチあて
■プロジェクトファイルの自動生成
■ソースの編集
■make
■うごかす
■はじめに
PS3Linuxでsecondlifeのviewerを使っているという人にあったので
対抗して、なぜかFedora9でやってみることにした。
しかし、ubuntuでRSXのドライバがあるようなので、はじめてubuntuをインストールする。しかし、ファームウエアのバージョンの関係でドライバは有効にはならない。が
そのまま進める。
■環境作り
□ISOのダウンロード
アドオンCD
http://ftp.uk.linux.org/pub/linux/Sony-PS3/distro-kit/CELL-Linux-CL_20080609-ADDON.iso
□ubuntu7.10のダウンロード
http://cdimage.ubuntu.com/ports/releases/gutsy/release/ubuntu-7.10-alternate-powerpc+ps3.iso
□ブートローダの入れなおし
・アドオンCDをPS3に挿入する。
・XMBのトップメニューから「設定」を選ぶ。
・XMBの「設定」メニューから「本体の設定」を選ぶ。
・XMBの「本体の設定」メニューから「他のシステムのインストール」を選ぶ。
・以下のインストールデータが見つかりました。が表示される、開始をする。
・インストールが完了しました。というメッセージが出る。XMBのトップに戻る。
・アドオンCDを取り出す。
・XMBのトップメニューから「設定」を選ぶ。
・XMBの「設定」メニューから「本体の設定」を選ぶ。
・XMBの「本体の設定」メニューから「優先起動システム」を選ぶ。
・他のシステムを選ぶ。
・再起動する。
□ubuntuのインストール
・ubuntuのネットワークインストールCDをPS3に挿入する。
・kboot: install を入力する。
・メニューに従いインストールする。
□ネットワークの設定
/etc/network/interfaces を設定する。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.11.30
network 192.168.11.0
netmask 255.255.255.0
broadcast 192.168.11.255
gateway 192.168.11.1
dns-nameservers 192.168.11.1
/etc/resolv.confに書く。
nameserver 192.168.11.1
□sshdのインストール
sudo apt-get install openssh-server
□システムを最新の状態にする
sudo apt-get update
sudo apt-get dist-upgrade
■コンパイル環境を整える
http://wiki.secondlife.com/wiki/Compiling_the_viewer_%28Linux%29
より、必要なものを整える。
□開発関係のインストール
sudo apt-get install build-essential
もしCDを要求されたら、mount /dev/scd0 /mnt
□要件(一般ツール)の確認
・python
sudo apt-get install python
・Scons(もういらないw)
sudo apt-get install scons
・GCC 3.4 (もういらないw)
sudo apt-get install g++-3.4
・yacc
sudo apt-get install bison
・lex
sudo apt-get install flex
・cmake
http://www.cmake.org/cmake/resources/software.html
./configure
make
sudo make install
□ソース・ライブラリなどのダウンロードと展開
http://wiki.secondlife.com/wiki/Source_downloads
より、必要なものをダウンロードする。
・ソース
・ライブラリ
・アートワーク
□展開
・ソース
tar -zxvf
・ライブラリ
tar -zxvf
・アートワーク
unzip
□要件(ライブラリなど)の確認
・GL
sudo apt-get install mesa-common-dev
・GLU
sudo apt-get install libglu1-mesa-dev
・glibc
sudo apt-get install libc6-dev
・stdc++ library
sudo apt-get install libstdc++6-dev
・X11
sudo apt-get install libx11-dev
・zlib
sudo apt-get install zlib1g-dev
・openssl
sudo apt-get install libssl-dev
・FMOD(現状PCC64用のバイナリがありません、つまり音が出せない)
□その他
もし足りない場合は、足りないよって言われているライブラリを検索し、インストールしてください。
・apr-1
sudo apt-get install libapr1-dev
・aprutil-1
sudo apt-get install libaprutil1-dev
・boost
sudo apt-get install libboost-dev
・boost-regex
sudo apt-get install libboost-regex-dev
・c-ares
http://daniel.haxx.se/projects/c-ares/
./configure
make -j2
sudo make install
・curl
curl 7.18.1
http://curl.haxx.se/
./configure --enable-ares=/usr/local/lib --with-ssl=/usr/lib --with-zlib=/usr/linclude --without-libidn
make -j2
sudo make install
・ELFIO
cd ELFIO && g++-3.4 -shared *.o -o libELFIO.so
・expat
sudo apt-get install libcurl4-openssl-dev
・google-perftools
sudo apt-get install libgoogle-perftools-dev
・GTK 2.x
sudo apt-get install libgtk2.0-dev
・jpeglib
sudo apt-get install libjpeg62-dev
・OpenJPEG
http://www.openjpeg.org/index.php?menu=download
./configure
make
sudo make install
・OpenSSL
sudo apt-get install libssl-dev
・SDL(日本語を通す必要があるので、別途コンパイル)
http://www.libsdl.org/download-1.2.php
./configure
make
sudo make install
・Vorbis
sudo apt-get install libvorbis-dev
・xmlrpc-epi 0.51
http://xmlrpc-epi.sourceforge.net/
./configure
make
sudo make install
・gstreamer
sudo apt-get install libgstreamer0.10-dev
■おまじないコーナー
とてつもなく重要なおまじないです。おまじないにはかなりの時間がかかりますのであらかじめご了承ください。
□GCCのコンパイル
・GCCの最新版にしないとGCCのバグのためアプリケーションがリンクできないことになりますので、最新版にします。
ソースからGCCコンパイル、インストールです。
・下準備
sudo apt-get install libc6-dev-ppc64
sudo apt-get install lib64mpfr1
sudo apt-get install lib64mpfr-dev
sudo apt-get install lib64gmp3 lib64gmp3-dev lib64gmpxx4
とりあえず、リンカを新しくします。
http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.gz
./configure
make
sudo make install
ソースを取ってきて、
http://gcc.cybermirror.org/snapshots/4.4-20090102/gcc-4.4-20090102.tar.bz2
mkdir 4_4_0
cd 4_4_0
../gcc-4.4-20090102/configure --enable-languages=c,c++,fortran,objc,obj-c++ --exec-prefix=/usr --prefix=/usr/local/n --enable-shared --with-system-zlib --libexecdir=/usr/local/n/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/local/n/include/c++/4.4.0 --program-suffix=-4.4 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --disable-softfloat --enable-secureplt --enable-targets=powerpc-linux,powerpc64-linux --with-cpu=default32 --with-long-double-128 --enable-checking=release powerpc-linux-gnu
export LD_LIBRARY_PATH=/usr/lib64
make
sudo make install
□boostのバグのパッチあて
https://svn.boost.org/trac/boost/raw-attachment/ticket/2069/boost_mpl_gcc-4_4.patch
■プロジェクトファイルの自動生成
./develop.py --standalone --no-distcc
■ソースの編集
アセンブルしようとするところがあるので、そこを回避。
return get_clock_count();
llfasttimer.cpp
#if LL_LINUX && defined(__ppc64__)
U64 get_cpu_clock_count()
{
return get_clock_count();
}
#endif
■make
makeする前にも準備が必要。
linden/indra/cmake$ vi 00-Common.cmake
4.3を4.4に変更
-Werrorを削除
します。
newview/CMakeList.txt
438行付近から数行コメントアウトします。
llmoz削除
llmedia/llmediamanager.cpp
154行コメントアウトします。
llmedia/CMakeFileList.txt
4.234に変更します。
cmake/Mozlib.cmake
対象行コメントアウトします。
make
オプションとして-j2をつけたくなるが、メモリが足りなくなるのでやめておく。
何かエラーでとまったら、ぐぐって見てください。
わからなければ、takeshich.nakamura at gmail.comにメールをくれるか、ここにコメントください。
Traceback (most recent call last):
File "/home/takeshich/sl/1_22_5/linden/indra/newview/viewer_manifest.py", line 676, in
main()
File "/home/takeshich/sl/1_22_5/linden/indra/newview/../lib/python/indra/util/llmanifest.py", line 232, in main
wm = LLManifest.for_platform(args['platform'], args.get('arch'))(args)
File "/home/takeshich/sl/1_22_5/linden/indra/newview/../lib/python/indra/util/llmanifest.py", line 258, in for_platform
return self.manifests[platform.lower()]
KeyError: 'linux_ppc64'
make[2]: *** [newview/SecondLife-ppc64-1.22.5.0.tar.bz2] Error 1
make[1]: *** [newview/CMakeFiles/package.dir/all] Error 2
make: *** [all] Error 2
なのですが、バイナリはできていることだろう。。。
■うごかす
/etc/X11/xorg.conf
65:
DefaultFbBpp 32
indraで
cp ../scripts/messages/message_template.msg newview/app_settings/
cp ../etc/message.xml newview/app_settings/
indraで
( cd newview && LD_LIBRARY_PATH="`pwd`"/../../libraries/powerpc_64-linux/lib_release_client:${LD_LIBRARY_PATH}:/usr/local/lib ./secondlife-bin )
特にライブラリパスを指定しなくても動くよ。
./secondlife-bin
でおk
2009年01月20日
PS3でSLが動いたぜ!

PS3でSLが動いたのにコメントとかトラックバックが無かったので、
なんだか残念に思い、SLDEVのメーリングリストにサブスクライブして
つたない英語で報告しました。
https://lists.secondlife.com/pipermail/sldev/2009-January/012634.html
ついでにFPSの向上の質問をしておきました。
なんだか、イタリアのほうでリンクが張られたみたいです。
http://www.secondlifeitalia.com/community/viewtopic.php?t=20788
意味不明。
2009年01月19日
PS3でSLを動かす-mesa cell編-3
@ps3:~/mesacell/mesa$ ppu32-embedspu
/usr/bin/ppu32-embedspu: line 2: /usr/bin/ppu-embed: No such file or directory
/usr/bin/ppu32-embedspu: line 2: exec: /usr/bin/ppu-embed: cannot execute: No such file or directory
のエラーで困り果てていたが、もしやシェル?と思い、のぞいてみると
シェルで、ppu-embedからppu-embedspuに変更することで直った。
で、mesa cellドライバのコンパイルはうまく通った。
デモとして以下のものが動いた。





で、SLが動くかだったが、試したら動かなかった。
残念。
ドライバの開発工程でものぞいて見ようかな。
/usr/bin/ppu32-embedspu: line 2: /usr/bin/ppu-embed: No such file or directory
/usr/bin/ppu32-embedspu: line 2: exec: /usr/bin/ppu-embed: cannot execute: No such file or directory
のエラーで困り果てていたが、もしやシェル?と思い、のぞいてみると
シェルで、ppu-embedからppu-embedspuに変更することで直った。
で、mesa cellドライバのコンパイルはうまく通った。
デモとして以下のものが動いた。





で、SLが動くかだったが、試したら動かなかった。
残念。
ドライバの開発工程でものぞいて見ようかな。
2009年01月18日
PS3でSLを動かす-mesa cell編-2
クロスコンパイルで、バイナリはできた。
でも実機に持って行って実行してみるとlibcを参照していて、バージョンがあわないというエラーが出た。
で、実機でやることにして色々試してみるうちに
ppu32-embedspuが変なエラーを出していることに気づいた。
どうにもおかしいので、検索したがあまりにもニッチなのか引っかからない。
パッケージごと削除して、入れなおしたりしたけど実行するだけで、エラーをはくバイナリになっていた。何がおかしいのかわからない。
似たような環境で、同じパッケージを使って、mesa cellドライバができたって言う人もいた。
エラーメッセージでもさらそうかな。
メッセージはこれ↓
ppu32-embedspu -m32 g3d_spu g3d_spu g3d_spu-embed.o
/usr/bin/ppu32-embedspu: line 2: /usr/bin/ppu-embed: No such file or directory
/usr/bin/ppu32-embedspu: line 2: exec: /usr/bin/ppu-embed: cannot execute: No such file or directory
@ps3:~/mesacell/mesa$ ppu32-embedspu
/usr/bin/ppu32-embedspu: line 2: /usr/bin/ppu-embed: No such file or directory
/usr/bin/ppu32-embedspu: line 2: exec: /usr/bin/ppu-embed: cannot execute: No such file or directory
なんじゃこりゃ?
そんなわけで、mesa cellドライバ化は頓挫?なのか?
とりあえず、音が出ていないので、そちらに注力してみることにする。
でも実機に持って行って実行してみるとlibcを参照していて、バージョンがあわないというエラーが出た。
で、実機でやることにして色々試してみるうちに
ppu32-embedspuが変なエラーを出していることに気づいた。
どうにもおかしいので、検索したがあまりにもニッチなのか引っかからない。
パッケージごと削除して、入れなおしたりしたけど実行するだけで、エラーをはくバイナリになっていた。何がおかしいのかわからない。
似たような環境で、同じパッケージを使って、mesa cellドライバができたって言う人もいた。
エラーメッセージでもさらそうかな。
メッセージはこれ↓
ppu32-embedspu -m32 g3d_spu g3d_spu g3d_spu-embed.o
/usr/bin/ppu32-embedspu: line 2: /usr/bin/ppu-embed: No such file or directory
/usr/bin/ppu32-embedspu: line 2: exec: /usr/bin/ppu-embed: cannot execute: No such file or directory
@ps3:~/mesacell/mesa$ ppu32-embedspu
/usr/bin/ppu32-embedspu: line 2: /usr/bin/ppu-embed: No such file or directory
/usr/bin/ppu32-embedspu: line 2: exec: /usr/bin/ppu-embed: cannot execute: No such file or directory
なんじゃこりゃ?
そんなわけで、mesa cellドライバ化は頓挫?なのか?
とりあえず、音が出ていないので、そちらに注力してみることにする。
2009年01月17日
PS3でSLを動かす-mesa cell編-1
PS3上でSLは動いたのだが、FPSが0.4と使い物にならない。
そこで、mesa cellプロジェクトがあることを発見。
http://www.yellowdog-board.com/viewtopic.php?f=19&t=4015
PS3で試してみるが、うまくいかない。
CELLSDKもFEDORAとRHEL対応みたいだ。
alienを使ってやる方法を見つけたが、うまくいかなかった。
それなので、クロスコンパイルに挑戦してみることにした。
早速試してみることにするが、CELLのSDKをインストールして
makeするとファイルが見つからないなどのエラーに見舞われる。
結局、
/opt/cell/sysroot/opt/cell/sdk/usr
を
/opt/cell/sdk/usrにコピーすることで解決した。
makeしているとX関係のヘッダファイルが無いと怒られたので、
/opt/cell/sdk/usr/includeにコピーする。
今度は、X関係のライブラリーが無いとノタマウ。
PS3から持ってきた。
いろいろやって今日はここまで。
そこで、mesa cellプロジェクトがあることを発見。
http://www.yellowdog-board.com/viewtopic.php?f=19&t=4015
PS3で試してみるが、うまくいかない。
CELLSDKもFEDORAとRHEL対応みたいだ。
alienを使ってやる方法を見つけたが、うまくいかなかった。
それなので、クロスコンパイルに挑戦してみることにした。
早速試してみることにするが、CELLのSDKをインストールして
makeするとファイルが見つからないなどのエラーに見舞われる。
結局、
/opt/cell/sysroot/opt/cell/sdk/usr
を
/opt/cell/sdk/usrにコピーすることで解決した。
makeしているとX関係のヘッダファイルが無いと怒られたので、
/opt/cell/sdk/usr/includeにコピーする。
今度は、X関係のライブラリーが無いとノタマウ。
PS3から持ってきた。
いろいろやって今日はここまで。