x86 PC上のFedora 13 - 16 (32/64bit版)にSpursEngine Linux SDKをインストールする方法です。
Ubuntuの場合はこちら→
PCにSpursEngine Linux SDKをインストールする
公式にはSpursEngine Linux SDKは32bit環境のみの対応ですが、64bit環境でも動かせています。ただし、64bit環境ではメモリが3GBまでのシステムでないと正常に動作しません。また、64bit環境では現在の所、アプリケーションを32bitバイナリでコンパイル、実行する形になります。
SDKのダウンロード
LEADTEKのSpursEngine特設サイトからSDKのアーカイブをダウンロードします。
LEADTEK SpursEngine特設サイト
LEADTEK SpursEngine SDK配布サイト
Linux_SDK_v1_5_3_2.rar、SDK1_5.rarをダウンロードしてホームディレクトリに置きます。(SDK1_5.rarはWindows用SDKですが、ドキュメント等はこちらに含まれているので必要です。)
ダウンロードはFlashをインストールしたWindows上で行う必要があります。(Linux環境では認証でエラーが出てダウンロードできませんでした)
パッケージをアップデート
まず、パッケージを最新の状態にアップデートしておきます。
端末にコマンドを入力して作業を行います。
su -c 'yum update'
(rootパスワードを入力)
一度再起動します。
su -c 'reboot'
RPM Fusionリポジトリを使用する設定にする
SpursEngine SDKのRARアーカイブを解凍するためにunrarが必要なのですが、これは標準のFedoraリポジトリには含まれていないのでRPM Fusionリポジトリを使用する設定にします。
(1行で)
su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'
アップデートします。
su -c 'yum update'
(rootパスワードを入力)
unrarをインストールします。
su -c 'yum install unrar'
開発用パッケージのインストール
www.bsc.esからspu関連のパッケージをダウンロード、検証してインストールし、その他の開発用パッケージも自動的にインストールするスクリプトを作りました。
端末で以下のように実行してください。
cd
curl -O https://cellspe.matrix.jp/files/f13sesdk.tar.gz
(Oは大文字のオー)
tar xzf f13sesdk.tar.gz
cd f13sesdk
su -c './instsdk.pl'
www.bsc.esの混雑状況によっては非常に時間がかかったり、エラーで止まる場合があります。「Error! Try again after several minutes.」というエラーで止まった場合は、しばらく間をおいてからリトライしてください。
このスクリプトでは、以下のパッケージがインストールされます。
spu-binutils spu-gcc spu-gcc-c++ spu-gcc-fortran spu-gdb spu-newlib spu-gcc-debuginfo spu-gdb-debuginfo gcc gcc-c++ gdb make autoconf automake bison flex binutils kernel-devel patch
SpursEngineドライバのインストール
ホームディレクトリに移動
cd
rarアーカイブを解凍
unrar x Linux_SDK_v1_5_3_2.rar
cd ~/SpursEngine_Linux_SDK_v1_5_3_2/driver
ドライバのインストール
(一行で)
su -c 'tar -Pzxf spurs-driver_1.5.2.2_for-2.6.18-128.2.1.el5.tgz --exclude="/lib/modules"'
現在のカーネルに対応したカーネルモジュールをコンパイル
ドライバのソースコードを解凍
tar xzf driver-only.linux_src_1.5.2.2.tgz
パッチを当てます。
(一行で)
wget -O spurs_driver_patch.tar.gz https://cellspe.matrix.jp/files/spurs_driver_patch.tar.gz
tar xzf spurs_driver_patch.tar.gz
patch -p0 < spurs_driver_patch.diff
以降の作業はカーネルがアップデートされる度に行う必要があります。
(一行で)
cd ~/SpursEngine_Linux_SDK_v1_5_3_2/driver/spurs_src/trunk/driver/linux
make clean
(ここで、「.tmp_System.map」を削除できないというエラーが出る場合は、「sudo make clean」と実行してください。)
make all
カーネルモジュールをインストール
su
(rootパスワードを入力)
make install-drivers
ldconfig
modprobe spurs
exit
実行パスを追加
vi ~/.bashrc
viエディタの基本的な使い方
ファイルの末尾に以下の行を追加します。
##########
export PATH=$PATH:/opt/cell/toolchain/bin
##########
保存した後、一旦ログアウトして再ログインします。
SELinuxを無効にする
SELinuxが有効になっていると実行時にSpursEngineのライブラリでセキュリティエラーが出るのでSELinuxを無効にします。無効にしたくない場合はセキュリティエラーが出たときに表示される解決法(セキュリティの例外を追加するコマンド)を一つ一つ実行してください。
su
vi /etc/selinux/config
「SELINUX=」の設定をdisabledにします。
##########
SELINUX=disabled
##########
保存して再起動します。
reboot
ライブラリのインストール
cd ~/SpursEngine_Linux_SDK_v1_5_3_2
tar xzf spurs_baselib_1.5.2.2.tgz
tar xzf spurs_candilib_1.5.3.2.tgz
tar xzf spurs_club_1.5.6.0.tgz
tar xzf spurs_spade_1.5.4.5.tgz
spurs_topディレクトリの作成
将来SDKのバージョンアップが行われた場合に簡単にパスを変更できるよう、ホームディレクトリにspurs_topというディレクトリを作成してシンボリックリンクを張っておきます。Makefileからはこのディレクトリを参照するようにすると便利です。
spurs_topディレクトリの作成
cd ~
mkdir spurs_top
cd spurs_top
ln -s ~/SpursEngine_Linux_SDK_v1_5_3_2/release release
SDKのサンプルプログラム SpursInfo を実行
cd ~/SpursEngine_Linux_SDK_v1_5_3_2/tools
tar xzf SpursInfo.tgz
cd SpursInfo
./SpursInfo
「Hello World from SPE !」と表示されたら成功です。
基本ライブラリ・サンプルのコンパイル・実行
cd ~/SpursEngine_Linux_SDK_v1_5_3_2/tools/SpursInfo
vi Makefile.linux
「RELEASE = 」「CXXFLAGS =」「LDFLAGS =」の行を以下のように変更します。
##########
RELEASE = ../../release/linux
CXXFLAGS = -m32 -g -O2 -I$(RELEASE)/include
LDFLAGS = -m32
##########
make -f Makefile.linux clean
make -f Makefile.spe clean
make -f Makefile.linux
make -f Makefile.spe
コンパイルでエラーが出ないことを確認します。
./SpursInfo
「Hello World from SPE !」と表示されたら成功です。
clubミドルウェア・サンプルのコンパイル・実行
cd ~/SpursEngine_Linux_SDK_v1_5_3_2/release/sample
vi make.common
「CFLAGS =」「LIBS =」の行を以下のように変更します。
##########
CFLAGS = -m32 -O2 -Wall \
LIBS = -m32 -L$(LIBPATH) -lclub -lpthread -lstdc++
##########
make
./sample.sh
candiミドルウェア・サンプルの実行
(一行で)
cd ~/SpursEngine_Linux_SDK_v1_5_3_2/release/linux/samples/candi/codec_sample_04
export LD_LIBRARY_PATH=`pwd`
(一行で)
./sample_app -s setfile_tc_M2AVC_keep.txt -i SRK_sample.m2v.spes -o out_M2AVC.264.spes
./spes2es -o out_M2AVC.264.es out_M2AVC.264.spes
出来上がったout_M2AVC.264.esはsmplayerで再生できます。
Ubuntuとの環境の違いについて
Ubuntu(Debian系)ではspu-gcc等のspu関連の実行ファイルは /usr/bin 以下にインストールされますが、Fedora系では /opt/cell/toolchain/bin 以下にインストールされます。Makefile等でspu関連のツールのパスを指定してある場合等には修正が必要になります。
64bit環境での注意点
冒頭で述べたように現時点では64bit環境では32bitバイナリを生成して実行する形になります。
64bit環境で32bitバイナリを生成するには、gccのオプションに-m32を指定します。
このサイトのサンプルプログラムも32bit環境用に作られているので、64bit環境でコンパイルする場合は、Makefileの「CXXFLAGS =」の行に「-m32」を追加してください。
(例)
CXXFLAGS = -m32 -O3 -Wall -I$(SPURSTOP)/linux/include
また、64bit環境では、メモリが3GBまでのシステムでしか正常に動作しません。それ以上のメモリを積んだシステムでは32bit版のLinuxをインストールしてください。
SDKのマニュアル等
マニュアルはWindows版SDKのアーカイブに入っているのでそちらを解凍します。
cd
unrar x SDK1_5.rar
cd SpursEngineSDK1_5_1026_2009
unrar x Document_Japanese.rar
~/SpursEngineSDK1_5_1026_2009/Document_Japanese/ 以下に解凍されたpdfファイルをePDFViewer等で閲覧します。
SPEの仕様、プログラミング方法はCell/B.E.のマニュアルを参考にします。
Cell/B.E. 公開情報
参考文献等
熊本大学 総合情報基盤センターの永井さんによるKernel2.6.24対応パッチ
LEADTEK SpursEngine特設サイト
SpursEngine SDK配布サイト
LEADTEK SpursEngine SDK クイック スタート ガイド
サポート
この記事に関するご質問は
Cell/B.E. & SpursEngine BBSにお願いします。