1 ... 7 8 [9] MLD-6.x / General / Neuinstallation
 

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 21617
    • View Profile
    • ClausMuus.de
Neuinstallation
« Reply #120 on: October 08, 2026, 20:49:17 »
Die Version des vaapivideo Plugins ist eine rein automatisch errechnete. Die erste Zahl (185) ist die Versionsnummer des VDR Paketes (Anzahl der Commits im VDR Paket), die Zweite die Anzahl der Commits im vaapivideo Paket und die Dritte die Anzahl der unterschiedlichen Builds im vaapivideo Paket, aufgrund von Änderungen an den Sourcen des Plugins, oder aufgrund von Änderungen der Configuration des Build Systems oder des VDRs die einen neuen Build des Plugins ausgelöst haben.
Die vom Entwickler eingetragene Versionsnummer kommt in der Paket Version bei diesem Plugin nicht vor.
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 6.5 - lirc yaUsbIR - 4 x DD-Sat - Intel N100M - 4GB RAM - 64GB SSD + 12TB HDD + 22TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline purzel

  • Profi Member
  • ****
  • Posts: 271
    • View Profile
Neuinstallation
« Reply #121 on: October 09, 2026, 17:49:33 »
Herzlichen Dank Claus für die ausführliche Erklärung. Das mit der 185 hatte ich schon so ähnlich vermutet, ist sie doch bei allen Plugins (zumindest zeitweise) gleich; die 4.70 hatte ich aber als nur EINE Zahl interpretiert. Die Versionsnummer vom Entwickler scheint direkt aus dem Plugin selbst ins OSD zu gelangen. Na gut.

Aber es gibt Wichtigeres: Ich habe wieder das "er-lässt-sich-nicht-herunterfahren-Problem" :(
Was NICHT geht ist Herunterfahren via
- Powerknopf
- F12
- Menü
- RCU
- WebIf "VDR OSD" -> roter Powerknopf

Es kommt zwar erwartunmgsgemäß  die OSD-Meldung "Taste drücken um ausschalten abzubrechen", aber die verschwindet nach ein paar Sekunden unverrichteter Dinge wieder. Immerhin lässt er sich aber geordnet herunterfahren über
- WebIf -> Dienste -> System -> Ausschalten
- Shell

Beim letzten Mal (10.9., Post #56 in diesem Thread) habe ich nicht darauf geachtet, aber dies' Mal kommt etwa eine Minute nach der vorgenannten OSD-Meldung eine OSD-Meldung "VDR wird in 5:00 Minuten abgeschaltet", Zeit sinkend. Auch nach Ablauf der 5 Minuten fährt er dann nicht 'runter - die Meldung kommt dann aber wieder; hier habe ich leider versäumt auf die Zeit zu gucken wie lange das gedauert hat.

Heute habe ich auch ein Debug-Log nach "frisch eingeschaltet", erst Hardware-Powerknopf, dann F12 gedrückt - und dann Debug-Log via WebIf erstellt. Die ID ist vLOaUY - ich bin gespannt, ob man was sieht.

TIA
Mattias AKA purzel
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 21617
    • View Profile
    • ClausMuus.de
Neuinstallation
« Reply #122 on: October 09, 2026, 18:41:11 »
Der Fehler liegt in der /usr/share/vdr/shutdown.d/70_set_recordtimer.sh
Die hat einen Fehler (steht im Log). Ich vermute mal die Datei hast Du selber erstellt.
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 6.5 - lirc yaUsbIR - 4 x DD-Sat - Intel N100M - 4GB RAM - 64GB SSD + 12TB HDD + 22TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline purzel

  • Profi Member
  • ****
  • Posts: 271
    • View Profile
Neuinstallation
« Reply #123 on: October 10, 2026, 14:02:57 »
Wow! Wie hast Du das so schnell gefunden? Als der Fehler vor 4 Wochen schon einmal auftrat hatte ich mir ja die Logs auch heruntergeladen - aber wenn man so gar keine Idee hat, nach was mach sucht... Du hast nicht einfach nur nach "error" gesucht oder?

Wie auch immer, Du hast natürlich richtig erkannt, dass das besagte Script von mir ist. Aber das benutze ich schon seit Jahren auf dem alten MLD 5.3 und auch schon fast von Anfang an in der MLD 6.5 Installation. Natürlich musste ich ein paar Anpassungen vornehmen wegen anderer Shell (Bash anstatt Busybox) und andere Init-Variante (Systemd anstatt SysV(-Derivat?)). Aber MEIST tritt der Fehler ja auch in der 6.5 nicht auf - heute auch schon wieder zweimal nicht.

Hast Du etwas Ausführlicheres in meinem Log gesehen? Ohne den Fehler liefert mir ein `fgrep -ri "record*" /tmp/MLD-Logs/*`(dahin hatte ich sie entpackt)  keinen Hinweis auf mein Script; "trocken" getestet gibt es keine Fehler und auch im Shutdown mit und ohne existierende timer (/etc/vdr/timers.conf) scheint alles OK.

[EDIT]
Nachtrag: Ich hatte den Einfall, ob das Script vielleicht "auf die Nase fällt" wen es eine leere /etc/vdr/timers.conf gibt - das ist aber auch nicht der Fall. Umso mehr würde mich natürlich interessieren, was genau der (vermeintliche?) Fehler gestern war...
« Last Edit: October 10, 2026, 16:09:06 by purzel »
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 21617
    • View Profile
    • ClausMuus.de
Neuinstallation
« Reply #124 on: October 10, 2026, 16:56:51 »
Im Log des VDR ("journalctl -u vdr" oder im Webif unter "Meldungen") ist am Ende dies zu finden:
Code: [Select]
Oct 09 17:40:23 MLD vdr[1450]: Shutdown...
Oct 09 17:40:23 MLD vdr[1450]: 50_vdr.sh says:
Oct 09 17:40:24 MLD vdr[1450]:  do shutdown
Oct 09 17:40:24 MLD vdr[1450]: 60_wakeup.sh says:
Oct 09 17:40:24 MLD vdr[1450]:  do shutdown
Oct 09 17:40:24 MLD vdr[1450]: 70_set_recordtimer.sh says:
Oct 09 17:40:24 MLD vdr[1505]: /usr/share/vdr/shutdown.d/70_set_recordtimer.sh: Zeile 19: 19-09: Der Wert ist für die aktuelle Basis zu groß. (Fehlerverursachendes Zeichen ist "09").
Oct 09 17:40:24 MLD vdr[1450]:  do not shutdown

Der Fehler ist also in Zeile 19 Deines Scripts.
« Last Edit: October 10, 2026, 16:58:37 by clausmuus »
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 6.5 - lirc yaUsbIR - 4 x DD-Sat - Intel N100M - 4GB RAM - 64GB SSD + 12TB HDD + 22TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline purzel

  • Profi Member
  • ****
  • Posts: 271
    • View Profile
Neuinstallation
« Reply #125 on: October 10, 2026, 18:29:50 »
OK, danke.
Das hätte ich also - wenn es denn auftritt - in log/journal.log finden können.

Ich verstehe aber überhaupt nicht, unter welchen Bedingungen sich der Fehler ergibt. Er war halt vorgestern (erst spät abends gesehen, Posting dazu entsprechend gestern) und davor vor etwa vier Wochen (siehe oben). Heute den ganzen Tag (etliche Hoch- und Herunterfahr-Vorgänge, teils mit Timer) NICHT. Und auch sonst bei den vielen Start- und Shutdown-Vorgängen in den vergangenen Wochen keine Fehler. OK, da gab's meist keine Timer.

Das Script macht im Grunde nicht viel: es liest, falls vorhanden, den obersten Timer aus /etc/vdr/timers.conf und baut daraus eine Bytefolge für's RCU. Direkt in der Shell habe ich auch mal probiert, da kommt kein Fehler:
Code: [Select]
root@MLD:~# NEXT=2147483647
root@MLD:~# TIMER=$NEXT
root@MLD:~# NOW=$(date +"%s")
root@MLD:~# DAYS=$(($(date -d "@$TIMER" +%d)-$(date -d "@$NOW" +%d)))  # vermeintlich fehlerhafte Zeile 19
root@MLD:~# echo $DAYS
9

Interessant ist "09" - und nicht wie hier drüber "9".

Ich muss leider jetzt erstmal aufhören - habe aber just in diesem Moment eine Idee: ob das immer am 8. des Monats passiert? Das teste ich sobald es geht... Auf dem alten MLD 5.3 mit Busybox ist es übrigens noch nie vorgekommen, dass er nicht 'runterfahren will.

Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 21617
    • View Profile
    • ClausMuus.de
Neuinstallation
« Reply #126 on: October 10, 2026, 18:39:08 »
Nicht unter log/journal.log, sondern per "journalctl" Kommando.

Poste mal das ganze Script.
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 6.5 - lirc yaUsbIR - 4 x DD-Sat - Intel N100M - 4GB RAM - 64GB SSD + 12TB HDD + 22TB HDD - Lian Li PC-C37B - Samsung LE40A559

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 21617
    • View Profile
    • ClausMuus.de
Neuinstallation
« Reply #127 on: October 10, 2026, 19:59:05 »
Übrigens kannst Du die Tage bis zum nächsten Timer auch so berechnen:
Code: [Select]
DAYS=$(($(setting get vdr.nexttimer.difftime) / 60 / 60 / 24))Du kannst also per "setting get vdr.nexttimer" einige Infos zum nächsten anstehenden Timer abfragen, und brauchst nicht selber die timers.conf auslesen. Die Werte werden immer beim ausschalten aktualisiert.
Unter MLD-5 stehen die Infos in einer Datei die Du in Dein Script einbinden kannst, um an die Werte zu kommen.
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 6.5 - lirc yaUsbIR - 4 x DD-Sat - Intel N100M - 4GB RAM - 64GB SSD + 12TB HDD + 22TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline purzel

  • Profi Member
  • ****
  • Posts: 271
    • View Profile
Neuinstallation
« Reply #128 on: October 10, 2026, 21:14:02 »
Mit log/journal.log bezog ich mich auf das vom MLD VDR heruntergeladene Debug-Log Archiv (tgz-File). Da musst Du den Log-Schnippsel aus Post #124 ja auch her haben - kannst ja schließlich nicht "live" auf meinem VDR `jounalctl` laufen lassen ;)

Übrigens kannst Du die Tage bis zum nächsten Timer auch so berechnen:
Code: [Select]
DAYS=$(($(setting get vdr.nexttimer.difftime) / 60 / 60 / 24))

Ich brauche ja nicht nur die Tage sondern auch die Uhrzeit, alles ziffernweise als ASCII-Bytes. Beispiel: 30 32 30 31 30 für 0 Tage, 20:10 Uhr.

Du kannst also per "setting get vdr.nexttimer" einige Infos zum nächsten anstehenden Timer abfragen, und brauchst nicht selber die timers.conf auslesen. Die Werte werden immer beim ausschalten aktualisiert.
Unter MLD-5 stehen die Infos in einer Datei die Du in Dein Script einbinden kannst, um an die Werte zu kommen.

Das habe ich ja nicht gewusst - woher auch. Wie gesagt ist das Script schon seit Jahren auf meinem alten MLD 5.3 im Einsatz; da natürlich mit dem "Beiwerk" welches seinerzeit für Start- und Shutdownscripts nötig war.

Du schreibst "werden immer beim ausschalten aktualisiert." - wann genau? Das muss ja VOR meinem set_recordtimer.sh passieren damit DAS nicht "auf die Nase fällt" oder mit alten Daten arbeitet.

Die von Dir genannte Datei unter MLD-5 interessiert mich schon auch noch, auch wenn mein VDR mittelfristig von dem 6.5er abgelöst werden soll. Ich "betreue" noch zwei weitere MLD-VDRs mit RCU.

Brauchst Du noch das ganze Script? Viel mehr als die paar Befehle macht es eigentlich nicht:

Code: [Select]
#!/bin/sh                                                                                                                                                                                           
                                                                                                                                                                                                   
# DON'T FORGET TO SET FILENAME AND PATH:                                                                                                                                                           
FILE="/etc/vdr/timers.conf"                                                                                                                                                                         
                                                                                                                                                                                                   
if [ -r $FILE ] ; then                                                                                                                                                                             
  NEXT=2147483647                                                                                                                                                                                   
  while read LINE ; do                                                                                                                                                                             
# if using bash:
    EPOCH=$(date +%s -d "$(echo -n $LINE | awk -F: -v q=" " '{print q$3,$4q}' | sed 's/^\(.\{14\}\)/\1:/')")                                                                                       
# if using busybox:
#    EPOCH=$(date +%s -d "$(echo -n $LINE | awk -F: '{print $3,$4}' | sed 's/^\(.\{13\}\)/\1:/')")                                                                                                 
    if [ $EPOCH -lt $NEXT ]; then                                                                                                                                                                   
      NEXT=$EPOCH                                                                                                                                                                                   
    fi                                                                                                                                                                                             
  done < $FILE                                                                                                                                                                                     
  TIMER=$NEXT                                                                                                                                                                                       
  NOW=$(date +"%s")                                                                                                                                                                                 
  DAYS=$(($(date -d "@$TIMER" +%d)-$(date -d "@$NOW" +%d)))                                                                                                                                         
  if [ $NEXT -lt 2147483647 ] ; then                                                                                                                                                               
    echo -ne \\xC0$DAYS$(date +"%H%M" -d @$TIMER) > /dev/RCU    # send recordtimer                                                                                                                 
  fi                                                                                                                                                                                               
fi                                                                                                                                                                                                 
echo -ne \\xE2\\x0A\\x2A\\x4A\\x6A > /dev/RCU    # display four '-'             
                                                                                                                   
                                                                                                                                                                                                   
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 21617
    • View Profile
    • ClausMuus.de
Neuinstallation
« Reply #129 on: October 10, 2026, 22:21:44 »
Ich würde das so machen, in Anlehnung an das existierende 60_wakeup.sh Script. Dies berücksichtigt auch die Zeit für's Booten und unterbindet ein Ausschalten wenn der Time kurz bevor steht:
Code: [Select]
#!/bin/sh
# set wakeup time for the next recording

eval $(setting get --sh vdr.nexttimer)
eval $(setting get --sh vdr.wakeup)

curentTime=`date +%s`
if [ "$utctime" ] ; then
        if [ $utctime -eq 0 ] ; then
                # kein timer gesetzt
                wakeTime=$curentTime
        else
                if [ $difftime -lt $(( $bootDuration + $shutdownDuration )) ] ; then
                        echo " Time to next wakeup time is to short"
                        exit 1
                fi
                wakeTime=$(( $utctime - $bootDuration ))
        fi

        days=$(( ($wakeTime - $curentTime) / 60 / 60 / 24))
        time=$(date -d "@$wakeTime" '+%H%M')
        echo -ne \\xC0$days$time > /dev/RCU
        echo -ne \\xE2\\x0A\\x2A\\x4A\\x6A > /dev/RCU
fi
exit 0

Oder wenn Du die Byte Codes brauchst wie beschrieben geht das so:
Code: [Select]
printf '%s' "$days$time" | od -An -v -tx1 | xargs

Bei der MLD-5 kannst Du auch in der 60_wakeup.sh nachschauen, wie dort die Zeit des nächsten Timers eingebunden wird.
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 6.5 - lirc yaUsbIR - 4 x DD-Sat - Intel N100M - 4GB RAM - 64GB SSD + 12TB HDD + 22TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline purzel

  • Profi Member
  • ****
  • Posts: 271
    • View Profile
Neuinstallation
« Reply #130 on: October 11, 2026, 10:47:35 »
Moin Claus!

Zuerst auf jeden Fall vielen Dank für Deine Variante - sie sieht, besonders durch den Verzicht auf die sed- und awk-"Orgie", bedeutend simpler aus.

Natürlich habe ich mit schnellem Erfolg versucht herauszufinden, was `setting get...` überhaupt ist. Aha, Bestandteil des MLD-WebIf. Das ist in diesem Fall natürlich nicht schlecht, aber...
Ich habe damals (~2015), als ich die RCU (*) Hardware neu aufgelegt habe (**), mit meinem Script versucht für möglichst viele VDR-Distris oder auch "Selbstbauer" kompatibel zu sein, also mit Bordmitteln zu arbeiten. Die Zeiten ändern sich halt... Das `setting get` (ist) limitiert auf MLDs WebIf - hier jedoch wie gesagt nicht nachteilig  :)

Deine Variante macht (im Grunde erwartungsgemäß) auch das Richtige; die Option mit dem printf braucht's nicht.
Noch eine kleine Frage in zwei Teilen dazu: wie kann ich (falls notwendig) bootDuration und shutdownDuration beeinflussen? Ist das in irgendwie in /etc/settings.json hardcoded oder kann man die auch mehr oder weniger direkt verändern, z.B. durch `setting set` oder so sowas? Ich habe nämlich nur wenig Lust, Deine ganze Software zu analysieren  ;D

BTW: Darf ich nochmal nachfragen, ob Ihr schon Zeit und Gelegenheit hattet, über den Einzug von vdr-2.8.3 in die MLD-6.5 zu befinden? (siehe hier). Roland hatte ich sogleich angeschrieben, aber er war anscheinend schon eine Weile nicht mehr hier.

(*) nicht nur Fernbedienung(sempfänger) sondern auch noch 7-Segment-Kanalanzeige und Wakeup-Board
(**) das Original stammt(e) von kls etwa aus der Zeit der Jahrtausendwende

Viele Grüße
Matthias
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.

Online clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 21617
    • View Profile
    • ClausMuus.de
Neuinstallation
« Reply #131 on: October 11, 2026, 14:54:43 »
Nein, wir hatten noch kein Entwickler Treffen. Das wird noch ne Woche warten müssen.

Und ja, Du kannst mit "setting set vdr.wakeup..." die Werte ändern. Einfach mal die beim Eingeben die TAB Taste drücken, dann bekommst Du Vervollständigungs-Vorschläge angezeigt.
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 6.5 - lirc yaUsbIR - 4 x DD-Sat - Intel N100M - 4GB RAM - 64GB SSD + 12TB HDD + 22TB HDD - Lian Li PC-C37B - Samsung LE40A559

1 ... 7 8 [9] MLD-6.x / General / Neuinstallation
 



Users Online Users Online

0 Members and 1 Guest are viewing this topic.