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は最新です。
よろしくお願いします。
No.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を追記して、~
失礼しました~
!動きました!
>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端子接続」でもまあまあ満足のいく環境ではあるのですが。
解決までお付き合い頂き感謝、感謝です。
No.3
- 回答日時:
がんばってますね
↓のFTPには、sqliteのバージョンをあげたものと、2009年9月時点のminidlnaの2種類おいてあります。
後者はsqliteのバージョンアップは不要で、うちでは、これであっさり BRAVIA にペンギンが現れています。
No.1
- 回答日時:
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 …
興味を持って頂いて、幸いです。
>・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でやってみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- 英語 英語の質問です 2 2022/03/24 14:59
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
gccのインクルードパスの確認
-
Linuxのgccのインクルードパス?
-
Apache2.2.4のmod_authnz_ldap
-
makeコマンドができない
-
bindインストール後、/etc/name...
-
macos での /usr/local/lib と...
-
Solaris10でCコンパイラが見...
-
Xineというソフトのインストー...
-
make でエラー
-
Mac上でPythonのtkinterを使っ...
-
virtual boxにインストールした...
-
ubuntu 初期化について
-
M.2 NVME SSDがWindowsからはア...
-
apt-getによるapacheのインスト...
-
Ubuntu on Xorgのログインについて
-
makeコマンドが使えません。
-
最近、よくOpenWall という言葉...
-
パソコンでゲームをプレイしよ...
-
外部レポジトリとは
-
rpmで競合しています
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gccのインクルードパスの確認
-
makeコマンドができない
-
perlのダウングレード方法
-
Debianでのmakeコマンドインス...
-
macos での /usr/local/lib と...
-
*** ターゲット `all' を make ...
-
ダウンロードファイルなどは、...
-
Mac上でPythonのtkinterを使っ...
-
make でエラー
-
glibcバージョンアップ
-
OpensslのVer.ダウン
-
Linuxのgccのインクルードパス?
-
readline インストールについて
-
ソースからmakeした場合の削除方法
-
./configureの次にmakeが出来ま...
-
Apacheのバージョンアップ方法
-
solarisのmakeについて
-
phpで再度configureする方法
-
Solaris10でCコンパイラが見...
-
linuxの/usr/includeについて
おすすめ情報