zeldor.biz

Linux, programming and more

Copyright © 2023
Log in

DLNA – miniDLNA on Debian

January 8, 2012 by Igor Drobot 9 Comments

DLNA uses Universal Plug and Play (UPnP) for media management, discovery and control.
I love DLNA and last year I wrote a review post about my Silver Stone DC01, which is used to browse everything from my TV. I will try to set up a little Debian Server with analogical usage to the Silver Stone DC 01.
In this post I will use OpenSource DLNA Server MiniDLNA and I install it on Debian squeeze (version 6.0.3).

First you go to sourceforge and Download the latest miniDLNA package.

You can choose between a static or source version which must be compiled.

Compile process:

1
2
3
tar -xvf minidlna_1.0.22_src.tar.gz
cd minidlna-1.0.22/
make

tar -xvf minidlna_1.0.22_src.tar.gz cd minidlna-1.0.22/ make

To be able to compile please install:

1
apt-get install build-essential

apt-get install build-essential

To compile it you must install some dependencies like libsqlite3-dev libvorbis-dev, make will show them to you.

After successfully compiling process use:

1
make install

make install

to install miniDLNA.

Edit MiniDLNA configuration:

1
vim /etc/minidlna.conf

vim /etc/minidlna.conf

You need to fix only the following lines:

1
2
3
4
5
6
7
8
# Set this to the directory you want to share and scan
media_dir=/opt/Samba/Media
# Customize the server name that shows up on your clients
friendly_name=dc02
# Database folder
db_dir=/var/cache/minidlna
# Directory for MiniDLNA logs
log_dir=/var/log

# Set this to the directory you want to share and scan media_dir=/opt/Samba/Media # Customize the server name that shows up on your clients friendly_name=dc02 # Database folder db_dir=/var/cache/minidlna # Directory for MiniDLNA logs log_dir=/var/log

BTW this is the original miniDLNA config from Silver Stone DC01:

1
2
3
4
5
6
7
8
db_dir=/home/.nas
log_dir=/home/.nas
port=8200
strict_dlna=no
friendly_name=dc01
notify_interval=300
enable_tivo=no
media_dir=/home/admin/

db_dir=/home/.nas log_dir=/home/.nas port=8200 strict_dlna=no friendly_name=dc01 notify_interval=300 enable_tivo=no media_dir=/home/admin/

-d flag for debug mode
Debug output – shorted:

1
2
3
4
[2012/01/07 17:35:19] upnphttp.c:1126: debug: HTTP RESPONSE: HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Connection: close
Content-Length: 2211

[2012/01/07 17:35:19] upnphttp.c:1126: debug: HTTP RESPONSE: HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Connection: close Content-Length: 2211

If you have more than one interface in your server (eth0, eth1…) you need to bind the daemon to the interface ip-address otherwise miniDLNA will bind the daemon to eth0 :((:

Example:

1
minidlna -f /etc/minidlna.conf -a 10.1.100.1

minidlna -f /etc/minidlna.conf -a 10.1.100.1

By some reasons you can’t compile!?
Try the static version of miniDLNA out:

1
2
3
4
tar -xvf minidlna_1.0.23_static.tar.gz
mv etc/minidlna.conf /etc/
mv usr/sbin/minidlna /usr/sbin/
mkdir /var/cache/minidlna

tar -xvf minidlna_1.0.23_static.tar.gz mv etc/minidlna.conf /etc/ mv usr/sbin/minidlna /usr/sbin/ mkdir /var/cache/minidlna

Start miniDLNA-Server:

1
usr/sbin/minidlna -f etc/minidlna-id.conf

usr/sbin/minidlna -f etc/minidlna-id.conf

The result was fantastic:

At the time I’m working on a functional init-script for Debian to start the miniDLNA automatically at boot-process.

UPDATE – 12.01.2011
As promised two solutions for automatic start at boot:

The lazy one;):

1
vim /etc/rc.local

vim /etc/rc.local

Content:

1
2
3
4
if [ -d /opt/Media ]; then
minidlna -R -f /etc/minidlna.conf -a 10.1.100.1
fi
exit 0

if [ -d /opt/Media ]; then minidlna -R -f /etc/minidlna.conf -a 10.1.100.1 fi exit 0

Init-script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/sh
 
# chkconfig: 345 99 10
# description: Startup/shutdown script for MiniDLNA daemon
#
# Based on the MiniUPnPd script by Thomas Bernard
# Modified for MiniDLNA by Justin Maggard <jmaggard@users.sourceforge.net>
# Modified: status-function, another check of the media folder and some useful arguments Igor Drobot
#
### BEGIN INIT INFO
# Provides:          minidlna
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop::    $network $local_fs $remote_fs
# Should-Start:      $all
# Should-Stop:       $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: DLNA-Server
### END INIT INFO
 
MINIDLNA=/usr/sbin/minidlna
MEDIADIR=/opt/Media
ARGS='-R -f /etc/minidlna.conf -a 10.1.100.1'
 
test -f $MINIDLNA || exit 0
test -d $MIDIADIR || exit 0
 
 
. /lib/lsb/init-functions
 
case "$1" in
start)  log_daemon_msg "Starting minidlna" "minidlna"
        start-stop-daemon --start --quiet --pidfile /var/run/minidlna.pid --startas $MINIDLNA -- $ARGS $LSBNAMES
        log_end_msg $?
        ;;
stop)   log_daemon_msg "Stopping minidlna" "minidlna"
        start-stop-daemon --stop --quiet --pidfile /var/run/minidlna.pid
        log_end_msg $?
        ;;
restart|reload|force-reload)
        log_daemon_msg "Restarting minidlna" "minidlna"
        start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/minidlna.pid
        start-stop-daemon --start --quiet --pidfile /var/run/minidlna.pid --startas $MINIDLNA -- $ARGS $LSBNAMES
        log_end_msg $?
        ;;
status)
        status_of_proc -p /var/run/minidlna.pid $MINIDLNA minidlna &amp;&amp; exit 0 || exit $?
        ;;
*)      log_action_msg "Usage: /etc/init.d/minidlna {start|stop|restart|reload|force-reload|status}"
        exit 2
        ;;
esac
exit 0</jmaggard@users.sourceforge.net>

#!/bin/sh # chkconfig: 345 99 10 # description: Startup/shutdown script for MiniDLNA daemon # # Based on the MiniUPnPd script by Thomas Bernard # Modified for MiniDLNA by Justin Maggard <jmaggard@users.sourceforge.net> # Modified: status-function, another check of the media folder and some useful arguments Igor Drobot # ### BEGIN INIT INFO # Provides: minidlna # Required-Start: $network $local_fs $remote_fs # Required-Stop:: $network $local_fs $remote_fs # Should-Start: $all # Should-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: DLNA-Server ### END INIT INFO MINIDLNA=/usr/sbin/minidlna MEDIADIR=/opt/Media ARGS='-R -f /etc/minidlna.conf -a 10.1.100.1' test -f $MINIDLNA || exit 0 test -d $MIDIADIR || exit 0 . /lib/lsb/init-functions case "$1" in start) log_daemon_msg "Starting minidlna" "minidlna" start-stop-daemon --start --quiet --pidfile /var/run/minidlna.pid --startas $MINIDLNA -- $ARGS $LSBNAMES log_end_msg $? ;; stop) log_daemon_msg "Stopping minidlna" "minidlna" start-stop-daemon --stop --quiet --pidfile /var/run/minidlna.pid log_end_msg $? ;; restart|reload|force-reload) log_daemon_msg "Restarting minidlna" "minidlna" start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/minidlna.pid start-stop-daemon --start --quiet --pidfile /var/run/minidlna.pid --startas $MINIDLNA -- $ARGS $LSBNAMES log_end_msg $? ;; status) status_of_proc -p /var/run/minidlna.pid $MINIDLNA minidlna &amp;&amp; exit 0 || exit $? ;; *) log_action_msg "Usage: /etc/init.d/minidlna {start|stop|restart|reload|force-reload|status}" exit 2 ;; esac exit 0</jmaggard@users.sourceforge.net>

Filed Under: Debian, Linux, Networking Tagged With: Debian, Debian squeeze, DLNA, minidlna, Silver Stone DC01, UPNP

Categories

Archives

Tags

apache2 Apple arduino ARM Automation backup bash Cisco Cluster Corosync Database Debian Debian squeeze DIY DNS Fedora FTP Fun Icinga Ipv6 KVM Linux LVM MAC OS X Monitoring MySQL Nagios Nginx openSUSE OpenVPN PHP Proxy Python python3 qemu RAID rsync Samba security ssh Ubuntu virtualization Windows Windows 7 Wordpress

Comments

  1. tolostoi says

    December 17, 2014 at 22:23

    I am too lazy to read the minidlna documentation, but with workaround should work. Use mount cifs to mount samba share to folder, and then add this folder to minidlna library.

  2. zeldor says

    March 8, 2013 at 15:52

    Spook, the service script works fine. After start of minidlan there is more than one process and of course more pids(childs) you seen. But there is still the the main Process-ID which is still the same with /var/run/minidlna.pid

  3. Spook says

    March 5, 2013 at 16:03

    Hi Puck,
    thanks a lot for this very useful guide how to bring a minidlna server to live.
    I guess I wouldn’t have made it without it.
    One question regarding the start|stop script which for me doesn’t seem to work proper.
    If I start the script with argument status it always tells me that the minidlna is not running eventhough it definitely is.
    I figured that the PID in the /var/run/minidlna.pid file is always wrong and therefore it reports a wron status.
    Do you have any idea how to fix it.
    Thanks in advance
    Michael

  4. zeldor says

    July 15, 2012 at 12:55

    Fayaz Yusuf Khan, of course you can install additional the avahi-daemon and avahi-utils. This topic was written only with and for dlna, without another support software.

    And why not change the ip-address? If it is the cleverest solution!

  5. Fayaz Yusuf Khan says

    July 15, 2012 at 08:58

    No need of specifying the IP address or fixing a static IP. Simply install avahi-daemon and avahi-utils.

  6. Jens says

    June 24, 2012 at 20:42

    Helps me a lot.
    Thank you!

  7. Puck says

    April 13, 2012 at 20:04

    Oh and I forgot, to finish up the “add the script to boot” part make sure you chmod 777 /etc/init.d/minidlna and issue the command:
    update-rc.d minidlna defaults

  8. Puck says

    April 13, 2012 at 19:57

    Thank you for the great article, you saved me hours of searching.

    A bit of help for future readers:

    Anyone installing from a bare debian squeeze you have to
    add the multimedia repository to your /etc/apt/sources.list

    The multimedia repository is:
    deb http://www.debian-multimedia.org stable main non-free

    Then use this command:
    apt-get update && apt-get install debian-multimedia-keyring && apt-get update

    In the end you can install the required packages:
    apt-get install libavcodec-dev libavformat-dev libavutil-dev libflac-dev libvorbis-dev libogg-dev libid3tag0-dev libexif-dev libjpeg-dev libsqlite3-dev

    Hope it helps (:

Trackbacks

  1. How do you install minidlna for debian squeeze says:
    May 10, 2012 at 19:25

    […] […]

Leave a Reply

Your email address will not be published. Required fields are marked *