28.01.2017, 12:20 (Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2017, 09:02 von Antimon.)
Moin moin,
ich habe mir die EasyVDR 3.0 auf ein Testsystem (Gigabyte GA-EP43, 4GB RAM, MSI Nvidia 720, Cine S2 V6.2, SSD 128GB) installiert.
Die Installation von EasyVDR macht der Distri alle Ehre, ist wirklich easy! Hier mal ein großes DANKE an alle, die das in dieser Form ermöglichen.
Allerdings habe ich Probleme beim Einbinden eines Skriptes über den before-vdr-hooks Mechanismus.
Eines vorweg, meine Linux Kenntnisse sind eher dürftig aber ich versuche mich durchzuschlagen, man möge mir dies vor allem beim Skripten nachsehen .
Warum benutze ich den before-vdr-hooks?
Um die Einschaltzeit im Atric IR-Wakeup Modul zu deaktivieren und die Uhrzeit im Modul zu aktualisieren.
Dazu habe ich folgendes Skript im Verzeichnis /use/share/vdr/before-vdr-hooks abgelegt:
Code:
#! /bin/bash
# do here whatever you would like to do right BEFORE the VDR STARTS
#date>$HOME/testlog
#ls -l /dev/ttyACM0>>$HOME/ testlog
chmod 777 /dev/ttyACM0
#sleep 3
#ls -l /dev/ttyACM0>>$HOME/testlog
d=`date +%y%m%d%H%M%S`
#echo TSACS$d>>$HOME/testlog
echo TSACS$d>/dev/ttyACM0
#echo "Uhrzeit gesetzt">>$HOME/testlog
sleep 3
echo WSACS1705141304>/dev/ttyACM0
#echo "Timer gelöscht">>$HOME/testlog
Was ist das Problem?
Der VDR startet nicht mehr! Das Skript wird ausgeführt und macht auch das was es soll. Der VDR jedoch bleibt bild- und tonlos. Das VDR Bild während des Startvorgangs wird ewig lang angezeigt und dann bleibt das Bild schwarz, man sieht nur den Mauszeiger.
Was habe ich bis jetzt getan?
Immer wieder am Skript herumgebastelt. Ich habe Hinweise gefunden, dass die Befehle, die an dieser Stelle in die Shell gehen sollen per echo abgesetzt werden müssen. Also habe ich alles umgebaut alla echo “chmod 755 /dev/ttyACM0“ usw. Hat aber nichts geändert. Und so habe ich dann Zeile für Zeile umgeschrieben, auskommentiert, gelöscht und geloggt, um einfach die Stelle zu finden die das Problem verursacht und den VDR nicht starten lässt. Ich bin sogar so weit gegangen, dass ich es mit einer leeren Skriptdatei im Ordner getestet habe. Als der VDR dann immer noch nicht starten wollte, viel mir nichts mehr ein, außer die Skriptdatei zu löschen. Und siehe da der VDR ist wieder da.
Was ist hier los? Was mache ich falsch? Habe ich den Mechanismus falsch verstanden? Ist das Skript oben so korrekt?
Vielleicht könnt ihr mich erhellen.
Grüße
Andy
Test: Gigabyte GA-EP43, 4GB RAM, MSI Nvidia 720, Cine S2 V6.2, SSD 128GB, Atric IR-Wakeup, EasyVDR 3.0 Produktiv:Asus AT3IONT-I, 4GB RAM, 1TB 2,5" FP, Cine S2 V5.5, VDPAU/NVidia, IR IgorUSB, EasyVDR 2.0 und LinVDR mit Mahlzeit 4.0Beta2, die Kiste läufen und läuft und läuft und ...., seit über 10 Jahren
#! /bin/bash
# do here whatever you would like to do right BEFORE the VDR STARTS
#date>$HOME/testlog
#ls -l /dev/ttyACM0>>$HOME/ testlog
chmod 777 /dev/ttyACM0
#sleep 3
#ls -l /dev/ttyACM0>>$HOME/testlog
d=`date +%y%m%d%H%M%S`
#echo TSACS$d>>$HOME/testlog
echo TSACS$d>/dev/ttyACM0
#echo "Uhrzeit gesetzt">>$HOME/testlog
sleep 3
echo WSACS1705141304>/dev/ttyACM0
#echo "Timer gelöscht">>$HOME/testlog
Was ist das Problem?
Hallo Andy,
kenne mich zwar nicht mit deinem Vorhaben aus, jedoch fallen mir hier so ein paar Fehlerchen auf.
Wenn du zB etwas mit echo umlenken willst hast du zwar schon richtig mit > gearbeitet, aber richtige Schreibweise ist echo "was auch immer an text"$Variable > /Ort und Ziel
Heißt echo "TSACS"$d >> $HOME/testlog
Wobei '>' heißt neu erstellen und '>>' anhängen.
Wichtig ist auch, mit was du dieses Skript erstellst, entweder mit mc oder gedit am vdr, oder mit notepad++ am Windows PC. Andernfalls werden nicht gewollte Zeichen wzb ^M einfach eingefügt und das lässt dein Skript craschen.
Weiß leider auch nicht, ob sowas überhaupt erlaubt ist
echo "WSACS1705141304" > /dev/ttyACM0
da müssten die Kenner sich zu äußern.
1.Zeile: Anschluss des Atric IR-Wakeup beschreibbar machen
2.Zeile: die aktuelle Uhrzeit an den Anschluss senden, dazu muss ich die Zeichenfolge "TSACS" gefolgt von Jahr,Monat,Tag,Stunde,Minute,Sekunde (alles zweistellig)
3.Zeile: kurz warten
4.Zeile: Aufwachtimer zurücksetzen, dazu die Zeichenfolge "WSACS0000000000" an den Anschluss schicken
Die restlichen Zeilen die im ersten Post zu sehen sind, hatte ich nur zur Kontrolle eingebaut, um zu sehen, ob es auch wirklich tut was soll.
Das Problem ist nicht das Skript, das wird korrekt ausgeführt. Die eigentlichen Probleme sind:
- der Startvorgang verlänget erheblich (womit ich Leben kann)
- der VDR startet nicht mehr (schwarzer Bildschirm mit Mauszeiger, so wie im ersten Post beschrieben) und damit kann ich natürlich nicht Leben.
Aber wo ist der Fehler?
Muss ich einen bestimmten Dateinamen im Ordner /usr/share/vdr/before-vdr-hooks benutzen?
Kann ich hier ein ganz normales bash Skript verwenden oder muss ich eine bestimmte Formatierung beachten?
Test: Gigabyte GA-EP43, 4GB RAM, MSI Nvidia 720, Cine S2 V6.2, SSD 128GB, Atric IR-Wakeup, EasyVDR 3.0 Produktiv:Asus AT3IONT-I, 4GB RAM, 1TB 2,5" FP, Cine S2 V5.5, VDPAU/NVidia, IR IgorUSB, EasyVDR 2.0 und LinVDR mit Mahlzeit 4.0Beta2, die Kiste läufen und läuft und läuft und ...., seit über 10 Jahren
28.01.2017, 14:02 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2017, 14:07 von gb.)
Gehört die Datei im hooks Ordner dem usr vdr?
Und ja, eine Skriptform ist möglich. Kannst du zB in shutdown-hooks sehen, dort verstecken sich einige Skripte.
28.01.2017, 15:18 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2017, 15:19 von Antimon.)
@gb
Nein, die Datei gehörte root.
Hab es mit "chown vdr:vdr 10_Ser-IR-Wakeup.custom" und "chown vdr:easyvdr 10_Ser-IR-Wakeup.custom" versucht. Ändert aber leider nichts, der VDR startet nicht.
Testweise habe ich die Datei 10_Ser-IR-Wakeup.custom im Ordner /usr/share/vdr/before-vdr-hooks wieder gelöscht und der vdr startet wieder zügig durch und läuft.
Test: Gigabyte GA-EP43, 4GB RAM, MSI Nvidia 720, Cine S2 V6.2, SSD 128GB, Atric IR-Wakeup, EasyVDR 3.0 Produktiv:Asus AT3IONT-I, 4GB RAM, 1TB 2,5" FP, Cine S2 V5.5, VDPAU/NVidia, IR IgorUSB, EasyVDR 2.0 und LinVDR mit Mahlzeit 4.0Beta2, die Kiste läufen und läuft und läuft und ...., seit über 10 Jahren
Hab es in /etc/vdr/before-vdr-hooks versucht. Das gleiche Egebnis -> VDR startet nicht.
Ich kann das Skript übrigens direkt aus der shell starten, sowohl aus /etc/vdr/before... als auch aus /usr/share/vdr/before...
Und es macht was es soll.
Ist der Dateiname eigentlich wichtig? Also muss die Datei "10......custom" heißen?
Test: Gigabyte GA-EP43, 4GB RAM, MSI Nvidia 720, Cine S2 V6.2, SSD 128GB, Atric IR-Wakeup, EasyVDR 3.0 Produktiv:Asus AT3IONT-I, 4GB RAM, 1TB 2,5" FP, Cine S2 V5.5, VDPAU/NVidia, IR IgorUSB, EasyVDR 2.0 und LinVDR mit Mahlzeit 4.0Beta2, die Kiste läufen und läuft und läuft und ...., seit über 10 Jahren
28.01.2017, 15:52 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2017, 16:10 von gb.)
Kannst du mal probieren ob es unter /etc/vdr/after-vdr-hooks ausgeführt wird?
Ein chmod 777 könnte unter Umständen bei deinem Skript auch noch helfen.
Sollte nichts der Gleichen eine brauchbare Lösung erzielen, auf Wolfgang ( mango ) warten. Wolfgang ist unserer vdr Experte und hat sicher ein paar Ideen.
Edit:
Zitat:Ist der Dateiname eigentlich wichtig? Also muss die Datei "10......custom" heißen?
custom hat glaub ich keine Bedeutung, die Zahl davor schon. Sind mehrere Skripte im Order, wird damit sie Startreihenfolge bestimmt.
Bitte korrigieren, wenn ich daneben liege.
Zitat:Kannst du mal probieren ob es unter /etc/vdr/after-vdr-hooks ausgeführt wird?
Nur nochmal zur Erinnerung, das Skript wird in /usr/share/vdr/before-vdr-hooks als auch in /etc/vdr/before-vdr-hooks ausgeführt, lediglich der VDR startet nicht mehr (weder Ton noch Bild).
Und auch in /etc/vdr/after-vdr-hooks wird das Skript korrekt abgearbeitet und der VDR scheint unbeeindruckt weiter zu laufen. Na ja, das ist ja schon mal ein Fortschritt.
Übrigens habe ich tatsächlich gedacht after-vdr-hooks wird kurz nach dem Beenden des VDR abgearbeitet und nicht kurz nach dem Start.
Zitat:Ein chmod 777 könnte unter Umständen bei deinem Skript auch noch helfen.
Das hatte ich vorher schon versucht, hatte jedoch auch nichts geholfen.
Test: Gigabyte GA-EP43, 4GB RAM, MSI Nvidia 720, Cine S2 V6.2, SSD 128GB, Atric IR-Wakeup, EasyVDR 3.0 Produktiv:Asus AT3IONT-I, 4GB RAM, 1TB 2,5" FP, Cine S2 V5.5, VDPAU/NVidia, IR IgorUSB, EasyVDR 2.0 und LinVDR mit Mahlzeit 4.0Beta2, die Kiste läufen und läuft und läuft und ...., seit über 10 Jahren
29.01.2017, 00:10 (Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2017, 00:20 von mango.)
Hi,
(28.01.2017, 19:32)Antimon schrieb: Nur nochmal zur Erinnerung, das Skript wird in /usr/share/vdr/before-vdr-hooks als auch in /etc/vdr/before-vdr-hooks ausgeführt, lediglich der VDR startet nicht mehr (weder Ton noch Bild).
Und auch in /etc/vdr/after-vdr-hooks wird das Skript korrekt abgearbeitet und der VDR scheint unbeeindruckt weiter zu laufen. Na ja, das ist ja schon mal ein Fortschritt.
"/etc/vdr/before-vdr-hooks" ist ein Symlink und zeigt auf /usr/share/vdr/before-vdr-hooks.
Scripte die in "/usr/share/vdr/before-vdr-hooks" abgelegt sind, werden automatisch nach "/etc/vdr/before-vdr-hooks" gelinkt.
Script-Name "10_Ser-IR-Wakeup"mit chmod a+x ausführbar machen & chown root:root fertig.
(28.01.2017, 20:49)gb schrieb: immerhin ein Teilerfolg, muß man nun noch ergründen, warum before-vdr-hooks nicht tut und das scheint wohl ein generelles Problem zu sein.
Problem warum das Script nicht aus diesem Dir startet, sollte auch klar sein. ...VDR wird in einer Konsole
gestartet, was das Script aber verhindert. ...mit
Code:
exit 113 # will return to shell
oder
Code:
exit 77 # exit all subshells
oder
Code:
exit 12 # exit only this subshell
am Ende des Scripts wird das Script abgearbeitet und VDR wird gestartet.
Es klappt mit allen, bevorzuge aber "exit 113"
(29.01.2017, 00:10)mango schrieb: am Ende des Scripts wird das Script abgearbeitet und VDR wird gestartet.
Es klappt mit allen, bevorzuge aber "exit 113"
Guten zu wissen, man lernt halt immer wieder was dazu.
PS: Ist ja schon was spezielles, steht das irgendwo im Wiki?
Zitat:Problem warum das Script nicht aus diesem Dir startet, sollte auch klar sein. ..
Das ist mir nun überhaupt nicht klar gewesen "exit 113".
Hab es gerade ausprobiert und es läuft.
Zitat:Guten zu wissen, man lernt halt immer wieder was dazu.
So ist es!
Vielen dank an euch für die Unterstützung.
Gruß
Andy
Test: Gigabyte GA-EP43, 4GB RAM, MSI Nvidia 720, Cine S2 V6.2, SSD 128GB, Atric IR-Wakeup, EasyVDR 3.0 Produktiv:Asus AT3IONT-I, 4GB RAM, 1TB 2,5" FP, Cine S2 V5.5, VDPAU/NVidia, IR IgorUSB, EasyVDR 2.0 und LinVDR mit Mahlzeit 4.0Beta2, die Kiste läufen und läuft und läuft und ...., seit über 10 Jahren