Cell/B.E. & SpursEngine プログラミング
Home記事一覧BBS

FedoraにSpursEngine Linux SDKをインストールする

x86 PC上のFedora 13 - 16 (32/64bit版)にSpursEngine Linux SDKをインストールする方法です。

(更新)
2012/09/01 64bit環境での注意点(メモリ3GB以下のシステムでのみ動作)を追加。
2012/01/11 Fedora 16, Kernel 3.1.7での動作を確認しました。
2011/10/01 Kernel 2.6.40に対応しました。
2011/05/28 Fedora 15, Kernel 2.6.38に対応しました。f13sesdk.tar.gz(instsdk.pl)のバグを修正しました。
2010/12/08 Fedora 14, Kernel 2.6.35, 64bit環境に対応しました。
2010/10/18 Kernel 2.6.34に対応しました。
2010/08/31 公開

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'

開発用パッケージのインストール

【Fedora 14の場合のみ】
Fedora 14は標準ではPerlがインストールされていないため、インストールしておきます。(以下のインストールスクリプトで必要です。)

su -c 'yum install perl'

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'

【64bit環境の場合のみ】
64bit環境では、32bitバイナリのコンパイルのためにglibc-devel.i686とlibstdc++-devel.i686を追加でインストールします。

su -c 'yum install glibc-devel.i686 libstdc++-devel.i686'

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"'

【以前インストールしたドライバを再インストールする場合】
新しいパッチを当ててドライバを再インストールする時は、「~/SpursEngine_Linux_SDK_v1_5_3_2/driver/spurs_src」ディレクトリを一旦削除してから、ここからカーネルモジュールのインストールまでをやり直してください。

現在のカーネルに対応したカーネルモジュールをコンパイル
ドライバのソースコードを解凍

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

t_nagai_original_patch.diff は、熊本大学 総合情報基盤センターの永井さんが作成されたKernel2.6.24対応パッチです。

spurs_driver_patch.diff は、miyaが作成したそれ以降のバージョン用のパッチです。(永井さんのパッチも含めています)

以降の作業はカーネルがアップデートされる度に行う必要があります。

(一行で)
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を無効にする

(Fedora 15以降では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にお願いします。