So installieren Sie den Serviio Media Server auf Raspberry Pi
Zielsetzung
Installieren Sie den Serviio-Mediendienst auf Raspberry PiBedarf
- Ein Raspberry Pi mit einer funktionierenden Installation von Raspbian "Stretch"
- Root-Rechte
Schwierigkeit
EINFACHKonventionen
- # - erfordert, dass bestimmte Linux-Befehle mit Root-Rechten entweder direkt als Root-Benutzer oder mithilfe eines
sudo
Befehls ausgeführt werden - $ - erfordert, dass bestimmte Linux-Befehle als regulärer nicht privilegierter Benutzer ausgeführt werden
Einführung
Serviio ist ein in Java geschriebener Medienserver. Es ist in zwei Versionen erhältlich: der kostenlosen (leider kostenlos wie bei Bier) und der "Pro" -Version, die einige zusätzliche Funktionen wie Fernzugriff bietet. In diesem Tutorial werden wir die Installation von Serviio auf einem Raspberry Pi behandeln, auf dem eine minimale Version von Raspbian "Stretch" ausgeführt wird.Abhängigkeiten installieren
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-Repositorys: die Open-Source-Version, die unter derGPLv2
Lizenz veröffentlicht wird 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 das erstere verwenden.# apt-get update && apt-get install --no-install-recommends openjdk-8-jdk ffmpeg x264
Besorgen Sie sich Serviio und installieren Sie es
Nachdem wir alle erforderlichen Pakete installiert haben, müssen wir uns den Serviio-Tarball schnappen: Da wir an einer kopflosen Maschine arbeiten, werden wirwget
die Aufgabe erfüllen. Deshalb laufen wir:wget http://download.serviio.org/releases/serviio-1.9-linux.tar.gzNachdem der Download abgeschlossen ist, können wir mit der eigentlichen Serviio-Installation fortfahren. Wir werden den Inhalt des Tarballs im
/opt
Verzeichnis extrahieren : Natürlich können Sie einen anderen auswählen, aber / opt wird herkömmlicherweise zum Hosten von eigenständigen Anwendungen von Drittanbietern verwendet. Fahren wir fort:# tar -xvzf serviio-1.9-linux.tar.gz -C /optDie
-C
Option (kurz für --directory
) weist tar an, das Verzeichnis in das angegebene Verzeichnis zu wechseln, bevor die Vorgänge ausgeführt werden.Erstellen Sie den systemd-Dienst für Serviio
Nachdem Serviio installiert ist, können Sie feststellen, dass zwei/opt/serviio-1.9/bin
Verzeichnisse im
Verzeichnis vorhanden sind: serviio.sh
und serviio-console.sh. Der erste startet den Server, der zweite die Schnittstelle zur Steuerung.Zu diesem Zeitpunkt haben wir alles, was wir brauchen, um den systemd-Dienst zu erstellen, um serviio beim Systemstart zu starten. Um diese Aufgabe zu erfüllen, müssen wir eine kleine Servicedatei schreiben. Wie Sie sicherlich wissen, ist systemd das neue Linux-Init-System, das jetzt von allen wichtigen 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 mit dem Namen serviio.service, die den folgenden Text enthält:
[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-Servicedatei ist nicht der Zweck dieses Lernprogramms. Beachten Sie jedoch die Zeile mit der User=serviio
Anweisung. Wir möchten damit festlegen, dass der Dämon serviio
aus Sicherheitsgründen mit den Benutzerrechten und nicht als Root ausgeführt werden 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.9Sie sind wahrscheinlich mit dem
useradd
Befehl vertraut , aber aus Gründen der Übersichtlichkeit geben wir an, wofür die bereitgestellten Optionen vorgesehen sind. Die
-r
Option gibt an, dass wir eine erstellen möchten system account
. Systemkonten haben keine Alterungsinformationen und a uid
mit einem Wert <1000; Für solche Konten wird kein Home-Verzeichnis erstellt. Die -U
Option weist das Programm an, auch eine Gruppe mit demselben Namen wie der Benutzer zu erstellen und den Benutzer automatisch zu dieser Gruppe hinzuzufügen. Schließlich
-s
haben wir die Shell für den Benutzer angegeben. In diesem Fall haben wir verwendet, /sbin/nologin
was a ist fake shell
. Wir haben es aus Sicherheitsgründen verwendet: Auf diese Weise kann der Benutzer, unter dem der Dienst ausgeführt wird, niemals eine tatsächliche Shell zum Ausführen von Befehlen verwenden.Da sind wir: Wir haben den Serviio-Benutzer erstellt und unsere Servicedatei geschrieben. Jetzt müssen wir es in das
/usr/systemd/system
Verzeichnis kopieren :# cp serviio.service /etc/systemd/systemUm den Dienst zu aktivieren, den wir jetzt ausführen:
# systemctl enable serviio.serviceStarten Sie nun das System neu: Wenn alles in Ordnung ist, ist der Serviio-Dienst bereits aktiv, wenn der Startvorgang abgeschlossen ist. Sie können den Status überprüfen, indem Sie Folgendes ausführen:
$ systemctl status serviio.serviceSystemd 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, ist der Dienst aktiv und läuft, sodass alles wie erwartet verlief. Wenn ein Fehler auftritt und Probleme beim Starten des Dienstes auftreten, können Sie die Probleme mithilfe der vom selben Befehl bereitgestellten Protokolle beheben.
Wenn Sie eine Firewall auf Ihrem Computer ausgeführt werden müssen Sie auch offene Ports
8895/tcp
,
1900/udp
, 23423/tcp
und 23424/tcp
. Die letzten beiden Ports werden jeweils benötigt, um die Konsole zu steuern und auf den Mediabrowser zuzugreifenSteuerserviio
Um den Service zu steuern, haben wir nur wenige Optionen. Da wir auf einem kopflosen Computer arbeiten, können wir nicht auf die grafische Konsole zugreifen, aber wir können auf die Weboberfläche zugreifen, indem wirhttp://yourmachineip:23423/console/
von einem anderen Computer in derselben Sprache zu 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 ausführen, können Sie Ihren Katalog auch mithilfe des integrierten Mediabrowser durchsuchen, auf den Sie zugreifen können http://yourmachineip:23424/mediabrowser/
.