Is that code compiled for an i386 architecture not the ARM architecture? If so someone would need to recompile to ARM.
But if done it probably could be added to the router and just ran as an additional program. No new firmware needed. (I am guessing)
Categories: Open Source Projects and Firmware
Hello everyone,
We're looking for our skilled community members to step up and check out the MiniDLNA server software, which is compatible with the NETGEAR WNR3500L open source router.
This requires that you set up the proper cross-compiling environment with the necessary shared libraries, to turn your WNR3500L into a DLNA server.
We are looking for someone, or a group of course, to create a ready-made firmware for the WNR3500L that includes this software.
Please post if you are interested or have any questions, and good luck!
Download the MiniDLNA Code Here!
Peter Redmer
Administrator
Blog | Twitter
@Brandon, if you download the static you can run "readelf -h minidlna" to get information about the binary. You will see, that is is compiled for i386.
In order to compile minidlna, you need to check out the latest source code with:
cvs -z3 -d:pserver:anonymous@minidlna.cvs.sourceforge.net:/cvsroot/minidlna co -P minidlna
I was trying to compile it with the optware toolchain ( http://www.nslu2-linux.org/wiki/FAQ/Optware-uClibcBuild ) because it has the minidlna source code (20090413) with all dependencies (libexif, libjpeg, libid3tag, libFLAC, libvorbis, sqlite3, libavformat/ffmpeg, libuuid).
However compiling ffmpeg stops with 'img_convert' is deprecated.
I fixed the ffmpeg problem, but I cannot compile minidlna:
uuid.c:40: error: '__NR_clock_gettime' undeclared (first use in this function)
I've checked the dd-wrt v24_2 linux header files, but this function is not there.
It might require a special kernel or any ideas?
Finally I've got minidlna working on my WNR3500L. I can play mp3 files and see jpeg images on the PS3 from the router.
I've compiled with optware-clibc-0.9.28 and installed with ipkg-opt. The source had to be patched, because __NR_clock_gettime and __NR_inotify syscalls are not implemted. As a result inotify is still not working, and I need to rebuild the database manually after copying files to the media library. Next time I will try with uclibc 0.9.29 or later with all the dependent packages.
@netgearl - this is fantastic! I'm not an expert, so I'm curious as to how an average user might be able to take advantage of your hard work and get miniDLNA running on their WNR3500L.
In other words, is there a final firmware build that you can submit to the community with miniDLNA compatibility pre-installed, that users could easily upgrade to?
If not, I'd love to help you get a tutorial up and running on the community to show other users how to download and compile, if possible.
Let me know, we can communicate via PM if you prefer!
Hi Peter,
I just wanted to get it work as a package on my router. I wouldn't say it will fit into 8MB flash, because it requires a lot of other packages, logging space and of course the media files. So in my opinion it needs be installed on USB drive. I choose optware to compile, but current stable packages are compiled with uclibc9.27-9 and this minidlna requires more recent uclibc, because some functions are still not working. I would suggest trying to compile it with the dd-wrt toolchain or other. It will be a hard work to get all the dependencies compiled.
because __NR_clock_gettime and __NR_inotify syscalls are not implemted
You have to compile using K26 sources
Hi Kong!
Yes you are perfectly right, but K26 headers was not in the optware official toolchain when I tried first.
I compiled this minidlna with K26 sources with a different toolchain.
Now I have this issue:
inotify.c:189: warn: WARNING: Could not read inotify max_user_watches! Hopefully it is enough to cover 0 current directories plus any new ones added.
/proc/sys/fs/inotify/max_user_watches doesn't work or not implemented.
Any ideas on this? Thanks.
DD-WRT does not have inotify compiled in kernel, don't know if tomato has it enabled. Unfortunately you cannot compile inotify as module and install it later on.
So it requires a customized kernel.
Hi there, I've following this thread for a wile now... Is there any update in this quest for the firmware with miniDLNA?
Thank you
I'm have just compiled,tested a dd-wrt image with included samba3, once I have the webpage + config scripts for samba ready, I will integrate minidlna.
In addition, please let me know when you have it ready. We'd love to feature it on the site.
netgearl said: Hi Kong! Yes you are perfectly right, but K26 headers was not in the optware official toolchain when I tried first. I compiled this minidlna with K26 sources with a different toolchain. Now I have this issue: inotify.c:189: warn: WARNING: Could not read inotify max_user_watches! Hopefully it is enough to cover 0 current directories plus any new ones added. /proc/sys/fs/inotify/max_user_watches doesn't work or not implemented. Any ideas on this? Thanks.My build of dd-wrt with included samba3 now has inotify enabled.
Kong said: My build of dd-wrt with included samba3 now has inotify enabled.
Kong,
First of all thanks for your samba enabled firmware. I tested my minidlna package on it and it works pretty good with inotify support, even on NTFS USB drive. It doesn't work with your embedded uclibc, I've used uClibc-0.9.28 from optware. The required size of the minidlna package is minimum 9.3 MB (3.3 MB in tar.gz format). I'm not sure how this package should be integrated into the firmware (maybe loaded to ramdisk?), but I can run this from USB without optware or any other ipkg prerequisites.
Hi netgearl,
actually with included minidlna the firmware size is 6.9MB:-)
I have already flashed my WNR. Once I finish my tests tonight I'll upload the new mod with included minidlna + a few fixes for samba.
Kong said: Hi netgearl, actually with included minidlna the firmware size is 6.9MB:-)
Hi Kong,
Great work, but how did you manage it? Have you included the libraries?
http://minidlna.cvs.sourceforge.net/viewvc/minidlna/minidlna/INSTALL?revision=1.4&view=markup
Hi netgearl,
the libraries are all statically compiled in. The biggest challenge was to create my own patched toolchain. DD-WRTs toolchain uses an older uClibc that does not include all functions which are needed by minidlna. On the other hand you cannot use a default openwrt toolchain , since dd-wrt added features to its toolchain that are not in any standard toolchains:-)
Now based on latest kamikaze openwrt toolchain I have an updated toolchain that has the neccessary changes to be compatible with dd-wrt sources + new features and enhancements from newer uClibc.
Hello everyone,
I looked through all the posts here and I must say you all people are doing an awesome job. I had been trying to cross-compile miniDLNA for ARM and have been running into issues.
Actually, I manually cross-compiled all the dependent libraries except libFLAC. I couldn't cross-compile it as I was getting errors with "ogg". I am stuck here, with no progress ahead.
Does anyone know precisely how can I get miniDLNA cross-compiled.
Thanks in advance.
hi all
I am interested to compile minidlna for ARM as well, but not sure how to start.
Any guide will be appreciated.
Hi,
Is this thread still active? I believe there are even more people like me who want to compile minidlna for ARM.
What I did is:
--> I downloaded all the seven dependent libraries and cross-compiled them (except sqlite3, which I got it directly).
--> Then I modified the makefile to include the headers and libraries from these cross-compiled files.
However, everything compiles fine, but during linking I get an error saying:
Linking minidlna
/usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/../../../../arm-unknown-linux-gnueabi/bin/ld: skipping incompatible /minidlna_arm_libraries/libexif/lib/libexif.so when searching for -lexif
/usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/../../../../arm-unknown-linux-gnueabi/bin/ld: skipping incompatible /minidlna_arm_libraries/libexif/lib/libexif.a when searching for -lexif
/usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/../../../../arm-unknown-linux-gnueabi/bin/ld: cannot find -lexif
collect2: ld returned 1 exit status
make: *** [minidlna] Error 1
Can anyone help?
Does anyone have previous experience of succesfully cross-compiling minidlna for ARM. Hope the administrator looks into this and I find a solution.
Thanks in advance.

RSS

