ソラマメブログ

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


同じカテゴリー(PS3)の記事画像
SLviewer on PS3 がさくさく動くためへの嘆願2
SLviewer on PS3 がさくさく動くためへの嘆願
1.23.0 on PS3
SLviewer on PS3 向上委員会2
1.21.6 on PS3
SLviewer on PS3 向上委員会
同じカテゴリー(PS3)の記事
 スワップを増やしてみる。(ps3vram) (2009-03-21 16:35)
 llmozlib2のコンパイル (2009-02-11 21:25)
 SLviewer on PS3 がさくさく動くためへの嘆願2 (2009-02-08 22:58)
 SLviewer on PS3 がさくさく動くためへの嘆願 (2009-02-07 08:33)
 ジェスチャー音なったよ。 (2009-02-05 20:41)
 鳴らぬなら鳴らせてみようジェスチャー音 (2009-02-04 21:04)
Posted by Takeshich Nakamura at 18:36│Comments(0)PS3
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。