[[Vorlage(Getestet, trusty, lucid, precise)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(1)]] [[Bild(/MT_logo.png, 150, align=left)]] MediaTomb ist ein freier UPnP-Medienserver ([wikipedia:Universal_Plug_and_Play:Universal Plug and Play]), der es erlaubt Mediendaten wie Filme und Musik über das Netzwerk an UPnP-fähige Geräte zu verteilen. Dazu zählen auch Geräte, die als [wikipedia:DLNA:]-fähig gekennzeichnet sind. Da in letzter Zeit vermehrt DLNA-fähige Geräte, wie Fernseher, Internetradios oder Spielekonsolen (z.B. PS3), auf den Markt kommen, bietet MediaTomb eine komfortable Lösung zur Übertragung von Musik oder Filmen vom Computer auf das jeweilige Gerät. = Installation = MediaTomb befindet sich in den offiziellen Paketquellen. Folgende Pakete müssen installiert werden[1]: {{{#!vorlage Paketinstallation mediatomb, universe }}} = Einstellungen = Die Einstellungen des Servers lassen sich mit einen Editor bearbeiten. Eine Anpassung kann nötig sein, wenn es zu Problemen mit der Verbindung der UPnP-Geräten kommt. Dazu muss man mit einem Editor[3] mit Root-Rechten[4] die Datei '''/etc/mediatomb/config.xml''' editieren. Eine genaue Beschreibung der einzelnen Optionen findet man auf der Homepage von [http://mediatomb.cc/pages/documentation#id2536421 MediaTomb] {en}. == Server starten/stoppen == MediaTomb wird automatisch beim Hochfahren des Computers gestartet. Er kann aber auch manuell über folgende Befehle im Terminal[2] gestartet werden: * Server starten: {{{#!vorlage Befehl sudo /etc/init.d/mediatomb start }}} * Server stoppen: {{{#!vorlage Befehl sudo /etc/init.d/mediatomb stop }}} * Server neustarten: {{{#!vorlage Befehl sudo /etc/init.d/mediatomb restart }}} [[Vorlage(Bildunterschrift, /MT_03.png, 300, "Benutzeroberfläche von MediaTomb", right)]] = Bedienung = Nach erfolgreichem Start des Servers kann man das Programm aufrufen. Daraufhin startet ein Browser und öffnet die Weboberfläche von MediaTomb. Alternativ erreicht man das auch durch Aufruf der Adresse `http://localhost:49152`. Erhält man die Meldung > "MediaTomb UI is disabled. Check your configuration." muss in der Datei '''/etc/mediatomb/config.xml''' der Eintrag `ui enabled="no"` auf "`yes`" gesetzt werden. In den Zeilen darunter lässt sich festlegen, ob der Zugang nur per Benutzernamen und Passwort möglich sein soll. Dazu wird "`accounts enabled`" auf "`yes`" gesetzt und bei "`user`" und "`password`" entsprechend ein Benutzername und ein Passwort eingesetzt. Die Oberfläche ist in 3 Bereiche aufgeteilt. Links oben kann man zwischen den Anzeigemodi ''Database'' und ''Filesystem'' wechseln. Links unten findet man eine Verzeichnisstruktur in Baumdarstellung. Der große Bereich rechts beinhaltet die jeweiligen Inhalte und die Schaltflächen zur Interaktion mit dem Programm. [[Vorlage(Bildunterschrift, /MT_04.png, 300, "Anzeigemodus Database", right)]] == Anzeigemodus Database == In diesem Modus werden alle freigegebenen Objekte angezeigt. Auf diese kann nun mit einem UPnP-fähigen Gerät über das Netzwerk zugegriffen werden. Zur Interaktion mit dem Programm stehen verschiedene Schaltflächen zur Verfügung. Die wichtigsten sind: * [[Bild(/MT_10.png)]] "Add item": Fügt ein neues Objekt hinzu * [[Bild(/MT_11.png)]] "Edit": Mit dieser Schaltfläche können verschiedene Informationen des Objekts bearbeitet werden. * [[Bild(/MT_12.png)]] "Remove": Deaktiviert die Freigabe des jeweiligen Objekts und entfernt es aus der Datenbank. * [[Bild(/MT_13.png)]] "Remove all": Entfernt das Objekt und alle Referenzen aus der Datenbank [[Vorlage(Bildunterschrift, /MT_05.png, 300, "Anzeigemodus Filesystem", right)]] == Anzeigemodus Filesystem == Dieser Modus zeigt das Dateisystem des verwendeten Computers an. Über die Baumstruktur kann man zu den Objekten navigieren, die freigegeben werden sollen. Dabei können sowohl einzelne Dateien oder auch ganze Ordner freigegeben werden. Für die Ordnerfreigabe besteht zusätzlich die Möglichkeit, eine automatische Aktualisierung des Inhalts zu aktivieren (''autoscan''). Dadurch wird der Inhalt des betroffenen Ordners innerhalb eines frei definierbaren Zeitintervalls auf Veränderungen überprüft. Folgende Schaltflächen stehen zur Verfügung: * [[Bild(/MT_20.png)]] "Add": Fügt eine Datei oder einen Ordner der Datenbank hinzu und gibt sie frei. * [[Bild(/MT_21.png)]] "Add as autoscan dir": Fügt einen Ordner der Datenbank hinzu und aktiviert die automatische Aktualisierung. = Problembehebung = == OpenVPN == Unter Umständen kann es zu Problemen kommen, wenn Mediatomb und OpenVPN gleichzeitig installiert sind. Das Problem äußert sich darin, dass die Weboberfläche von Mediatomb zwar erreichbar ist, der eigentliche UPNP Service aber nicht. Die Ursache ist hierfür, dass Mediatomb den UPNP Service scheinbar an die Netzwerkschnittstelle `tun0`, welches von OpenVPN angelegt wird, bindet. Stattdessen soll Mediatomb sich an die übliche Netzwerkschnittstelle binden, normalerweise also `eth0` oder `wlan0`. Ein einfacher Eingriff in die '''/etc/default/mediatomb''' des Mediatomb löst das Problem: {{{ ... # The network interface for MediaTomb to bind to and for which the multicast # routing entry should be added; "" if the route shouldn't be added at all. # For example: INTERFACE="eth0" INTERFACE="eth0" ... }}} ==Mediatomb startet nicht beim Start des Rechners== Es kann mitunter sein, dass die Netzwerkkarte beim Starten von Mediatomb noch nicht bereit ist. Zu Erkennen ist das in der Logdatei: {{{ ERROR: main: upnp error -117 ERROR: upnp_cleanup: UpnpUnRegisterRootDevice failed }}} Um das Problem zu lösen, kann man einfach Mediatomb später starten lassen. Dies erreicht man, in dem die alten Links in den '''/etc/rc*.d''' Ordnern entfernt werden und neue mit der Zahl `99` eingefügt werden: {{{#!vorlage Befehl sudo update-rc.d -f mediatomb remove #entfernen der alten Links sudo update-rc.d mediatomb defaults 99 #setzen der neuen Links }}} Nun startet Mediatomb wieder einwandfrei beim Hochfahren des Medienservers. Quelle: [http://h4des.org/index.php?inhalt=mediatombps3] == Firewall == Die Ports für MediaTomb können bei aktiver ufw auf folgende Weise zugelassen werden: {{{#!vorlage Befehl sudo ufw allow 1900/tcp sudo ufw allow 1900/udp sudo ufw allow 49152/tcp sudo ufw allow 49152/udp }}} == Probleme bei der Darstellung von Umlauten == Dieses Problem resultiert daher, dass standardmäßig kein erweiterter Zeichensatz spezifiziert ist. Das kann man durch folgende Schritte beheben. Falls MediaTomb gerade läuft, sollte der Server zunächst gestoppt werden. Anschließend muss man mit einem Editor[3] mit Root-Rechten[4] die Datei '''/etc/mediatomb/config.xml''' editieren. Nun sucht man sich folgende Zeile heraus: {{{#!code xml }}} Unterhalb dieser Zeile, fügt man folgende zwei xml-Knoten ein: {{{#!code xml UTF-8 UTF-8 }}} Nach dem Speichern der Datei und dem Start von MediaTomb, müssen die betreffenden Dateien einmal neu eingelesen werden. Dazu werden diese aus der Freigabeliste entfernt und neu hinzugefügt. Jetzt sollten die Umlaute korrekt dargestellt werden. == Fehlermeldungen bezüglich der Datenbank == Es kann von Zeit zu Zeit vorkommen, dass die Datenbank-Datei fehlerhaft ist. Das macht sich z.B. durch Fehlermeldungen wie diese bemerkbar: {{{ error: database disk image is malformed }}} Um dieses Problem zu beheben, muss MediaTomb gestoppt und die fehlerhafte Datenbank gelöscht werden: {{{#!vorlage Befehl sudo rm /var/lib/mediatomb/mediatomb.db }}} Bei dem nächsten Start wird automatisch eine neue Datei angelegt. Zu beachten ist allerdings, dass auch sämtliche Freigaben neu angelegt werden müssen. == Workaround für Samsung Smart TV 2012 == Bei TVs der Marke Samsung wird der RFC2396 verletzt, was dazu führt, dass mit allshare nicht auf den Mediatomb-Server zugegriffen werden kann. Um dieses Problem zu umgehen muss Mediatomb mit einem zusätzlichen Patch-File kompliert werden. Das Patchfile kann [http://sourceforge.net/tracker/download.php?group_id=129766&atid=715782&file_id=445437&aid=3532724 hier] {dl} herunterladen werden (Dateiname sollte '''mediatomb-urifix.patch''' sein). Am einfachsten ist es, wenn man das File unter '''/tmp/''' speichert (diese Anleitung geht generell davon aus, dass alles unter '''/tmp/''' gemacht wird). Anschließend muss man das Patchfile verändern, dass es so aussieht (es muss Zeile 1 gelöscht werden und die Zeile 2 und 3 müssen leicht verändert werden): {{{ --- a/tombupnp/upnp/src/genlib/net/uri/uri.c +++ b/tombupnp/upnp/src/genlib/net/uri/uri.c @@ -1042,7 +1042,8 @@ out->path_type = REL_PATH; } - if( ( ( begin_hostport + 1 ) < max ) && ( in[begin_hostport] == '/' ) + //parse hostport only if scheme was found + if( ( begin_hostport > 0 ) && ( ( begin_hostport + 1 ) < max ) && ( in[begin_hostport] == '/' ) && ( in[begin_hostport + 1] == '/' ) ) { begin_hostport += 2; @@ -1059,6 +1060,12 @@ out->hostport.text.size = 0; out->hostport.text.buff = 0; begin_path = begin_hostport; + + //remove excessive leading slashes (fix for Samsung Smart TV 2012) + while( ( ( begin_path + 1 ) < max ) && ( in[begin_path] == '/' ) && ( in[begin_path + 1] == '/') ) { + begin_path++; + } + } begin_fragment = }}} Nachdem das Patchfile editiert wurde, muss man noch die notwendigen Pakete zum Kompilieren herunterladen (als root): {{{ apt-get install dpkg-dev devscripts fakeroot apt-get build-dep mediatomb apt-get source -d mediatomb cd /tmp dpkg-source -x mediatomb_0.12.1-0ubuntu4.dsc }}} Nun muss das Patchfile in die Sourcen integriert werden: {{{ echo mediatomb-urifix.patch >> mediatomb-0.12.1/debian/patches/series cp mediatomb-urifix.patch mediatomb-0.12.1/debian/patches/ }}} Jetzt können die Sourcen kompiliert werden: {{{ cd mediatomb-0.12.1/ dpkg-buildpackage -rfakeroot }}} Mediatomb ist jetzt fertig kompiliert und kann installiert werden. Davor muss allerdings der ggf. bereits installierte Mediatomb Server deinstalliert werden (VORSICHT: hierbei geht u. a. die config.xml verloren -- diese sollte vorher gesichert werden): {{{ apt-get remove mediatomb }}} Um Mediatomb jetzt zu installieren geht man folgendermaßen vor: {{{ cd /tmp dpkg -i mediatomb-common_0.12.1-0ubuntu4_amd64.deb mediatomb-daemon_0.12.1-0ubuntu4_all.deb mediatomb_0.12.1-0ubuntu4_all.deb }}} Quellen: * [http://sourceforge.net/tracker/index.php?func=detail&aid=3532724&group_id=129766&atid=715782] {en} * [http://www.gnulnx.net/2012/11/18/compiling-mediatomb-on-ubuntu-12-04-with-support-for-samsung-smart-tvs/] {en} = Links = == Intern == * Andere DLNA-Server: * [:ReadyMedia:] (früher miniDLNA) * [:uShare:] * [:Musik_verwalten:] - weitere Möglichkeiten, um einen Medienserver umzusetzen == Extern == * [http://mediatomb.cc/ Projektseite] {en} * [ubuntu_doc:community/MediaTomb:Wiki-Eintrag bei ubuntu.com] {en} * [http://www.be-jo.net/de/2009/11/medienserver-fur-die-ps3/ Anleitung für Mediatomb und PS3] {de} - Blogbeitrag, 11/2009 * [googlecode:ps3mediaserver:] {en} - alternativer DLNA-Media-Server * Allgemeine Information von Wikipedia: * [wikipedia:DLNA:] * [wikipedia:Universal_Plug_and_Play:UPnP] * [wikipedia:Streaming_Media:Medienstreaming] #tag: Netzwerk, Internet, Server, Multimedia, Streaming, UPnP, DLNA