Damit TVHeadend nach einem Standby wieder funktioniert, müssen Module entladen und nach dem Wecken wieder geladen werden.
In einigen Tutorials ist auch immer die Rede vom "autoshutdown plugin" in OMV 3.x, dass aber leider bei fast allen nicht funktioniert in Verbindung mit dem
Script von "CvH" das ich hier vorstelle. Nach langen 3 Wochen habe ich nun endlich die Lösung für mich gefunden, die euch nun jetzt teilen und vorstellen möchte.
Im 1. Teil erkläre ich euch wir ihr die Treiber sauber entlädt und wieder ladet von euren TVKarten oder TV-USB Sticks. Dies ist Vorrausetzung damit TVHeadend
nach einem "hibernate/suspend" wieder funktioniert.
Im 2. Teil zeige ich euch ein Script, das eure NAS ohne Probleme in den "hibernate/suspend" fährt und per WOL wieder aufweckt. Dazu kann dieses Script
auch mit programmierten Aufnahmen umgehen. Heißt, es fährt hoch bei Aufnahme und wieder runter wenn sie beendet ist.
Dieses Script ersetzt so mit 2 (Autoshutdown plugin und eins für Aufnahmen)
Teil 1
Entladen und beladen der Treiber mit Hilfe eines Scripts vor dem Suspend in
" /etc/systemd/system/dvb-sleep.service"
Mein Beispiel-Script sieht wie folgt aus:
________________________________________________________________________________________________________________________
Spoiler anzeigen
Description=Restart tvheadend and dvb
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/systemctl stop tvheadend.service ; /sbin/modprobe -r cx23885 m88ds3103 si2168 altera_ci si2157 cx2341x
ExecStop=/sbin/modprobe cx23885 m88ds3103 si2168 altera_ci si2157 cx2341x ; /bin/systemctl start tvheadend.service
[Install]
WantedBy=sleep.target
__________________________________________________________________________________________________________________________
Kurze Erklärung zum Script was es macht:
Mit /bin/systemctl stop tvheadend stoppen wir TVHeadend, damit danach ohne Probleme das Modul entladet werden kann.
Danach wird mit " modprobe -r cx23885 m88ds3103 si2168 altera_ci si2157 cx2341x " das entladen.
Für die TV Karte Hauppauge Quad Tuner die ich benutze sind es folgende Module:
cx23885 m88ds3103 si2168 altera_ci si2157 cx2341x
__________________________________________________________________________________________________________________________
Die richtigen Module für eure TVKarte/TV-USB Stick finden!!
Welche Module bei euch geladen sind und welche entladet werden sollen müsst ihr selbst herausfinden.
Das mach ihr so:
Logt euch mit dem Programm "putty" per ssh auf eure NAS ein.
Mit #lsmod werden alle eure geladenen Module angezeigt.
Welches Modul für eure TVKarte/USB Stick zuständig ist, könnt ihr bei Google nachschauen.
In meinem Fall war es eine Hauppauge Quad DVB-C Karte. Eingabe in Google: "Hauppauge Quad DVB-C Linux Modul/e" und mit ein bisschen lesen habe ich sie dann gefunden, die mit dem Ergebnis von #lsmod übereinstimmten.
Hierbei müsst ihr einfach probieren, probieren und nochmals probieren. Bei manchen reicht ein und bei anderen mehrere Module zu entladen.
Vor allem bei mehreren Modulen ist auch die Reihenfolge wichtig. Also einfach ausprobieren.
Wichtig bei diesen Schritten ist, dass ihr so vorgeht im Terminal über putty:
#systemctl stop tvheadend (TVHeadend wird gestoppt)
#modprobe -r "Modul Modul Modul" (Modul(e) wird entladen)
#systemctl start tvheadend (TVHeadend wird gestartet)
Prüft dann im TVHeadend WebGUI nach jedem entladen ob alles noch geht (TV abspielen bzw. Adapter noch aktiv).
Wenn ja, war es entweder das falsche Modul oder bei mehreren die falsche Reihenfolge.
Dann stoppt ihr wieder tvheadend und ladet nochmals die Module wie folgt, so dass alles wieder auf Anfang gestellt wird.
#modprobe -a "Modul Modul Modul" (Modul(e) wird geladen)
#systemctl start tvheadend (TVHeadend wird gestartet)
Diesen Prozess müsst ihr ggf. mehrmals machen bis ihr eure richtigen Module gefunden habt.
________________________________________________________________________________________________________________________________
Wenn ihr soweit alle Module habt erstellen wir das Script über das Terminal wie folgt:
#sudo nano /etc/systemd/system/dvb-sleep.service (Editor geht auf und gebt dort euer Script ein)
Beispiel-Script:
Spoiler anzeigen
Description=Restart tvheadend and dvb
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/systemctl stop tvheadend.service ; /sbin/modprobe -r cx23885
ExecStop=/sbin/modprobe cx23885 ; /bin/systemctl start tvheadend.service
[Install]
WantedBy=sleep.target
Bitte Beispiel-Script mit euren Modulen anpassen.
Danach mit STRG-Shift-O speichern und ENTER. Danach Editor mit STRG-Shift-X schließen
Dann Script ausführbar auf den Server machen mit:
#sudo systemctl enable dvb-sleep.service
Ende Teil 1