Häng doch mal an die options hinter rw noch ein ',comment=systemd.automount' an. In meiner vdr.service habe ich bei mir noch die mnt-rec.mount in After= und Wants= reingenommen.
Damit läuft das bei mir eigentlich ganz gut.
Christian
Häng doch mal an die options hinter rw noch ein ',comment=systemd.automount' an. In meiner vdr.service habe ich bei mir noch die mnt-rec.mount in After= und Wants= reingenommen.
Damit läuft das bei mir eigentlich ganz gut.
Christian
hast du auch schonmal versucht, epghttpd so zu bauen, wie horchi hier in Beitrag #23 segfault von epghttpd beim Speichern von Timern vorgeschlagen hat?
gerade gemacht:
web /usr/local/portage/local/media-tv/epgd # coredumpctl debug
PID: 17132 (epghttpd)
UID: 0 (root)
GID: 0 (root)
Signal: 11 (SEGV)
Timestamp: Thu 2024-06-20 20:35:07 CEST (5min ago)
Command Line: ./epghttpd -c /etc/epgd
Executable: /var/tmp/portage/media-tv/epgd-9999/work/epgd-9999/epghttpd
Control Group: /user.slice/user-0.slice/session-18.scope
Unit: session-18.scope
Slice: user-0.slice
Session: 18
Owner UID: 0 (root)
Boot ID: 5a4a45de68c1405d887e869f80472527
Machine ID: 83039f6c679c90a840bd10b25b1fce02
Hostname: web
Storage: /var/lib/systemd/coredump/core.epghttpd.0.5a4a45de68c1405d887e869f80472527.17132.1718908507000000.zst (present)
Size on Disk: 2.6M
Message: Process 17132 (epghttpd) of user 0 dumped core.
GNU gdb (Gentoo 14.2 vanilla) 14.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /var/tmp/portage/media-tv/epgd-9999/work/epgd-9999/epghttpd...
[New LWP 17134]
[New LWP 17132]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Core was generated by `./epghttpd -c /etc/epgd'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fa4a662a7b4 in ?? () from /usr/lib64/libpython3.12.so.1.0
[Current thread is 1 (Thread 0x7fa4a41d86c0 (LWP 17134))]
(gdb) bt
#0 0x00007fa4a662a7b4 in ?? () from /usr/lib64/libpython3.12.so.1.0
#1 0x00007fa4a65d5c42 in ?? () from /usr/lib64/libpython3.12.so.1.0
#2 0x00007fa4a65d7895 in ?? () from /usr/lib64/libpython3.12.so.1.0
#3 0x00007fa4a64e6d36 in PyObject_CallObject () from /usr/lib64/libpython3.12.so.1.0
#4 0x00005571ce816d62 in Python::execute (this=0x5571cff65ff0, eventsDb=0x5571d003dd20, namingmode=1, tmplExpression=0x7fa49c015420 "") at python.c:310
#5 0x00005571ce790f0d in cEpgHttpd::storeTimerJob (this=this@entry=0x5571cff651e0, jInData=jInData@entry=0x7fa49c028710, response=response@entry=0x7fa49c013ff0) at webstore.c:309
#6 0x00005571ce7b43f5 in cEpgHttpd::performPostData (this=0x5571cff651e0, url=url@entry=0x7fa49c019a65 "/data/save-timer", data=data@entry=0x7fa4a41d6830) at httpd.c:1624
#7 0x00005571ce7b4850 in cEpgHttpd::dispatcher (cls=<optimized out>, tcp=0x7fa49c0061b0, url=0x7fa49c019a65 "/data/save-timer", method=0x7fa49c019a60 "POST", version=<optimized out>, upload_data=0x0, upload_data_size=0x7fa4a41d6ef0,
con_cls=0x7fa49c006208) at httpd.c:1777
#8 0x00007fa4a6bb1a0c in ?? () from /usr/lib64/libmicrohttpd.so.12
#9 0x00007fa4a6bb3bf8 in ?? () from /usr/lib64/libmicrohttpd.so.12
#10 0x00007fa4a6bb65e0 in ?? () from /usr/lib64/libmicrohttpd.so.12
#11 0x00007fa4a6bbbda0 in ?? () from /usr/lib64/libmicrohttpd.so.12
#12 0x00007fa4a6bbcd05 in ?? () from /usr/lib64/libmicrohttpd.so.12
#13 0x00007fa4a56bf551 in ?? () from /usr/lib64/libc.so.6
#14 0x00007fa4a572d92c in ?? () from /usr/lib64/libc.so.6
(gdb)
Alles anzeigen
Bringt vermutlich auch keine Erleuchtung.
Hi,
habe hier das gleiche Problem. Coredump beim Anlegen von timern, die nicht auf 'VDR' gestellt werden.
Ich poste mal den bt, vielleicht hilft's.
Christian
web /var/lib/systemd/coredump # coredumpctl debug
PID: 1413 (epghttpd)
UID: 0 (root)
GID: 0 (root)
Signal: 11 (SEGV)
Timestamp: Wed 2024-06-19 22:07:27 CEST (9s ago)
Command Line: /usr/bin/epghttpd -c /etc/epgd
Executable: /usr/bin/epghttpd
Control Group: /system.slice/epghttpd.service
Unit: epghttpd.service
Slice: system.slice
Boot ID: 5b166cb376ba493e81a44b8b831d9572
Machine ID: 83039f6c679c90a840bd10b25b1fce02
Hostname: web
Storage: /var/lib/systemd/coredump/core.epghttpd.0.5b166cb376ba493e81a44b8b831d9572.1413.1718827647000000.zst (present)
Size on Disk: 1014.5K
Message: Process 1413 (epghttpd) of user 0 dumped core.
GNU gdb (Gentoo 14.2 vanilla) 14.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/epghttpd...
Reading symbols from /usr/lib/debug//usr/bin/epghttpd.debug...
[New LWP 1414]
[New LWP 1413]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/epghttpd -c /etc/epgd'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f68cae2a7b4 in ?? () from /usr/lib64/libpython3.12.so.1.0
[Current thread is 1 (Thread 0x7f68c89196c0 (LWP 1414))]
(gdb) bt
#0 0x00007f68cae2a7b4 in ?? () from /usr/lib64/libpython3.12.so.1.0
#1 0x00007f68cadd5c42 in ?? () from /usr/lib64/libpython3.12.so.1.0
#2 0x00007f68cadd7895 in ?? () from /usr/lib64/libpython3.12.so.1.0
#3 0x00007f68cace6d36 in PyObject_CallObject () from /usr/lib64/libpython3.12.so.1.0
#4 0x000055ce649ae354 in Python::execute (this=0x55ce660fc030, eventsDb=0x55ce661d61b0, namingmode=1, tmplExpression=0x7f68c4009a00 "")
at python.c:310
#5 0x000055ce6493ba78 in cEpgHttpd::storeTimerJob (this=0x55ce660fb1e0, jInData=0x7f68c4009330, response=0x7f68c4009250) at webstore.c:309
#6 0x000055ce64954cf2 in cEpgHttpd::performPostData (this=0x55ce660fb1e0, url=0x7f68c4000d75 "/data/save-timer", data=0x7f68c8917b20)
at httpd.c:1624
#7 0x000055ce64955610 in cEpgHttpd::dispatcher (cls=0x0, tcp=0x7f68c4000b70, url=0x7f68c4000d75 "/data/save-timer", method=0x7f68c4000d70 "POST",
version=0x7f68c4000d86 "HTTP/1.1", upload_data=0x0, upload_data_size=0x7f68c8917ef0, con_cls=0x7f68c4000bc8) at httpd.c:1777
#8 0x00007f68cb34da0c in ?? () from /usr/lib64/libmicrohttpd.so.12
#9 0x00007f68cb34fbf8 in ?? () from /usr/lib64/libmicrohttpd.so.12
#10 0x00007f68cb3525e0 in ?? () from /usr/lib64/libmicrohttpd.so.12
#11 0x00007f68cb357da0 in ?? () from /usr/lib64/libmicrohttpd.so.12
#12 0x00007f68cb358d05 in ?? () from /usr/lib64/libmicrohttpd.so.12
#13 0x00007f68c9ebf551 in ?? () from /usr/lib64/libc.so.6
#14 0x00007f68c9f2d92c in ?? () from /usr/lib64/libc.so.6
(gdb)
Alles anzeigen
Log dazu:
Jun 19 22:07:27 web kernel: MHD-single[1414]: segfault at f0 ip 00007f68cae2a7b4 sp 00007f68c8917380 error 4 in libpython3.12.so.1.0[7f68cac83000+243000] likely on CPU 0 (core 0, socket 0)
Jun 19 22:07:27 web kernel: Code: 06 00 00 0f 95 c0 c3 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 f3 0f 1e fa 41 55 41 54 55 49 89 f4 53 48 89 fd 48 83 ec 08 <48> 8b 97 f0 00 00 00 48 85 d2 74 1a 48 8b 87 f8 00 00 00 48 63 ce
Jun 19 22:07:27 web systemd[1]: Started Process Core Dump (PID 1470/UID 0).
Jun 19 22:07:27 web systemd-coredump[1471]: elfutils disabled, parsing ELF objects not supported
Jun 19 22:07:27 web systemd-coredump[1471]: [🡕] Process 1413 (epghttpd) of user 0 dumped core.
Jun 19 22:07:27 web systemd[1]: epghttpd.service: Main process exited, code=dumped, status=11/SEGV
Jun 19 22:07:27 web systemd[1]: epghttpd.service: Failed with result 'core-dump'.
Jun 19 22:07:27 web systemd[1]: systemd-coredump@2-1470-0.service: Deactivated successfully.
Jun 19 22:07:28 web systemd[1]: epghttpd.service: Scheduled restart job, restart counter is at 2.
Jun 19 22:07:28 web systemd[1]: Starting EPG HTTP Daemon that provides a web interface...
Jun 19 22:07:28 web epghttpd[1483]: Set locale to 'de_DE.utf8'
Jun 19 22:07:28 web epghttpd[1483]: detected UTF-8
Jun 19 22:07:28 web epghttpd[1483]: Read 27 option from /etc/epgd/epgd.conf
Jun 19 22:07:28 web epghttpd[1483]: Initialize python script '/etc/epgd/recording.py'
Jun 19 22:07:28 web systemd[1]: Started EPG HTTP Daemon that provides a web interface.
Jun 19 22:07:28 web epghttpd[1483]: Initialize python script '/etc/epgd/recording.py'
Jun 19 22:07:28 web epghttpd[1483]: Dictionary '/etc/epgd/epg.dat' loaded
Jun 19 22:07:28 web epghttpd[1483]: Info: Calling mysql_library_init()
Jun 19 22:07:28 web epghttpd[1483]: Connecting to database at 'localhost:3306'
Jun 19 22:07:28 web epghttpd[1483]: Calling mysql_init(1483)
Jun 19 22:07:28 web epghttpd[1483]: SQL client character now 'utf8mb3'
Jun 19 22:07:28 web epghttpd[1483]: Info: Eloquence set to 'Error,Warning,Info' => 0x0007
Jun 19 22:07:28 web epghttpd[1483]: Calling mysql_init(1483)
Jun 19 22:07:28 web epghttpd[1483]: Starting http server ...
Jun 19 22:07:28 web epghttpd[1483]: Listener at port 9999 established, waiting for connections
Jun 19 22:07:28 web epghttpd[1483]: Calling sd_notify(READY=1$STATUS=Ready$MAINPID=1483$)
Jun 19 22:07:28 web epghttpd[1483]: Info: Systemd watchdog not configured, epgd won't be sending keep-alive messages!
Alles anzeigen
Hi,
Problem tritt hier nicht auf, zumindest wird kein Fehler geloggt.
Jun 19 07:41:30 web epgd[688]: Downloaded 'ARD' for 2024-07-02 with (75972) Bytes, changed since last load.
Jun 19 07:41:30 web epgd[688]: [91B blob data]
...
Jun 19 07:42:00 web epgd[688]: EPG Update finished, loaded 396 files (31,558 MB), 370 non-updates skipped, 46 rejected due to format error.
Allerdings habe ich folgende Fehler seit einer Weile:
Jun 19 07:39:50 web epgd[688]: Checking tvm id 1
Jun 19 07:39:51 web epgd[688]: Downloaded file 'http://www.clickfinder.de/daten/onlinedata/cftv520/tvdaten-premium-1.cftv' with (99220) Bytes
Jun 19 07:39:51 web epgd[688]: Extracting 'tvdaten-premium-1.cftv'
Jun 19 07:39:51 web epgd[688]: Creating xml of 1
Jun 19 07:39:51 web epgd[688]: tmp.xml.gz:24085: parser error : Extra content at the end of the document
Jun 19 07:39:51 web epgd[688]: ^
Jun 19 07:39:51 web epgd[688]: Error parsing XML File 'tvdaten-premium-1.cftv'
Jun 19 07:39:51 web epgd[688]: XSLT transformation for 'tvdaten-premium-1.cftv' failed, ignoring
Jun 19 07:39:51 web epgd[688]: Processing of 'tvdaten-premium-1.cftv' failed
Christian
Hallo,
nach Umstieg von mysql auf mariadb mit Übernahme der Daten habe ich im epghttpd bei den meisten meiner Aufnahmen die Fehlermeldung 'Missing event start time or md5path/path in request' in #menu_records.
Ein System erkannt habe ich noch nicht, bei welchen Aufnahmen ich das angezeigt bekomme und bei welchen nicht.
Kann ich irgendwie die Aufnahmen komplett neu einlesen lassen, ohne gleich die ganze Datenbank zu droppen?
Christian
Prima.
Ich habe das jetzt per fhem automatisiert. Wenn ich von TV auf Beamer schalte, setze ich ein geändertes audio-delay und nun auch die Anzahl Zeilen im Aufzeichnungsmenü. Vielleicht folgen noch ein paar Parameter.
Falls den Schnipsel jemand gebrauchen kann:
system("ssh vdr\@vdr \"/usr/local/bin/vdr-dbus-send.sh /Setup setup.Set string:\'skindesigner.estuary4vdr.numitemsrecwide\' variant:string:\'16\'\" > /dev/null");
system("ssh vdr\@vdr \"/usr/local/bin/vdr-dbus-send.sh /Setup setup.Set string:\'softhddevice.AudioDelay\' variant:string:\'20\'\" > /dev/null");
system("ssh vdr\@vdr \"/usr/local/bin/svdrpsend PLUG skindesigner RELD\" > /dev/null");
Skindesigner benötigt das RELD per svdrp, sonst wird der per dbus gesetzte Wert nicht verwendet. So funktioniert's aber.
Schönen Abend,
Christian
Ein schneller Test: sieht gut aus. Probiert mit 15, 14, 13, 10 Elementen. Passt alles, sehr schön!
Christian
Ändere mal in "estuary4vdr/xmlfiles/displaymenurecordings.xml" in den Zeilen 166 und 170 (je 2 mal vorhanden) den Wert 430 in 440.
Dann ist der Abstand etwas größer.
Sorry, war ein paar Tage weg.
440 sieht ganz harmonisch aus, zumindest mit 15 'Anzahl Menüelemente'. Ändere ich das auf 14, dann überlappen bei mir Uhrzeit und Name um etwa einen Buchstaben.
Christian
Ich habe das mal im skin eingebaut (letzter commit im Branch develop). Das Fehler-Symbol und die Aufzeichnungslänge lassen sich jetzt im breiten Menü abschalten.
Wenn Du den Branch develop schon benutzt, wovon ich ausgehe, reicht es, den skin einfach zu kopieren, das Plugin selbst muss nicht neu kompiliert werden.
Du kannst ja mal schauen, ob das jetzt so OK ist.
Super, danke für die schnelle Erledigung.
Funktioniert so, wie ich mir das gewünscht hatte.
Einzig der Abstand zwischen Uhrzeit der Aufnahme und dem Namen derselben (im Aufnahmemenü) wirkt recht kurz, Kann aber auch an meinen Schriftgrößen liegen, muss ich noch ein wenig mit spielen.
Danke!
Habe jetzt seit langer Zeit mal wieder den skindesigner upgedatet, war auf dem falschen git-Server vorher. Sehr schön, läuft bei mir deutlich stabiler jetzt.
Danke für Deine Arbeit!
Was mich freuen würde im Aufzeichnungsmenü (estuary4vdr-skin): Konfigurationsmöglichkeit für das Symbol 'Aufnahmefehler' sowie für die Anzeige der Aufzeichnungslänge. Gerade letzteres benötigt recht viel Platz und lässt sich wohl nur durch kleinere Schriften kompensieren.
Die Augen waren halt früher besser...
Christian
w_scan_cpp funktioniert immer noch nicht... in mythtv funktioniert es mehr oder weniger. Weniger, da hier auch stets das erste Tuning fehlschlägt, beim Kanalscan die erste Frequenz, im Live TV bekomme ich kein Signal beim Start, muss auf einen anderen Sender wechseln, da geht's und ggf. wieder zurück, dann geht auch der ursprüngliche Sender. Meine Vermutung, das liegt an der Selfsat Antenne, evtl. auch an den Digital Devices Karten. Außerdem habe ich gerade noch einen schlechten Kabelabschnitt gefunden, der aber sporadisch auch funktioniert hat
Mal abseits der Software, kann es sein, dass sowas in der Art fehlt?
https://www.inverto.tv/accesso…-power-inserter-5-2400mhz
Ohne das Teil hatte ich auch sehr komische Fehlerbilder mit meiner Anlage.
Christian
Ich verstehe ehrlich gesagt überhaupt nicht, was Du erreichen willst. tty8 wird nun gelesen, das haben wir doch schon eingestellt.
Das alte Script ist nicht nötig, systemd startet vdr. Bei Dir nun nicht mehr automatisch, da Du das abgestellt hast.
init läuft nicht, spar Dir die Mühe mit den Dateien unter /etc/init.d/. Das sind vermutlich alles nur Altlasten.
systemd startet vdr direkt. Die Parameter werden aus /etc/vdr/conf.d/ geholt. Mehr ist nicht nötig. Kein Script, keine Magie.
Vielleicht wäre es sinnvoll erstmal zu schauen, welches init-System läuft.
Dass sowohl systemd als auch das 'alte' init läuft würde ich erstmal ausschließen.
Tastaturbedienung via remote (Du schreibst von ssh) würde ich über das remote-Plugin per telnet nutzen. Das nutze ich so und das klappt hervorragend. Dann ersparst Du Dir, das ganze System umzukrempeln und dabei das eine oder andere zu vermurksen.
Christian
Wie richte ich es so ein, dass die Gruppe tty permanent Leserechte auf /dev/tty8 hat, nach einem Reboot ist das immer wieder auf Standard. Ohne das Leserecht kann vdr (User vdr ist in Gruppe tty) die Eingaben auf dieser Console aber nicht lesen.
Standard:crw--w---- 1 root tty 4, 8 1. Apr 15:51 /dev/tty8
ein sudo chmod g+r /dev/tty8 macht daraus ein crw-rw---- und es funktioniert - aber eben nur bis zum nächsten Reboot. Wie mache ich das permanent? Vermutlich könnte ich den chmod mit in das Script packen aber wäre das der vorgesehene Linux-Weg?
ich würde das via udev machen:
In /etc/udev/rules.d/99-tty8.rules
Aus dem Bauch und ungetestet. Sollte nach dem Neustart passen.
Christian
Hab's dann doch gleich probiert. Das klappt und der Parameter wird sofort umgesetzt.
Danke,
Christian
Klingt gut, probiere ich nach dem Urlaub aus.
Danke...
Hallo,
beim Schauen per angeschlossenem Fernseher benötige ich keine Audio-Video-Verzögerung, wenn ich auf Beamer umschalte wären ein paar ms prima.
Wie kann ich das per commandline umschalten? Würde das beim laufenden vdr greifen oder wäre ein Neustart nötig?
Ich würde das gerne automatisiert anpassen.
Christian
Allerdings kann es dann sein, dass Pattern-Timer nicht mehr richtig funktionieren.
Nur mal unqualifiziert gedacht: und wenn vdr intern mit dem Event, bereinigt um die einstellbare Vor- und Nachlaufzeit rechnen würde?
Christian
Ich habe das so gelöst:
REC_DIFF=2700 # Mindestabstand zum naechsten Timer in Sekunden (2700s=45min)
SVDRP=/usr/local/bin/svdrpsend
NEXT=`$SVDRP NEXT rel|grep -m1 250|cut -d\ -f3`
NEXT=${NEXT/[^-0-9]*}
STREAM=0
/usr/bin/lsof -i :2004|/bin/grep -ci ESTABLISHED > /dev/null && STREAM=1
if [ ${STREAM} == 1 ]; then
echo "---RESTART--- abgebrochen, streamdev Plugin aktiv"
exit 0
fi
echo "---RESTART--- naechster Timer in" ${NEXT} "Sekunden"
if [ ${NEXT} -le 0 ]; then
echo "---RESTART--- abgebrochen, Aufnahme laeuft"
exit 0
fi
if [ ${NEXT} -le ${REC_DIFF} ]; then
echo "---RESTART--- abgebrochen, zu knapp vor naechstem Timer"
else
echo "---RESTART--- EPG Update"
...
Alles anzeigen
Christian
Ganz pragmatischer Ansatz eines Nichtprogrammierers: was passiert denn, wenn Du statt 'REM; LEDs' 'REM; LEDs;' verwendest? Also noch ein Semikolon ans Ende? Dann sollte doch das Zeilenende in $UrlEntry[2] landen und dadurch ignoriert werden.
Christian