2008/03/08
fedora8化した玄箱PROにuShareを導入する
作成者: love2hina
カテゴリー: 未分類
uShare 1.1aに必要なものは最終的にこうなりました。 libdlnaは特に必ず必要ではないのものの、とりあえずいれてあります。 ・pkg-config 0.23 ・libupnp 1.6.4 ・libdlna 0.2.3 ・ffmpeg まず、libupnpの導入は簡単。yumで配信されているので、これをインストールするだけでOK。 $ su - # yum install libupnp libupnp-devel libdlnaをコンパイルするのに、ffmpegのライブラリ群が必要なので、 ffmpegをmakeします。 コンフィグを共有ライブラリ設定で実行します。 $ cd ffmpeg $ ./configure --enable-shared $ make $ su - # make install ようやく、libdlnaをmakeします。 $ cd libdlna-0.2.3 $ ./configure Error, can't find libavformat ! エラーになりました... 調べてみると、ffmpegのバージョンが新しい為か、ヘッダーファイルの構成配置が変更されているようです。 libdlnaの想定 - ffmpeg/avformat.h ffmpegの配置 - libavformat/avformat.h そこで、コピーするか、シンボリックリンクで対処しましょう。 私は単純にコピーしました。 $ su - # cd /usr/local/include # mkdir ffmpeg # cp livavcodec/* ffmpeg/ # cp livavdevice/* ffmpeg/ # cp livavformat/* ffmpeg/ # cp livavutil/* ffmpeg/ さて、通るでしょうか? $ cd libdlna-0.2.3 $ ./configure 通りしましたので、makeします。 $ make あら、makeの最後のシンボリックリンクで失敗します。 ln -sf libdlna.so. libdlna.so. ln: `libdlna.so.' と `libdlna.so.' は同じファイルです libdlna-0.2.3/src/Makefileの19行目を書き換えます。 - LIBNAME_MAJOR = $(LIBNAME_SHARED).$(shell echo $(VERSION) | cut -f1 -d.) + LIBNAME_MAJOR = $(LIBNAME_SHARED).0.2.3 $ make $ su - # make install これで、ようやくuShare本体のコンパイル作業に入ります。 $ cd ushare-1.1a $ ./configure --enable-dlna Checking for libupnp >= 1.4.2 Error, libupnp < 1.4.2 ! と言われます。 どうやら、ヘッダーは見つかるのに、pkg-configで見つからないようです。 以下のような配置になっているためかと思われます。 /usr/lib/ libupnp → yumでインストールした為 /usr/local/lib libdlna → 自分でmakeした為 そこで、環境変数で両方のライブラリパスを探すように設定します。 $ PKG_CONFIG_PATH="/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig/" $ export PKG_CONFIG_PATH $ cd ushare-1.1a $ ./configure --enable-dlna Checking for libdlna >= 0.2.1 ... Error, libdlna < 0.2.1 ! /usr/local/lib/pkgconfig/libdlna.pcをみてみると、Versionの項目が空でした。 これも8行目を直接設定してあげます。 - Version: + Version: 0.2.3 あとはすんなりとmakeできました。 $ cd ushare-1.1a $ ./configure --enable-dlna $ make $ su - # make install 試しに起動してみます。 (私はだいたい--helpを打ち込んでみます) $ ushare --help 共有ライブラリが見つからないというエラーになります。 共有関係をみてみましょう。 $ ldd /usr/local/bin/ushare libixml.so.2 => /usr/lib/libixml.so.2 (0x40025000) libthreadutil.so.2 => /usr/lib/libthreadutil.so.2 (0x4002e000) libpthread.so.0 => /lib/libpthread.so.0 (0x4003b000) libupnp.so.3 => /usr/lib/libupnp.so.3 (0x40059000) libdlna.so.0.2.3 => not found libavformat.so.52 => not found libavcodec.so.51 => not found libz.so.1 => /lib/libz.so.1 (0x40663000) libm.so.6 => /lib/libm.so.6 (0x4067c000) libavutil.so.49 => not found libc.so.6 => /lib/libc.so.6 (0x40741000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40876000) /lib/ld-linux.so.3 (0x40000000) libdl.so.2 => /lib/libdl.so.2 (0x40889000) あらら、見事にffmpegとlibdlnaが見つかっていませんね。 そこで、/usr/local/lib/ にライブラリパスを通します。 シンボリックリンクでも良いのですが、今後も /usr/local/lib/ に 何かとライブラリを置きそうなので、こちらにしました。 $ su - # vi /etc/ld.so.conf で、 /usr/local/lib という行を追加し、保存したら設定を適用します。 # ldconfig # exit $ ushare --help uShare (version 1.1a), a lightweight UPnP A/V and DLNA Media Server. Benjamin Zores (C) 2005-2007, for GeeXboX Team. See http://ushare.geexbox.org/ for updates. Usage: ushare [-n name] [-i interface] [-p port] [-c directory] [[-c directory]...] Options: -n, --name=NAME Set UPnP Friendly Name (default is 'uShare') -i, --interface=IFACE Use IFACE Network Interface (default is 'eth0') -f, --cfg=FILE Config file to be used -p, --port=PORT Forces the HTTP server to run on PORT -q, --telnet-port=PORT Forces the TELNET server to run on PORT -c, --content=DIR Share the content of DIR directory -w, --no-web Disable the control web page (enabled by default) -t, --no-telnet Disable the TELNET control (enabled by default) -o, --override-iconv-err If iconv fails parsing name, still add to media contents (hoping the renderer can handle it) -v, --verbose Set verbose display -x, --xbox Use XboX 360 compliant profile -d, --dlna Use DLNA compliant profile (PlayStation3 needs this) -D, --daemon Run as a daemon -V, --version Display the version of uShare and exit -h, --help Display this help どうやら、成功のようです。
*/