minidlna integrieren

kla960

Neuer User
Mitglied seit
31 Mrz 2006
Beiträge
94
Punkte für Reaktionen
0
Punkte
6
Wir wollen uns einen neuen Fernseher kaufen, der DLNA unterstütz. Da wäre es nicht schlecht, wenn man die Filme und Fotos von der angeschlossenen Festplatte einfach so ansehen könnte. Der von AVM eingebaute Mediaserver soll mit den Geräten von Sony oder Samsung nicht gehen. Bei minidlna habe ich bisher viel positives gelesen.

Bevor jeder fragt "was machst du den da?" sollte folgendes gesagt sein. Bis vor einer Woche konnte ich gerade mal meine eigenes freetz-Packet zusammenstellen und auf die Box bringen. Von Entwicklung habe ich keine Ahnung.

Trotzdem habe ich mich mal dran versucht Makefiles für freetz zu erstellen, um minidlna auf die BOX zu bringen.

Damit das gelingt, benötigt man erst mal folgende Libraries

8 - libexif
9 - libjpeg
10 - libid3tag
11 - libFLAC
12 - libvorbis
13 - sqlite3
14 - libavformat (the ffmpeg libraries)
15 - libuuid

libjbep, libid3tag,sqlite3 und libuuid habe ich bereits im freetz trunk gefunden. Für libexif,libFLAC, libvorbis, libavformat habe ich ensprechende mk-files erstellt. Die Libraries werden auch mittlerweile alle fehlerfrei compiliert. Für die ffmpeg Libraries ist uclibc-0.9.29 notwendig.
Alle Abhängigkeiten für minidlna sind also schon mal gegeben.
Vielleicht kann sich ja mal ein Experte ansehen, ob das alles in Ordnung ist. Anbei meine Änderungen für den libs-Ordner.

minidlna zu compilieren wird jetzt etwas schwieriger, da es hierfür kein configure gibt. Vielleicht bekomme ich hier ja ein wenig Unterstützung:)
Ggf. hilft der folgende Link
http://svn.nslu2-linux.org/svnroot/optware/trunk/make/minidlna.mk
 

Anhänge

  • libs.tgz
    2.3 KB · Aufrufe: 26
Für den Anfang gar nicht mal so schlecht. Ein paar Fragen (alle nur vom Lesen her):
  1. warum verwendest Du in ffmpeg.mk keine default Optionen? $(PKG)_CONFIGURE_DEFOPTS := n Gibt es dafür einen Grund?
  2. Landen denn alle ffmpeg/vorbis libraries wirklich im Image? Ich meine nicht (zumindest die drei ffmpeg Libraries).
  3. libid3tag hast Du bestimmt aus Versehen mitgepackt :)
 
1. warum verwendest Du in ffmpeg.mk keine default Optionen? $(PKG)_CONFIGURE_DEFOPTS := n Gibt es dafür einen Grund?

Weil viele der default Optionen nicht im Configure von ffmpeg enthalten sind und Fehler resultierten.

2. Landen denn alle ffmpeg/vorbis libraries wirklich im Image? Ich meine nicht (zumindest die drei ffmpeg Libraries).

Nein, noch nicht. Da die resultierende minidlna statisch verlinkt sein soll, habe ich darauf auch keinen Wert gelegt. Wenn ich das richtig verstehe, benötige ich dann die Libraries nicht im Image. Die Libraries usw. müssen also nur im Toolchain vorhanden sein damit minidlna kompiliert werden kann, oder?

3. libid3tag hast Du bestimmt aus Versehen mitgepackt :)

Da war ich wohl zu schnell beim packen.
 
Für minidlna wird nur eine vorbis library benötigt, aber 3 ffmpeg libraries. Wie muss den ein makefile aussehen damit alle 3 libraries im image landen? Muss man das wie bei den e2fsprogs angehen. An den ffmpeg binaries habe ich eigentlich kein interesse.
 
Im moment hänge ich an diesem Punkt:

Linking minidlna
/home/freetz/freetz-trunk/toolchain/build/gcc-4.2.4-uClibc-0.9.29/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/../lib/lib
avcodec.so.52: undefined reference to `truncf'
collect2: ld returned 1 exit status
make: *** [minidlna] Error 1

Hat jemand einen Tipp, woran das liegt?
 
-lm in link-Optionen?
 
-lm hat leider auch nicht geholfen.
 
ganz merkwürdig, in der statischen lib ist truncf enthalten, in der dynamischen fehlt die Funktion, uClibc-Fehler? Versuch mal libm-statisch dazu zu linken, indem Du vorübegehend dynamische Version (alle libm*.so* Dateien aus toolchain/build/gcc-4.2.4-uClibc-0.9.29/mipsel-linux-uclibc/lib) in ein anderes Verzeichnis verschiebst. Danach kopiere sie zurück.
 
Es wird daran liegen, dass trunc von uns in die uClibc gepatched wird...
Code:
--- toolchain/make/target/uclibc/0.9.29/210-trunc.patch	(revision 4158)
+++ toolchain/make/target/uclibc/0.9.29/210-trunc.patch	(working copy)
@@ -19,3 +19,13 @@
 +		return floor (x);
 +}
 +libm_hidden_def(trunc)
+--- libm/float_wrappers.c.orig	2007-04-12 03:41:16.000000000 +0000
++++ libm/float_wrappers.c	2010-01-03 21:15:09.000000000 +0000
+@@ -26,7 +26,6 @@
+ #undef L_remquof       /*float       remquof(float, float, int *);*/
+ #undef L_scalblnf      /*float       scalblnf(float, long);*/
+ #undef L_tgammaf       /*float       tgammaf(float);*/
+-#undef L_truncf        /*float       truncf(float);*/
+ 
+ /* Implement the following, as defined by SuSv3 */
+ #if 0
MfG Oliver
 
Wo finde ich diesen libm/float_wrappers.c-Patch? Hab' den im freetz-Baum nicht gefunden. Hast Du download-toolchain mit dem gebaut?
 
Es wird daran liegen, dass trunc von uns in die uClibc gepatched wird...
Code:
--- toolchain/make/target/uclibc/0.9.29/210-trunc.patch	(revision 4158)
+++ toolchain/make/target/uclibc/0.9.29/210-trunc.patch	(working copy)
@@ -19,3 +19,13 @@
 +		return floor (x);
 +}
 +libm_hidden_def(trunc)
+--- libm/float_wrappers.c.orig	2007-04-12 03:41:16.000000000 +0000
++++ libm/float_wrappers.c	2010-01-03 21:15:09.000000000 +0000
+@@ -26,7 +26,6 @@
+ #undef L_remquof       /*float       remquof(float, float, int *);*/
+ #undef L_scalblnf      /*float       scalblnf(float, long);*/
+ #undef L_tgammaf       /*float       tgammaf(float);*/
+-#undef L_truncf        /*float       truncf(float);*/
+ 
+ /* Implement the following, as defined by SuSv3 */
+ #if 0
MfG Oliver

So wie ich das sehe handelt es sich um einen Patch für den Patch 210-trunc.patch. Also muss man unter Compiler Options toolchain selber erstellen.
 
Genau. Ich hab die Änderung aus einem Changeset vom uclibc git abgeschaut. Bauen hat funktioniert. Ob die libm jetzt das tut was sie soll!?

MfG Oliver
 
Vielleicht habe ich mich unklar ausgedrückt... Der toolchain/make/target/uclibc/0.9.29/210-trunc.patch enthält lediglich die trunc (NB: kein f am Ende) Funktion, der Linker in #5 beschwert sich dagegen über truncf. Also dachte ich, wird diese in dem zweiten von Dir zitierten Patch (libm/float_wrappers.c) enthalten, fand den aber nicht... Oder ist das Zitierte irgendein svn/git diff?
 
Der Patch ist für den freetz trunk.

MfG Oliver
 
[offtopic]
Mann, bin ich blöd... vor lauter Bäumen den Wald nicht sehen...
[/offtopic]
 
Bei mir läuft es jetzt ohne Fehler durch. Danke. Auf der minidlna Seite kann man eine statische Binary laden. Wie kann man eine statische binary mit freetz erstellen?

Mal eine andere Frage. Woran kann es liegen, dass das resultierende Image 16MB bereits übersteigt, obwohl ich noch gar keine Pakete ausgewählt habe? Ich verwende entweder meinen vserver oder ein colinux image. Beide verwenden Centos 5.4.
 
Häng mal bitte deine build/modified/filesystem.log an.

Statisch kannst du bauen, wenn du "-static" zu LDFLAGS hinzufügst. Du musst aber aufpassen, dass du nicht die LDFLAGS von minidlna überschreibst.

MfG Oliver
 
Anbei das Logfile und das makefile von minidlna. ldflags sind nicht definiert. Wie schon gesagt existiert kein configure für minidlna. Ich habe -static mal bei den cflags hinzugefügt, dass bewirkt allerdings eine Menge Fehler und bricht schließlich ab.
 

Anhänge

  • DLNA.zip
    27.8 KB · Aufrufe: 18
Hallo zusammen,

ich bin auch kurz davor mir einen Samsung Fernseher mit DLNA Unterstützung zu kaufen und würde natürlich gerne weiterhin meine FritzBox 7270 als Streamingserver nutzen.

Sehe ich es richtig, dass ihr es geschafft habt minidlna erfolgreich in freetz zu integrieren?
Falls ja, könnte jemand noch einmal so nett sein vielleicht eine etwas zusammenhängendere Anleitung zu schreiben welche grundlegenden Schritte man vornehmen muss, um das ganze zu integrieren? Wenn ich die Wiki Seite zu eigenen Packages richtig verstehe, könnte man ja vielleicht sogar einen SVN Diff hier posten.

Vielen Dank schon mal im voraus,
Jan
 
@gerbi: Kannst du nicht lesen, oder was soll deiner Meinung nach heißen "...eine Menge Fehler und bricht schließlich ab..."? Wenn kla960 es fertig hätte, hätte er es hier sicherlich gepostet gehabt. Und so sieht es für mich hier erstmal nach eingeschlafen aus.

MfG
 

Statistik des Forums

Themen
246,295
Beiträge
2,249,596
Mitglieder
373,893
Neuestes Mitglied
Kukkatto
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.