Ersetzen von Twonky DLNA Server auf dem Western Digital Mybook Live
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.
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.
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.
Wenn alle Abhängigkeiten installiert sind
./genconfig
aufrufen und dann
INSTALLPREFIX=/opt make install
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
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.