Ersetzen von Twonky DLNA Server auf dem Western Digital Mybook Live

Zusammenfassung & Voraussetzungen

Auf dem Mybook Live ist standardmässig der Twonky Media Server in Version 5 installiert. Da dieser nicht sehr gut mit meinem Samsung Fernseher zusammenarbeitet, war das Ziel diesen durch den Minidlna [2] zu ersetzten. Der folgende Artikel erklärt die Kompilation und Installation von minidlna. Minidlna ist auch in den Debian Paketquellen und sollte sich direkt auf dem Mybook Live installieren lassen, dieser hat bei mir jedoch nicht funktioniert. Daher wird hier beschrieben, wie man minidlna auf dem Mybook Live mit ARM Architektur baut. Vorausgesetzt werden Erfahrungen im Umgang mit der Linux Kommandozeile sowie einem Editor eurer Wahl, z.B. vim.

Zuerst empfehle ich außerdem, das MyBook Live (MBL) auf die aktuellste Firmware Version zu aktualisieren, da bei jeder Aktualisierung die folgenden Schritte erneut ausgeführt werden müssen. Das beschriebene Vorgehen wurde an einem MBL mit Firmware Version 2.11.09-053 durchgeführt.

Die beschriebene Vorgehensweise hat bei mir funktioniert, ich kann jedoch keinerlei Garantie für eventuelle Schäden an eurem Mybook Live abgeben. Falls ihr euer MyBook Live in einen teuren Briefbeschwerer verwandelt habt, sollte euch [4] helfen.

SSH-aktivieren

Falls nicht bereits geschehen, benötigen wir für die folgenden Schritte SSH Zugriff auf das MBL. Dazu greifen wir nach dem Anmelden unter http://mybooklive/UI/login auf http://mybooklive/UI/ssh zu wie unter [1] beschrieben. Anschließend kann man sich via ssh (z.B. mit putty) als Benutzer root mit dem auf der Seite angegebenen Passwort anmelden, welches man umgehend mit

passwd

ändern sollte. Im UI kann man unter Einstellungen->Medien auch den Twonky Dienst deaktivieren.

Vorbereitung für das Bauen von Minidlna

Auf dem Mybook live läuft ein ARM Debian Linux, also dürften sich alle die mit der Paketverwaltung von Debian/Ubuntu/Mint vertraut sind heimisch fühlen. Daher kommentieren wir zuerst mit vi die “squeeze” Zeile in /etc/apt/sources.list ein, dann installieren wir den Editor unserer Wahl, z.B.

apt-get update
apt-get install vim

Als nächstes erstellen wir ein Verzeichnis, in dem wir minidlna kompilieren. Empfehlenswert ist ein Verzeichnis unter /shares, weil dieses beim Update nicht gelöscht wird.

mkdir -p /shares/Public/minidlna-build && cd /shares/Public/minidlna-build

Nun holen wir uns die aktuelle Version des minidlna Quellcodes, entpacken ihn und wechseln in das entpackte Verzeichnis:

wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.0.24/minidlna_1.0.24_src.tar.gz
tar -xzf minidlna_1.0.24_src.tar.gz
cd minidlna-1.0.24

Anschließend installieren wir die benötigten Bibliotheken und Header Pakete:

apt-get install libavcodec-dev libsqlite3-dev libavformat-dev libjpeg62-dev libavutil-dev libexif-dev libflac-dev libid3tag0-dev libvorbis-dev libogg-dev make

bei mir scheitert obiges Kommando an der vorhandenen /etc/ld.so.conf.d/libc.conf aus dem Paket wd-lib. Die beiden Dateien sind bei mir identisch  (Sicherungskopie von libc.conf erstellen) und dann

dpkg -i --force-all /var/cache/apt/archives/libc-bin_2.11.3-3_powerpc.deb
dpkg -i --force-all /var/cache/apt/archives/libc6_2.11.3-3_powerpc.deb
apt-get -f install

dann dev-Pakete nochmals installieren.

Minidlna Build

Wenn alle Abhängigkeiten installiert sind

./genconfig

aufrufen und dann

INSTALLPREFIX=/opt make install

Konfiguration von Minidlna

Zuerst kopieren wir die .conf Vorlage

mkdir /opt/etc/ && cp minidlna.conf /opt/etc

Nun passen wir die minidlna.conf an folgenden Stellen an:

vim /opt/etc/minidlna.conf

Medienverzeichnisse, z.B.:

media_dir=V,/shares/Shared/Videos
media_dir=P,/shares/Shared/Bilder
media_dir=A,/shares/Shared/Musik

Name des minidlna Servers, z.B.:

friendly_name=MyBookLive MiniDLNA

und schalten das Log aus, da dies Probleme mit dem Standby des MBL geben kann:

log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=off

Minidlna Init Skript

Damit minidlna beim Hochfahren gestartet wird, erstellen wir ein Init Skript:

vim /etc/init.d/minidlna

mit folgendem Inhalt (siehe [3]):

#!/bin/sh

# chkconfig: 345 99 10
# description: Startup/shutdown script for MiniDLNA daemon
#
# $Id: minidlna.init.d.script,v 1.2 2009/07/02 00:33:15 jmaggard Exp $
# MiniUPnP project
# author: Thomas Bernard
# website: http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/

MINIDLNA=/opt/sbin/minidlna
ARGS='-R -f /opt/etc/minidlna.conf'

test -f $MINIDLNA || 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 $?
 ;;
*)      log_action_msg "Usage: /etc/init.d/minidlna {start|stop|restart|reload|force-reload}"
 exit 2
 ;;
esac
exit 0

welches wir noch mit

chmod +x /etc/init.d/minidlna

ausführbar machen. In die Runlevel tragen wir es mit

update-rc.d minidlna defaults

ein. Nun können wir den minidlna Server ohne Neustart mit

/etc/init.d/minidlna start

starten. Nach einigem warten (abklappern aller Mediendateien) sollte der minidlna Server zur Verfügung stehen.

 

  1. http://www.wlsoft.de/?q=node/133
  2. http://sourceforge.net/projects/minidlna/
  3. http://wiki.ubuntuusers.de/MiniDLNA
  4. http://mybookworld.wikidot.com/forum/t-368098