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
スワップを増やしてみる。(ps3vram)
llmozlib2のコンパイル
SLviewer on PS3 がさくさく動くためへの嘆願2
SLviewer on PS3 がさくさく動くためへの嘆願
ジェスチャー音なったよ。
鳴らぬなら鳴らせてみようジェスチャー音
llmozlib2のコンパイル
SLviewer on PS3 がさくさく動くためへの嘆願2
SLviewer on PS3 がさくさく動くためへの嘆願
ジェスチャー音なったよ。
鳴らぬなら鳴らせてみようジェスチャー音
Posted by Takeshich Nakamura at 18:36│Comments(0)
│PS3