10/14/2016

Raspberry Pi als DLNA-Medienserver mit ReadyMedia einrichten

In diesem Tutorial möchte ich euch beschreiben, wie ihr mit eurem Raspberry Pi einen kostenlosen DLNA-Server für euer Heimnetzwerk einrichten könnt und die Daten von euren USB Devices (Festplatten & Sticks) anderen Geräten in eurem Heimnetzwerk per WLAN zur Verfügung stellt.

An wen richtet sich dieses Tutorial: Noobs, Anfänger und Fortgeschrittene.

Im Netz gibt es zum Thema DLNA schon einige Tutorials, aber keines davon führte mich zum Ziel. Daher die Idee mit diesem Tutorial, das euch hoffentlich hilft und die Zeit für die Einrichtung verkürzt.

Kurz vorweg, ich bin kein Linux Experte und besitze meinen Raspberry Pi 3 Model B erst seit ein paar Tagen. Ich bin eigentlich ein Windows User und habe diverse USB Festplatten und fand es immer schon lästig, wenn man z.B. die Fotos, Filme und Musik von den USB Devices auf anderen Geräten im Haushalt wiedergeben wollte. 


Das Ziel dieses Tutorials ist es also, dass ihr, wenn ihr eine oder mehrere USB Devices habt, diese an euer Raspberry Pi (direkt oder per USB-Hub) anschließen könnt und dann mit euren DLNA-fähigen Geräten per WLAN auf die Medien, die auf diesen Geräten gespeichert sind, zugreifen könnt. Wir fangen bei Null an mit einem jungfräulichen Raspberry Pi und am Ende habt ihr ein komplett konfiguriertes System.


 

Setup

 

Mein PC Setup:
- Windows 8 PC mit Putty SSH Client installiert
- SD-Karten Lesegerät (bei vielen schon mit eingebaut)
- Diverse externe USB Festplatten


Mein Raspberry Pi Setup:
- Raspberry Pi 3 Model B
- Raspberry Pi 3 Gehäuse von KuGi
- Rydges SpeedPower High-Quality PC Netzteil
- EasyAcc Superspeed USB 3.0 7 Port Hub
- SanDisk Extreme 32GB Class 10 microSDH
- AmazonBasics Hochgeschwindigkeits-HDMI-Kabel

Die hier aufgezählten Produkte sind Affiliate-Links

Hinweis: Falls ihr euren Pi bereits angeschlossen und aufgesetzt habt, könnt ihr die folgenden Abschnitte überspringen und direkt mit zum Punkt DLNA-Server einrichten weitergehen. Für alle anderen gibt es hier eine Anleitung mit ersten Schritten wie ihr euren Pi installieren könnt.

 

Raspberry Pi anschließen und installieren


Nachdem ihr den Raspberry Pi angeschlossen habt kann es eigentlich schon direkt losgehen.
Ich habe hier einen Monitor stehen mit zwei HDMI Eingängen. Am einen hängt der PC und an dem anderen der Raspberry Pi. Ich kann also immer zwischen beiden Geräten hin und her switchen. Falls ihr mehrere Monitore habt, dann ist das natürlich noch bequemer. Natürlich solltet ihr noch, zumindest für den Anfang, eine Maus und eine Tastatur an euren Raspberry Pi klemmen. Zur Not könnt ihr aber auch diese Geräte switchen und für PC & Pi nutzen. Ist dann etwas lästig mit den Kabeln, aber ich habe in diesem Tutorial versucht darauf zu achten, dass ihr den Pi nur einmal zu Beginn mit Maus und Tastatur ansteuern müsst. Wenn ihr mit den ersten Schritten durch seid, dann steuert ihr den Pi komplett von eurem PC aus.

 

Los geht’s


Installiert euch zuerst einmal PuTTY auf eurem PC, damit ihr später per SSH auf euren Pi zugreifen könnt. Später mehr dazu.

Jetzt zur SD-Karte, um genau zu sein zur microSD-Karte, denn der Pi schluckt nur die kleinen Karten. Bei der von mir verlinkten Karte ist ein SD-Karten Adapter dabei, damit ihr die Daten auch mit eurem PC auf die Karte bekommt. Jetzt spielt ihr das Betriebssystem auf die Karte. Dazu könnt ihr einfach auf die offizielle Raspberry Pi Webseite gehen und klickt dort auf den Menüpunkt DOWNLOADS. Dort ladet ihr euch dann NOOBS runter. Ich habe einfach die ZIP heruntergeladen.



Wenn der Download abgeschlossen ist entpackt ihr die ZIP einfach und kopiert den Inhalt auf eure SD-Karte. Danach entnehmt ihr die microSD-Karte aus dem Adapter und steckt sie in den Pi. Jetzt klemmt ihr das Stromkabel an den Pi. Soweit so gut. Der Pi startet nun. Ihr folgt einfach den Installationsanweisungen und installiert NOOBS, bzw. Raspbian. Mit wenigen Mausklicks und ein paar Minuten Geduld läuft euer System. 

Stellt nun die Verbindung zu eurem WLAN her. 



Danach öffnet ihr die Konsole. 



Bevor ihr weitermacht, empfiehlt es sich euer System auf den neuesten Stand zu bringen.
Gebt dazu folgendes ein um eure package list zu updaten:


sudo apt-get update


Und jetzt gebt ihr noch folgendes ein um eure packages zu upgraden:


sudo apt-get upgrade


Nach ein paar Minuten ist auch dieser Prozess abgeschlossen und es kann weiter gehen.

 


SSH Zugriff unter Raspbian einrichten




Damit ihr gleich den Pi von eurem PC aus steuern könnt sind noch ein paar Schritte notwendig.
Solltet ihr eine ältere (bei der aktuell verlinkten Version ist das nicht nötig) oder eine andere Distribution haben, dann müsst ihr den SSH-Server manuell installieren.
Gebt dazu folgendes ein wenn nötig:


sudo apt-get install ssh


Jetzt könnt ihr den SSH-Server starten. Dieser Schritt ist in jedem Fall nötig:


sudo /etc/init.d/ssh start


Damit der SSH-Server automatisch bei jedem Neustart vom Pi startet, empfehle ich noch folgendes einzugeben:


sudo update-rc.d ssh defaults

Nun müsst ihr noch die IP-Adresse von eurem Pi herausfinden.
Gebt dazu folgendes in die Konsole ein:


ifconfig


Jetzt schaut ihr bei wlan0 nach der inet Adresse.
In meinem Fall lautet die IP-Adresse: 192.168.0.21
Notiert euch die IP-Adresse bevor ihr weiter macht.





Wechselt nun zu eurem PC und startet PuTTY. Dort gebt ihr in das Feld Host Name (or IP address) eure eben ermittelte IP-Adresse ein. Damit ihr das nicht immer wieder machen müsst empfiehlt es sich eine Session zu speichern. Klickt nun auf Open.



 

Es sollte sich eine Konsole öffnen, die euch fragt mit welchen Zugangsdaten ihr euch beim Pi anmelden wollt.



Die Default Zugangsdaten sind immer:
User: pi
Password: raspberry

 
Gebt nun also zuerst pi ein und bestätigt mit Enter.





Jetzt das Passwort raspberry eingeben und wie immer mit Enter bestätigen. 

Nicht wundern: Bei der Eingabe des Passworts erscheinen keine Symbole in der Konsole.
Solltet ihr die Zugangsdaten korrekt eingegeben haben, dann erscheint der folgende Screen und ihr seid startklar um den DLNA-Server einzurichten. 




 

DLNA-Server einrichten


Da der Pi nur über wenige USB-Anschlüsse verfügt, empfiehlt es sich einen USB-Hub zu verwenden. Ich habe oben den USB-Hub verlinkt den ich benutze.
Wichtig, wenn eure USB Devices nicht über eine eigene Stromversorgung verfügen ist ein USB-Hub mit Stromversorgung Pflicht. Der Pi schafft es ansonsten häufig nicht die angeschlossenen Geräte alle mit ausreichend Strom zu versorgen. Es kann auch zu Abstürzen kommen. Erspart euch das also am besten und benutzt z.B. den von mir verlinkten USB-Hub oder einen eurer Wahl.
Schließt eure Festplatten usw. jetzt am Pi, bzw. am Hub an und startet diese, falls die Geräte einen eigenen An- / Ausschalter haben. Wartet ggf. ein paar Sekunden bis die Geräte alle laufen.

In meinem Fall habe ich drei externe Festplatten mit den Namen Volume, TREKSTOR und G-Drive angeschlossen. Ich erkläre das ganze Prozedere daher von diesem Setup ausgehend.

Als DLNA-Server verwenden wir ReadyMedia. Besser bekannt unter dem früheren Namen MiniDLNA.
Bevor wir weitermachen: Ich verwende in diesem Tutorial immer den Namen MiniDLNA. Bitte nicht davon irritieren lassen. Da der DLNA-Server in der Konsole auch über den Namen minidlna angesteuert wird macht das aus meiner Sicht Sinn.

Wir installieren jetzt aber noch nicht den DLNA-Server, sondern kümmern uns erst einmal um die Datenträger(Festplatten und/oder USB-Sticks). Die wollen wir mounten. Um das machen zu können benötigen wir die UUID und den TYPE der Geräte.
Um an diese Daten zu kommen geben wir in der Konsole ein:


sudo blkid


Ihr erhaltet eine Liste in der ihr nach euren Datenträgern suchen müsst. In dem folgenden Screenshot seht ihr wie das in meinem Fall aussieht. Zu sehen sind die UUID´s und die TYPEn der einzelnen Geräte. Notiert euch diese Daten und haltet euch bereit diese im übernächsten Schritt einzugeben.





Nun müssen wir Verzeichnisse erstellen in die wir die Datenträger mounten. Für jeden Datenträger ein Verzeichnis. In meinem Fall sind das nach Adam Riese 3 Verzeichnisse. Ich war bei der Benennung nicht besonders kreativ und habe als Namen HDD1 (für Volume), HDD2 (für TREKSTOR) und HDD3 (für G-Drive) gewählt. Natürlich könnt ihr hier nach Belieben auch andere Namen wählen. Zusätzlich zum Erstellen der Verzeichnisse müssen wir uns auch noch um deren Rechte kümmern, damit verschiedene User Zugriff haben.
Am Beispiel für HDD1. So wird das Verzeichnis erstellt:


sudo mkdir -p /media/HDD1


Und so vergeben wir die Rechte für HDD1:


sudo chmod 755 /media/HDD1


Dieses Prozedere wiederholen wir jetzt noch für die anderen Datenträger/Verzeichnisse:


sudo mkdir -p /media/HDD2
sudo chmod 755 /media/HDD2


Und:

sudo mkdir -p /media/HDD3
sudo chmod 755 /media/HDD3


Wer mehr über chmod, Dateirechte und 755, 777, etc. erfahren will der findet hier eine sehr gute Erklärung.

Jetzt sind die Verzeichnisse erstellt und die Rechte vergeben. Ihr könnt euch das nun z.B. direkt in Raspbian mit dem Dateimanager anschauen.
Auf der linken Seite vom Dateimanager seht ihr im Verzeichnisbaum meine drei Laufwerke und rechts daneben meine Medienverzeichnisse von HDD1 (für Volume)





Um die Datenträger zu mounten müssen wir nun die Datei fstab editieren:

sudo nano /etc/fstab


Ihr habt nun mit dem Editor Nano die Datei fstab geöffnet. 





 

Jetzt navigiert ihr mit den Pfeiltasten den Cursor nach unten bis zur ersten freien Zeile und tragt hier die UUID´s, TYPEn und die Pfade zu den eben angelegten Verzeichnissen ein. Zuerst kommt die UUID, dann der Verzeichnis-Pfad und danach der TYPE. Dahinter folgt noch jeweils defaults und zweimal 0. Das alles immer jeweils pro Gerät/Verzeichnis in eine Zeile schreiben. So wie in dem folgenden Screenshot zu sehen:




 

Wenn ihr fertig seid schließt ihr die Datei mit CTRL + X. Danach die y-Taste drücken und mit Enter bestätigen, um die Änderungen zu speichern.
Tippt nun in der Konsole folgendes ein um euren Pi neu zu booten:


sudo reboot


PuTTY verliert nach der Eingabe die Verbindung. Wartet bis euer Pi neu gestartet ist und verbindet euch, wie oben beschrieben, neu mit eurem Pi.

Jetzt sind wir soweit und können MiniDLNA installieren.
Gebt dazu in die Konsole folgendes ein:


sudo apt-get install minidlna


Nachdem MiniDLNA installiert ist müssen wir den DLNA-Server natürlich noch konfigurieren. Gebt dazu folgendes in die Konsole ein, um die Datei minidlna.conf mit Nano zu editieren:


sudo nano /etc/minidlna.conf


Jetzt wird es etwas unübersichtlich.
Zunächst müssen wir die Verzeichnisse festlegen die wir im WLAN zur Verfügung haben wollen, oder wie es in der Beschreibung heißt: Path to the directory you want scanned for media files.
Scrollt mit den Pfeiltasten zu dieser Zeile hier:

media_dir=/var/lib/minidlna


Diese Zeile müsst ihr auskommentieren oder entfernen:

#media_dir=/var/lib/minidlna


Ich habe auf meiner Festplatte mit dem Namen Volume, also dem vorhin erstellten Verzeichnis HDD1 folgende Ordner die ich von MiniDLNA gescannt haben möchte: moviesHD, movie3D, neu, series und images. Dafür habe ich folgende Einträge in die minidlna.conf geschrieben:


media_dir=V,/media/HDD1/moviesHD
media_dir=V,/media/HDD1/movies3D
media_dir=V,/media/HDD1/neu
media_dir=V,/media/HDD1/series
media_dir=P,/media/HDD1/images


Das V steht hierbei für Video und das P für Pictures. Als weiteren Typ gibt es auch noch A für Audio.
Mit den Typen könnt ihr festlegen welche spezifischen Inhalte/Medientypen die Verzeichnisse beinhalten.
Hätte ich jetzt auf der Festplatte z.B. eine andere Verzeichnisstruktur, dann würde das natürlich anders aussehen.

Nur als Beispiel: Hätte ich auf der Festplatte Volume einen Ordner mit dem Namen Media, dort drin einen Ordner mp3 und dort drin einen weiteren Ordner audiobooks, den ich gescannt haben möchte, dann würde der Eintrag dafür so aussehen:


media_dir=A,/media/HDD1/Media/mp3/audiobooks


Achtet auch hier unbedingt auf Groß- und Kleinschreibung.
Für meine drei Festplatten/Verzeichnisse sieht das wie folgt aus:





 

Sucht nun nach dieser Zeile:

#log_dir=/var/log


Und entfernt die Raute um die Zeile zu „aktivieren“:

log_dir=/var/log


Falls später etwas schief laufen sollte, habt ihr nun die Chance im log file nachzuschauen, was MiniDLNA dort für Fehler/Warnungen reingeschrieben hat.

Jetzt sucht ihr nach der folgenden Zeile:


#friendly_name=


Hier vergebt ihr den Namen für euren DLNA-Server. Seid kreativer als ich. Der von mir gewählte Name lautet: WORLD. Die Zeile sieht in meinem Falls also so aus:

friendly_name=WORLD


Wenn ihr jetzt noch wollt, dass später neu hinzugefügte Mediendateien ohne einen Neustart des DLNA-Servers erfasst werden, dann müsst ihr nach dieser Zeile hier suchen:

#inotify=yes


Und die Raute entfernen:

inotify=yes


Fertig. Schließt jetzt die Datei mit CTRL + X. Danach die y-Taste drücken und mit Enter bestätigen, um die Änderungen zu speichern.

Optional, aber sehr empfehlenswert, wenn ihr wollt, dass der DLNA-Server automatisch immer gestartet wird wenn ihr euren Pi neu startet:

sudo update-rc.d minidlna defaults


Nun müsst ihr euren DLNA-Server starten:

sudo service minidlna start


Und/oder:

sudo service minidlna restart


Nun gebt ihr noch folgendes ein:

sudo service minidlna force-reload


MiniDLNA beginnt nun die Dateien zu indizieren. Je nach Anzahl kann das eine ganze Weile dauern. Bis dieser Prozess nicht abgeschlossen ist sind nur die bereits indizierten Dateien zu sehen.

Für den Fall das ihr später noch Änderungen an den Konfigurationsfiles vornehmen wollt, müsst ihr minidlna neu starten und neu laden. Das macht ihr mit den folgenden beiden Befehlen:

sudo service minidlna restart


Und:

sudo service minidlna force-reload


Glückwunsch! Ihr habt nun euren DLNA-Server erfolgreich eingerichtet. Ich könnt nun mit euren DLNA-fähigen Geräten, die sich im gleichen WLAN befinden, auf die Mediendateien zugreifen.

 

Testen


Ihr könnt das Ganze auch direkt am PC testen. Gebt dazu die IP-Adresse von eurem Pi in eurem Browser ein mit dem Port 8200. In meinem Fall sieht das so aus:

192.168.0.21:8200




 

Ihr solltet nun ein kleines Webfrontend zu sehen bekommen, das euch Auskunft darüber gibt, welche und wieviel Dateien indiziert worden sind. 



Wenn ihr diesen Test direkt nach den eben aufgezeigten Schritten durchführt, dann kann es sein, dass der Prozess der Indizierung noch nicht abgeschlossen ist und somit nicht alle relevanten Dateien aufgezählt worden sind. In diesem Fall solltet ihr das Webfrontend einfach aktualisieren. Die Anzahl der Dateien sollte dann bei jedem Klick auf den Reload-Button vom Browser steigen. Ihr könnt so quasi live zuschauen wie die Indizierung voranschreitet.

Auf meinem Android Smartphone habe ich die App BubbleUpPnP installiert, mit der ich auf den DLNA-Server WORLD zugreifen kann. Nachfolgend ein paar Screenshots davon.
Hinweis: Ich hatte zu Beginn einmal kurz Schwierigkeiten mit meinem Smartphone auf WORLD zuzugreifen, nachdem ich den Pi nochmal komplett neu aufsetzen musste. Der DLNA-Server wollte einfach nicht mehr in der Liste der Medienserver bei BubbleUpPnP erscheinen. Nachdem ich das Smartphone einmal neugestartet hatte gab es dann aber keine Probleme mehr.




Das Ganze läuft auch problemlos auf meinem Samsung Smart TV. Ein etwas älteres Gerät von Philips funktioniert ebenfalls recht gut. Hier ist die Software vom TV nur nicht immer in der Lage alle Medienformate korrekt abzuspielen. Das ist dann aber der TV schuld und nicht der DLNA-Server!
Mit entsprechenden Apps habe ich das auch auf iPhone und iPad getestet. Alles kein Problem. Ich konnte für die Apple Geräte allerdings keine kostenlose App finden die mich überzeugt hat.
Noch nicht getestet habe ich das persönlich alles mit Playstation und Xbox, aber theoretisch sollte das auch problemlos funktionieren. Jedenfalls gibt es im Netz dazu sehr viele positive Berichte.

Wenn es bei euch nicht klappt oder zu Problemen kommt, dann werft am besten mal einen Blick ins log file um nach Fehlern zu suchen. Gebt dazu in die Konsole folgendes ein:


sudo nano /var/log/minidlna.log



Zusätzlich


Wenn ihr das automatische starten von minidlna beim Neustart vom Pi wieder entfernen wollt, dann gebt das hier in die Konsole ein:


sudo update-rc.d -f minidlna remove


Den DLNA-Server stoppen:


sudo service minidlna stop


Falls sich der Service nicht stoppen lässt, dann könnt ihr den Service auch killen:

sudo killall minidlna


Und wenn ihr MiniDLNA wieder komplett deinstallieren wollt, dann macht ihr das mit:

sudo atp-get remove --purge minidlna

 

Ende


Ich hoffe ihr hattet Erfolg. Natürlich gebe ich keine Gewährleistung für dieses Tutorial. Falls ihr Fragen habt, oder Anregungen/Verbesserungen, dann postet diese sehr gerne in den Kommentaren.

 

Quellen


https://www.raspberrypi.org/downloads/noobs/
https://www.raspberrypi.org/forums/viewtopic.php?f=35&t=16352
https://raspberry.tips/raspi-media-center/raspberry-pi-als-media-server-mit-minidlna-einrichten/
http://www.forum-raspberrypi.de/Thread-tutorial-minidlna
https://kofler.info/der-raspberry-pi-als-dlna-server/
https://www.youtube.com/watch?v=5FCGMljivIg
https://wiki.ubuntuusers.de/ReadyMedia/
http://www.putty.org/
http://www.shellbefehle.de/befehle/
https://willy-tech.de/sd-karte-mit-diskpart-formatieren/

http://support.ecs-webhosting.de/FragenundAntworten/Linux-Dateirechte-und-755-777-etc-verstehen

1 Kommentar:

Mona W. Benavides hat gesagt…
Der Kommentar wurde von einem Blog-Administrator entfernt.