Website-Suche

So installieren Sie den Serviio Media Server auf Raspberry Pi


Objektiv

Installieren Sie den Serviio Media Service auf Raspberry Pi

Anforderungen

  • Ein Raspberry Pi mit einer funktionierenden Installation von Raspbian "Stretch"
  • Root-Rechte

Schwierigkeit

LEICHT

Konventionen

  • # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder
    direkt als Root-Benutzer oder mit dem Befehl sudo
  • $ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Einleitung

Serviio ist ein in Java geschriebener Medienserver. Es gibt zwei Versionen: die kostenlose (leider kostenlos wie Bier) und die "Pro"-Version, die mit einigen zusätzlichen Funktionen wie Fernzugriff ausgestattet ist. In diesem Tutorial behandeln wir die Installation von Serviio auf einem Raspberry Pi, auf dem eine minimale Version von Raspbian "Stretch" läuft.

Installieren von Abhängigkeiten

Serviio ist in Java geschrieben, daher müssen wir das Java Development Kit installieren, um es verwenden zu können. Es gibt zwei Versionen des JDK in den Raspbian Stretch-Repositories: die Open-Source-Version, die unter der GPLv2-Lizenz veröffentlicht wurde, genannt OpenJDK, und die kommerzielle, proprietäre Version von Oracle (das Paket heißt eigentlich oracle-java8-jdk). Beide sollten korrekt funktionieren, aber in diesem Tutorial werden wir ersteres verwenden.

apt-get update && apt-get install --no-install-recommends openjdk-8-jdk ffmpeg x264

Holen Sie sich Serviio und installieren Sie es

Nachdem wir nun alle benötigten Pakete installiert haben, müssen wir uns den Serviio-Tarball schnappen: Da wir an einer Headless-Maschine arbeiten, werden wir wget verwenden, um die Aufgabe zu erfüllen. Daher führen wir aus:

wget http://download.serviio.org/releases/serviio-1.9-linux.tar.gz

Nachdem der Download abgeschlossen ist, können wir mit der eigentlichen Serviio-Installation fortfahren. Wir werden den Inhalt des Tarballs innerhalb des /opt-Verzeichnisses extrahieren: Natürlich können Sie ein anderes auswählen, aber /opt wird konventionell verwendet, um eigenständige Anwendungen von Drittanbietern zu hosten. Gehen wir vor:

tar -xvzf serviio-1.9-linux.tar.gz -C /opt

Die Option -C (Abkürzung für --directory) weist tar an, das Verzeichnis in das angegebene Verzeichnis zu wechseln, bevor die Operationen ausgeführt werden.

Erstellen Sie den systemd-Dienst für Serviio

Jetzt, da Serviio installiert ist, können Sie feststellen, dass zwei Skripte im Verzeichnis /opt/serviio-1.9/bin vorhanden sind: serviio.sh und serviio-console.sh. Die erste startet den Server, die zweite die Schnittstelle, um sie zu steuern.

Zu diesem Zeitpunkt haben wir alles, was wir brauchen, um den systemd-Dienst zu erstellen, um serviio beim Booten des Systems zu starten. Um diese Aufgabe zu erfüllen, müssen wir eine kleine Dienstdatei schreiben. Wie Sie sicherlich wissen, ist systemd das neue Linux-Init-System, das jetzt von allen großen Distributionen übernommen wird. Es war die Quelle vieler Diskussionen in der Open-Source-Community, aber es ist zweifellos zum Standard geworden. Um den Dienst zu erstellen, starten Sie einfach Ihren bevorzugten Editor und erstellen Sie eine Datei namens serviio.service mit dem folgenden Text:

[Unit]
Description=Serviio media Server
After=syslog.target network.target

[Service]
User=serviio
ExecStart=/opt/serviio-1.9/bin/serviio.sh
ExecStop=/opt/serviio-1.9/bin/serviio.sh -stop

[Install]
WantedBy=multi-user.target

Die Beschreibung der Syntax einer systemd-Dienstdatei ist nicht der Zweck dieses Tutorials, aber bitte beachten Sie die Zeile, die die User=serviio-Anweisung enthält. Was wir damit erreichen wollen, ist, festzulegen, dass der Daemon aus Sicherheitsgründen mit den Benutzerrechten serviio und nicht als root laufen muss. Der serviio-Benutzer existiert noch nicht, also erstellen wir ihn und geben ihm den Besitz des Verzeichnisses /opt/serviio-1.9 und aller darin enthaltenen Dateien:

useradd -r -U -s /sbin/nologin serviio && chown -R serviio:serviio /opt/serviio-1.9

Sie sind wahrscheinlich mit dem Befehl useradd vertraut, aber der Übersichtlichkeit halber geben wir an, wofür die bereitgestellten Optionen gedacht sind. Die Option -r gibt an, dass wir ein Systemkonto erstellen möchten. Systemkonten verfügen über keine Fälligkeitsinformationen und eine UID mit dem Wert < 1000. Für solche Konten wird kein Home-Verzeichnis erstellt. Die Option -U weist das Programm an, auch eine Gruppe mit dem gleichen Namen wie der Benutzer zu erstellen und den Benutzer automatisch zu dieser Gruppe hinzuzufügen. Schließlich haben wir mit -s die Shell für den Benutzer angegeben. In diesem Fall haben wir /sbin/nologin verwendet, eine gefälschte Shell. Wir haben es aus Sicherheitsgründen verwendet: Auf diese Weise wird der Benutzer, unter dem der Dienst ausgeführt wird, niemals in der Lage sein, eine tatsächliche Shell zum Ausführen von Befehlen zu verwenden.

Da sind wir: Wir haben den serviio-Benutzer erstellt und unsere Service-Datei geschrieben. Nun müssen wir es in das Verzeichnis /usr/systemd/system kopieren:

cp serviio.service /etc/systemd/system

Um den Dienst zu aktivieren, führen wir jetzt Folgendes aus:

systemctl enable serviio.service

Starten Sie nun das System neu: Wenn alles gut geht, ist der serviio-Dienst bereits aktiv, wenn der Bootvorgang abgeschlossen ist. Sie können den Status überprüfen, indem Sie Folgendes ausführen:

systemctl status serviio.service

Systemd informiert Sie über den Status des Daemons, zum Beispiel:

● serviio.service - Serviio media Server
   Loaded: loaded (/etc/systemd/system/serviio.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-09-28 21:29:18 CEST; 31s ago
 Main PID: 420 (java)
   CGroup: /system.slice/serviio.service
           └─420 java -Xmx512M -Xms20M -XX:+UseG1GC -XX:GCTimeRatio=1 -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -Djava.net.preferIPv4Stack=true
[...]

Wie Sie sehen können, ist der Dienst aktiv und läuft, so dass alles wie erwartet verlief. Wenn etwas schief geht und Probleme beim Starten des Dienstes auftreten, können Sie die Protokolle verwenden, die vom selben Befehl bereitgestellt werden, um die Probleme zu beheben.

Wenn Sie eine Firewall auf Ihrem Rechner betreiben, müssen Sie auch die Ports 8895/tcp, 1900/udp<span style="font-size: inherit;">, 23423/tcp und 23424/tcp. Die letzten beiden Ports werden jeweils zur Steuerung der Konsole und zum Zugriff auf den Mediabrowser benötigt

Steuerung serviio

Um den Service zu steuern, haben wir nur wenige Möglichkeiten. Da wir auf einem Headless-Computer arbeiten, können wir nicht auf die grafische Konsole zugreifen, aber wir können auf die Weboberfläche zugreifen, indem wir von einem anderen Computer im selben LAN zu http://yourmachineip:23423/console/ navigieren oder Anwendungen von Drittanbietern wie die Android-App "ServiiDroid" verwenden.

Eine vollständige Liste der möglichen Optionen finden Sie hier: http://serviio.org/apps". Wenn Sie die "Pro"-Version von serviio verwenden, können Sie Ihren Katalog auch mit dem integrierten Mediabrowser durchsuchen, der unter http://yourmachineip:23424/mediabrowser/ zugänglich ist.

Verwandte Artikel: