« Linuxのディストリビューション名を表示 | メイン | GeeXboX uShareでLinuxをXbox360のメディアサーバにする 運用失敗 »
2007年12月04日
GeeXboX uShareでLinuxをXbox360のメディアサーバにする インストール編 [PC Unix]/ [ゲーム]
12月のダッシュボードアップデートでXbox360のメディアプレーヤの対応フォーマットがDivXにまで及ぶとのことなので、ようやくうちのサーバに貯まった動画ファイルをXbox経由で見られるようになる。
WindowsマシンとWimdwosMediaPlayer11を使えば簡単だろうが、うちは常時稼働しているサーバはLinuxなのでわざわざもう一台Windowsマシンを常時稼働させたくない。というわけで今回の作業と相成りました。あまり情報が見つからず試行錯誤でかなり面倒だったので備忘録を残す。
目的:LinuxサーバをXbox360のメディアサーバにする
環境:Vine Linux3.2
必要な物:uShare、libupnp、libdlna、ffmpeg
ubuntuやFedoraなど今時のディストリ用にはパッケージが用意されているようだが、例のごとくVineは見向きもされてないのでソースからのインストール。uShareをmakeするためには他にlibupnpとlibdlnaが必要なのでそいつらから入れていく。
libupnp-1.4.6のインストール
現時点での最新版の1.6.1はうちのVine Linux3.2ではpthread関連のmakeエラーが解決できず使えない。POSIX threadsが含まれているglibc-develは当然インストール済みで当該ファイルと思われるlibpthread.soなども存在するんだがかなりからかってもエラーが解決できない。
そこで少し古いバージョン1.4.6を持ってきたらあっさりmakeできた。 ちなみにCentOS5のマシンでは1.6.1であっさりmakeできたのでkernel2.4と2.6の違いかコンパイルオプションの違いなどが原因かと推測される。 うーむ。かなりはまったが、まあ、よし。
wget http://jaist.dl.sourceforge.net/sourceforge/pupnp/libupnp-1.4.6.tar.bz2 tar xvzf libupnp-1.4.6.tar.bz2 cd libupnp-1.4.6 ./configure make make install
libdlna-0.2.3のインストール
libdlnaは、ffmpegの中にあるlibavformatが必要なのでまずffmpegをインストール。ffmpeg-0.4.9がインストール済みだったが古いのかなんなのかconfigureが通らなかった。 ffmpegの配布形態がよくわからなかったのでsvnの最新full checkoutをダウンロードした。http://ffmpeg.mplayerhq.hu/ffmpeg-checkout-snapshot.tar.bz2
wget http://ffmpeg.mplayerhq.hu/ffmpeg-checkout-snapshot.tar.bz2 tar xvzf ffmpeg-checkout-snapshot.tar.bz2 cd ffmpeg-checkout-2007-12-03 ./configure --enable-shared make make install
configureに--enable-sharedオプションを付けないとlibavformat等を共有ライブラリにしてくれないので注意。次にlibdlnaのインストール。
wget http://libdlna.geexbox.org/releases/libdlna-0.2.3.tar.bz2 tar xvzf libdlna-0.2.3.tar.bz2 cd libdlna-0.2.3 ./configure make make install
うちの環境だとmakeの最後で
ln -sf libdlna.so. libdlna.so. ln: `libdlna.so.' と `libdlna.so.' は同じファイルです make[1]: *** [lib_shared] エラー 1
というシンボリックリンクのファイル名生成に失敗したエラーをはくのでlibdlna-0.2.3/src/Makefileの19行目を下記のように決めうちでファイル名を生成するように変更
LIBNAME_MAJOR = $(LIBNAME_SHARED).$(shell echo $(VERSION) | cut -f1 -d.) ↓ LIBNAME_MAJOR = $(LIBNAME_SHARED).0
場当たり的対応だがまあよし。
GeeXboX uShareのインストール
ようやくuShare自体のインストール。
wget http://ushare.geexbox.org/releases/ushare-1.0.tar.bz2 tar xvzf ushare-1.0.tar.bz2 CFLAGS="-Os" ./configure --prefix=/usr --enable-dlna make make install-strip
うちの環境だとconfigure時に苦労して入れたlibupnp.pcが見つからないとのたまうので、下記のようにconfigureの前にPKG_CONFIG_PATHでlibupnp.pcがある場所を指定する必要があった。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
これで一通りのインストールは終了。とりあえずushareコマンドを叩いてみると共有オブジェトがいくつか見つからないらしいエラーがでるのでlddで依存関係を調べる。
ldd /usr/local/bin/ushare
libupnp.so.2 => not found
libthreadutil.so.2 => not found
libixml.so.2 => not found
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x4002c000)
libc.so.6 => /lib/i686/libc.so.6 (0x4007d000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
libupnp.so.2、libthreadutil.so.2、libixml.so.2はうちの環境だと/usr/local/libにあるので/lib以下にシンボリックリンクを張ってやる
ln -s /usr/local/lib/libupnp.so.2 /lib/libupnp.so.2 ln -s /usr/local/lib/libthreadutil.so.2 /lib/libthreadutil.so.2 ln -s /usr/local/lib/libixml.so.2 /lib/libixml.so.2
これでようやくuShareが起動するまでにこぎ着けました。やれやれ。力尽きたのでuShareの設定&稼働はこれから。
投稿者 Naka : 2007年12月04日 01:00
トラックバック
このエントリーのトラックバックURL:
http://voidmain.no-ip.com/~nakamoo/cgi-bin/mt/mt-tb_ren20061115.pl/371