Gehaxelts Blog

IT-Security & Hacking

RaspberryPi: Minidlna MediaServer

In diesem Blogpost möchte ich erklären, wie man aus einem RaspberryPi einen MediaServer via "minidlna" macht.

Was ist Minidlna?

Minidlna ist ein MediaServer für Fernseher, welche über DLNA mit Inhalten gefüttert werden kann.

Installation auf dem Pi

Zunächst bringen wir unseren Pi auf den neusten Stand:

sudo apt-get update && sudo apt-get upgrade

Danach installieren wir das minidlna-Paket.

sudo apt-get install minidlna

Nun müssen wir die Konfiguration anpassen:

sudo nano /etc/minidlna.conf

Konffiguration von Minidlna

Jetzt muss man nur noch die Konfigurationsdatei unter /etc/minidlna.conf anpassen.

Die Eigenschaften werden in der Konfiguration erläutert:

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
#Präfixe für verschiedene Medientypen
#   * "A" for audio    (eg. media_dir=A,/var/lib/minidlna/music)
#   * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
#   * "V" for video    (eg. media_dir=V,/var/lib/minidlna/videos)

#Pfade zu den entsprechenden Medienordnern
media_dir=A,/var/lib/minidlna/music
media_dir=P,/var/lib/minidlna/pictures
media_dir=V,/var/lib/minidlna/videos

#Pfad zur Mediendatenbank
db_dir=/var/lib/minidlna

#Pfad zum Error-Log
log_dir=/var/log

#Error Loglevel
log_level=error

#IP an der gelauscht werden soll. Kann per 'ifconfig' herausgefunden werden.
listening_ip=192.168.2.93

#Port, auf dem der MediaServer lauschen soll
port=8200

#Presäntierungsurl des Mediaservers #81, falls Webserver laufen
presentation_url=http://192.168.2.93:80

#Anzeigename des Mediaservers
friendly_name=RaspberryPi_MediaServer

#Unnötige Seriennummer
serial=12345678

#Unnötiger Modellname des Mediaservers
model_name=RaspberryPi

#Unnötige Modellanzeigenummer
model_number=1

#Automatische Aktualisierung der Datenbank aktivieren (falls neue Dateien hinzukommen oder entfernt werden)
inotify=yes

#Albumcover Dateinamen. Mit einem "/" getrennt.
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

#Streaming von .jpg/.mp3 für TiVO Geräte aktivieren. 
enable_tivo=no

#Autoupdateitnervall
notify_interval=895

Die Ordner, welche wir bei "media_dir" angegeben haben, müssen wir ggf noch anlegen, bzw. mit entsprechenden Rechten versehen.

1
2
3
4
5
6
7
8
9
10
11
12
13
#Ordner anlegen
sudo mkdir /var/lib/minidlna/audio
sudo mkdir /var/lib/minidlna/pictures
sudo mkdir /var/lib/minidlna/videos

#Benutzer setzen
sudo chown -R minidlna:minidlna /var/lib/minidlna

#Gruppenschreibrechte setzen, damit wir auch darin schreiben können
sudo chmod -R g+rw /var/lib/minidlna

#Uns in die Gruppe minidlna hinzufügen; relog ggf. nötig
sudo usermod -aG minidlna pi

Datenbank manuell updaten

Um die Mediendatenbank manuell upzudaten, müssen wir folgendes Kommando nutzen:

sudo -u minidlna minidlnad -R

Damit führen wir als Benutzer minidlna das Kommando "minidlna -R" aus, da sonst durch sudo die Rechte der files.db verändert würden.

Minidlna kontrollieren

Neustarten:

sudo /etc/init.d/minidlna restart

Starten/Stoppen:

1
2
sudo /etc/init.d/minidlna start
sudo /etc/init.d/minidlna stop

Update 13.01.2012:

Mit Truecrypt nutzen

Voraussetzung: Truecrypt

Ich gehe im Folgendem davon aus, dass Truecrypt auf dem Pi bereits installiert wurde.

Minidlna Benutzer anpassen

Wir verpassen danach dem Benutzer "minidlna" ein Passwort:

sudo passwd minidlna

Dann passen wir die Shell des Benutzers an:

sudo nano /etc/passwd

Sucht dort nach der Zeile, in der minidlna steht, und gebt dem Benutzer eine

/bin/bash

als Shell.

Als nächstes müssen wir dem Benutzer noch die Möglichkeit geben, an höhere Rechte zu gelangen, damit dieser das Truecrypt-Volume mounten kann.

Dazu bearbeiten wir die /etc/sudoers und kopieren einfach die Zeile vom Pi-Benutzer für den minidlna Benutzer.

Bemerkung: Das ist nicht unbedingt "sicher", aber hier erstmal irrelevant.

Truecrypt mounten

Wir müssen zunächst den Benutzer "minidlna" annehmen:

sudo su minidlna

Danach können wir das TC-Volume mounten:

sudo truecrypt -m=nokernelcrypto /dev/sdc1 /media/tc

Ich habe danach jeweils Links in die entsprechenden Verzeichnisse erstellt:

1
2
3
ln -s /media/tc/audio /var/lib/minidlna/audio/tc
ln -s /media/tc/pictures /var/lib/minidlna/pictures/tc
ln -s /media/tc/videos /var/lib/minidlna/videos/tc

Danach stoßen wir einen Rescan der Ordner an:

minidlna -R

Zuletzt trennen wir uns vom Benutzer minidlna:

exit

Danach sollte, nach einer längeren Indexierungsphase, die Datenbank stehen.

Fazit

Ich schaue damit nun ab und zu einen 1080p Film auf meinem 42" Fernseher ;)

Ich hoffe, euch kann das weiterhelfen.

Gruß

gehaxelt

linux, rasppi

« Octopress: Statistiken anzeigen Wicd: Unvollständige WLAN-Liste »