アプリ版:「スタンプのみでお礼する」機能のリリースについて

CentOS 5.4
2.6.18-164.6.1.el5
i386

Sony BraviaでのDLNA視聴を目論み、
http://mypace75.blog92.fc2.com/blog-entry-725.html
http://d.hatena.ne.jp/ka_maru/20090918/1253273660
この辺りを参考にminidlnaの導入を試みています。

ライブラリ依存のエラーはyumで消えましたがSQLiteでこけるようです。
以下、makeの出力です。
$ make
Linking minidlna
upnpsoap.o: In function `SearchContentDirectory':
/home/user/minidlna/upnpsoap.c:1149: undefined reference to `sqlite3_malloc'
upnpsoap.o: In function `BrowseContentDirectory':
/home/user/minidlna/upnpsoap.c:972: undefined reference to `sqlite3_malloc'
sql.o: In function `sql_get_text_field':
/home/user/minidlna/sql.c:147: undefined reference to `sqlite3_prepare_v2'
/home/user/minidlna/sql.c:183: undefined reference to `sqlite3_malloc'
sql.o: In function `sql_get_int_field':
/home/user/minidlna/sql.c:82: undefined reference to `sqlite3_prepare_v2'
collect2: ld はステータス 1 で終了しました
make: *** [minidlna] エラー 1

/usr/include/sqlite3.hは存在しますが、ファイル内を検索しても
sqlite3_prepare_v2は無いようです。
yumで確認したところ、sqlite sqlite-devel sqlitemanagerは最新です。
よろしくお願いします。

A 回答 (4件)

立て続けにすみません。

(おもしろいもので・・・)

sqliteを /usr/local/ にインストールして、-L/usr/local/lib を加えてリンク。
これで、コンパイル直後に ldd minidlna とすると、/usr/local/lib/libsqlite.... を指しているのですが、実行時にどうしても /usr/lib/libsqlite.... を見に行ってしまうようです。

おそらくこれが原因で、起動してすぐにストップしているのではないでしょうか。

で、実行時に

LD_PRELOAD=/usr/local/lib/libsqlite3.so.0.8.6 ./minidlna -f minidlna.conf

とやったら、無事起動して、BRAVIAからも認識できています。

いかがでしょ?

# LD_PRELOAD しなくても良い本質的な正しい手順があるのではないかと思いますが、とりあえず。

この回答への補足

自分の「お礼」への補足ですが

誤>/etc/minidlna.confを追記して、LD_PRELOADの読み込みと/tmp/minidlna/files.dbの削除を
行うようにしました。

正>/etc/rc.d/init.d/minidlnaを追記して、~

失礼しました~

補足日時:2011/01/09 22:48
    • good
    • 0
この回答へのお礼

!動きました!

>LD_PRELOAD=/usr/local/lib/libsqlite3.so.0.8.6

これでした。

/etc/minidlna.confを追記して、LD_PRELOADの読み込みと/tmp/minidlna/files.dbの削除を
行うようにしました。

ただ、事前情報の通り、ビデオはmpeg2にしか対応していない感じですね…。
PT2+epgrecで録画して、cron起動のmencoderでXvid自動エンコード保存しているのですが…。
テレビ単体での録画資産の消費は(32F5では)出来ないと言う結論でした。

まあこれまでの「旧XBOX+XBMC+D端子接続」でもまあまあ満足のいく環境ではあるのですが。

解決までお付き合い頂き感謝、感謝です。

お礼日時:2011/01/09 22:45

がんばってますね



↓のFTPには、sqliteのバージョンをあげたものと、2009年9月時点のminidlnaの2種類おいてあります。
後者はsqliteのバージョンアップは不要で、うちでは、これであっさり BRAVIA にペンギンが現れています。
    • good
    • 0

パッケージ作ったので良かったらどうぞ



ftp://z1.plala.jp/minidlna/
    • good
    • 0

BRAVIA&CentOS使いなので、興味をそそられてやってみました。



・sqlite 以外のライブラリ依存関係はほぼ普通に yum で解消できたが、libavcodec 等については、ffmpeg-develをインストールしたら解消した、という点が少しトリッキーだった。
・sqlite については、make の冒頭メッセージで、「バージョンが古い。3.5.1以降を使え」と警告されている。当然、質問者と同様に失敗した。
・そこで、sqlite の新しいパッケージをインストールした。具体的には次のとおり。
 → fedora12 の updates から、src.rpm をもらってきて rebuild.
 → この際(たぶん rpm のバージョン互換性のため)md5sumエラーがでて、rpmbuild が走らなかった。
 → rpm2cpio で src.rpm の中身を展開して、ソース、パッチ、specファイルを取り出して、所定のディレクトリにコピーして rpmbuild -bb.
 → できあがった rpm をインストール

これで、minidlna のコンパイルが通りました。
最近になって、新しい sqlite を必要とするようになったのでしょうね。

で、上記は若干強引なので、minidlnaの少し前のスナップショットを使うか、CentOS 6 を待った方がいいかも。

で、それよりなにより、以下から、static バイナリを落として使うのが多分最も簡単かも。

 http://sourceforge.net/projects/minidlna/files/m …
    • good
    • 0
この回答へのお礼

興味を持って頂いて、幸いです。

>・sqlite 以外のライブラリ依存関係はほぼ普通に yum で解消できたが、libavcodec 等については、ffmpeg-develをインストールしたら解消した、という点が少しトリッキーだった。

そうなんです。ffmpegに当たるまで時間くってしまいました。yumは[mencoderに入ってる]とは言うんですが、mencoder関連は最新なのに…と。

>・sqlite については、make の冒頭メッセージで、「バージョンが古い。3.5.1以降を使え」と警告されている。当然、質問者と同様に失敗した。
質問を投稿してからの経緯としては、
1.適当なサイトからsqlite 3.7.4(のfc5だったかな?)のソースを拾ってきて、configureでprefixを/usr/local/bin/に指定して
make,make install。
2./usr/local/bin/sqlite/include/sqlite3.hとsqlite3ext.hの中で、質問で「関数が定義されていない」とエラーになる関数が定義されていることを確認。
3.コンパイル時にエラーを吐くminidlna/upnpsoap.cのinclude箇所を上記のsqlite3.7.4の方にフルパスで指定して修正。

…でminidlnaのコンパイルは通ったような気がします。すいませんもう記憶があやふやなもので…。あと操作したとしたら
/usr/lib/libsqlite3.soのシンボリックリンクを上記3.7.4に変えてldconfigしたくらい、でもこれは要らなかったかも。

まあとにかくminidlnaのコンパイル(make)は通ったので、checkinstallでrpm化して、rpmをインストール。
/etc/rc.d/init.d/に起動スクリプトを登録していざ起動…。
してるように見えますが、「minidlnaは停止していますがPIDが残っています」とのこと。
ググると、この状態でも起動しているような記述を見つけたので、とりあえず置いておきます。

結果として今のところ、NGです。

BRAVIA 32F5からは見つけてくれません。
CentOS側iptablesを停止させても見つけません。
minidlnaサーバ(固定アドレス)とBRAVIA(DHCP)の間はハブ1個だけ、有線です。
BRAVIAのネットワークは機能しており、NW診断、アクトビラは正常です。

確かにsqliteで「若干強引」な手を使っていますので、yumがsqliteを3.5.1に上げてくれればいいんですけどね。
yumはsqlite-3.3.6-5.i386 で最新だと言い張っておられます。
yumからsqliteを外そうにも、なぜか依存で141パッケージが削除されるようですので止めています。

astronaut様のrpmも試してみましたが、こちらでcheckinstallで作ったrpmと挙動は表面上
変わりません。BRAVIAでやっぱり見つけません。

「netstat -na | grep 8200」で見てみると「CONNECTED」となっています。minidlnaをstopしても同じです。
試しに/etc/minidlna.confのポートを変更してrestartしても、ポートの状態は変化ありません。

明日、staticでやってみたいと思います。

お礼日時:2011/01/09 01:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!