• Ah ok. Das klingt ja schon mal nicht verkehrt. Dann werde ich mir mal wieder ein Test System aufbauen und mal ein wenig rumspielen.


    Danke Seahawk, für die, wie immer, tolle Arbeit.

    VDR 1:
    Mainboard: Foxconn 45GM
    Prozessor: Core2Duo E6600
    Grafik: Geforce 210 Low Profile (passiv)
    DVB-Karte: Skystar HD/SkyStar HD 2
    Festplatten: 60 GB SSD als Boot/ 1 TB HDD als sdb gemountet als /srv
    Distri: Yavdr 0.6
    zusätzliche Pakete: yaepghd, istreamdev, Filezilla Client
    ----------------------------------------------------------------------
    VDR 2:


    Raspberry PI 512 MB
    16 GB SD Karte
    MLD 4 als Streamdev Client am VDR 1 für Gäste


    ------------------------------------------------------------------------


    (Linux ist ein System das durch Schmerz, Frust und Leid erlernt werden muss, aber wenn es einmal läuft macht es tierisch viel Spaß)

  • Hallo!


    Mir ist folgendes verhalten aufgefallen:


    Laufende HD-Aufnahme, Wiedergabe einer HD+ Aufnahme, beim vorspulen der Aufnahme stürzt der vdr ab:


    Code
    Apr 24 20:01:45 ubuntu18 vdr[20368]: corrupted double-linked list


    Ich kann dieses verhalten nicht bei jeder Aufnahme reproduzieren.


    Ist das bei euch auch so?


    Gruß

    Murry


    PS: Die 10.000 Zeichen Begrenzung nervt.

  • Moin,

    ich setze gerade ein Testsystem (auf 2. SSD in VDR1 aus meiner Sig.) mit yavdr ansible auf und dabei sind mir folgende Ungereimtheiten untergekommen:


    1. der Systemstart zeigt ein "ERROR: no video mode activated", bootsplash funktioniert nicht

    2. die automatische Konfiguration des X-Servers schlug fehl, da die edid-Erkennung über einen zwischengeschalteten AVR nicht funktionierte (direkter Anschluß an den TV lieferte dann das gewünschte Ergebnis)

    3. anschließend schlug die Konfiguration von eventlircd fehl, da der Service bereits lief (service eventlircd stop hat dies behoben, das Playbook lief dann wieder sauber durch)

    4. ein per NFS eingehängtes Aufnahmeverzeichnis verhindert den Start des VDR, obwohl die Berechtigung passen sollte (selbiges tut unter yaVDR 0.6.2 perfekt)

    5. der VDR nutzt zum EPG-Scan mein primäres DVB-Device und schaltet mir daher das Livebild um


    Hat jemand zu 1., 4. und 5. einen passenden Tip für mich?


    zu 4.:
    - fstab wie folgt: <IP>:/volume1/vdr /srv/vdr/video nfs auto,nouser,defaults,intr 0 0

    - User vdr:vdr ist auf dem NAS mit identischer UID zum yaVDR vorhanden und auch Besitzer aller Verzeichnisse/Dateien ab /volume1/vdr

    - der Export berechtigt die IP des VDR zu read/write

    - mount funktioniert und nach einem su vdr kann ich auch unter /srv/vdr/video Dateien anlegen

    - service vdr start schlägt danach aber fehl



    zu 5.:


    - in der setup.conf habe ich PrimaryDVB = 5 und softhddevice.MakePrimary = 1 gesetzt
    - die Adapter werden sauber erkannt


    - beim Start wird das entsprechende Device gesetzt



    Cheers,

    Ole

    6 Mal editiert, zuletzt von OleS ()

  • 1. der Systemstart zeigt ein "ERROR: no video mode activated", bootsplash funktioniert nicht

    Nur damit ich mal versuchen kann das bei Gelegenheit nachzustellen: ist das eine UEFI oder eine MBR-Installation?

    2. die automatische Konfiguration des X-Servers schlug fehl, da die edid-Erkennung über einen zwischengeschalteten AVR nicht funktionierte (direkter Anschluß an den TV lieferte dann das gewünschte Ergebnis)

    Wie sehen die vom Playbook generierten Dateien in /etc/ansible/ aus, wenn der AVR dazwischen hängt und du install-yavdr.sh noch mal laufen lässt?

    3. anschließend schlug die Konfiguration von eventlircd fehl, da der Service bereits lief (service eventlircd stop hat dies behoben, das Playbook lief dann wieder sauber durch)

    Ich habe die Reihenfolge der Installationsschritte mal angepasst, so dass erst das lirc-Paket installiert wird, dann werden dessen Systemd-Units gestoppt und danach erst eventlircd installiert.

    4. ein per NFS eingehängtes Aufnahmeverzeichnis verhindert den Start des VDR, obwohl die Berechtigung passen sollte (selbiges tut unter yaVDR 0.6.2 perfekt)

    IMHO braucht es da mindestens eine Startabhängigkeit des VDR vom erfolgreichen NFS-Mount - nutzt du NFS v3 oder v4?

    5. der VDR nutzt zum EPG-Scan mein primäres DVB-Device und schaltet mir daher das Livebild um

    Passiert das sofort oder erst nach dem in den Einstellungen gesetzten Timeout (http://vdr-wiki.de/wiki/index.php/Benutzerhandbuch#EPG)?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Nur damit ich mal versuchen kann das bei Gelegenheit nachzustellen: ist das eine UEFI oder eine MBR-Installation?

    Eine MBR-Installation


    Wie sehen die vom Playbook generierten Dateien in /etc/ansible/ aus, wenn der AVR dazwischen hängt und du install-yavdr.sh noch mal laufen lässt?

    Werde ich später angehen und posten.

    IMHO braucht es da mindestens eine Startabhängigkeit des VDR vom erfolgreichen NFS-Mount - nutzt du NFS v3 oder v4?

    Die Abhängigkeit brauche ich doch aber nur wenn ich sichergehen will, dass der mount da ist bevor der VDR startet. Mein Problem ist, dass der mount vorhanden ist, ein service vdr start aber mit dem Fehler 'unable to access /srv/vdr/video' fehlschlägt - also eher ein Berechtigungsproblem.


    Manuell kann ich allerdings als Benutzer vdr sehr wohl auf das Verzeichnis zugreifen und dort auch schreiben. Mit welchem Benutzer wird denn der Start vom vdr unter systemd ausgeführt?

    Passiert das sofort oder erst nach dem in den Einstellungen gesetzten Timeout (http://vdr-wiki.de/wiki/index.php/Benutzerhandbuch#EPG)?

    Das passiert direkt nach dem Start des VDR, also innerhalb der ersten 1-2 Minuten.


    Cheers,

    Ole

  • Mit welchem Benutzer wird denn der Start vom vdr unter systemd ausgeführt?

    Der VDR startet als root (um einige Capabilities setzen zu können) und wechselt dann auf den Nutzer vdr. In der Hinsicht hat sich gegenüber Ubuntu 14.04 eigentlich nichts geändert.


    Ich habe mal das Aufnahmeverzeichnis von einem yaVDR 0.6.1 per NFS eingebunden, das klappt mit dieser Zeile in der fstab ohne Probleme:

    VDR:/srv/share/vdr /srv/vdr/video nfs defaults,hard,rsize=32768,wsize=32768,timeo=90,retrans=5,_netdev,x-systemd.before=vdr.service 0 0

    Das wäre ein NFS-v3 Mount, wie man in der Ausgabe von mount sehen kann:

    VDR:/srv/share/vdr on /srv/vdr/video type nfs (rw,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,timeo=90,retrans=5,sec=sys,mountaddr=192.168.1.104,mountvers=3,mountport=42359,mountproto=udp,local_lock=none,addr=192.168.1.104,_netdev)


    Edit: Ok, das klappt nur, weil bei einem yaVDR 0.6 in der /etc/exports die Optionen anongid=666,anonuid=666 gesetzt sind - wenn ich die rausnehme, kann ich das Problem nachvollziehen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    2 Mal editiert, zuletzt von seahawk1986 ()

  • Hier die Ausgabe der xorg-Thematik:

    Code
    TASK [yavdr-xorg : detect xorg configuration] ************************************************************************************************
    fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "Checksum Correct\n\n/bin/sh: line 1:  9985 Segmentation fault      (core dumped) parse-edid < /etc/X11/edid.HDMI-0.bin\nTraceback (most recent call last):\n  File \"/tmp/ansible_l17TpN/ansible_module_xrandr_facts.py\", line 271, in <module>\n    output_data(xorg_data, module.params['write_edids'])\n  File \"/tmp/ansible_l17TpN/ansible_module_xrandr_facts.py\", line 250, in output_data\n    vendor_0, model_0 = parse_edid_data('/etc/X11/edid.{}.bin'.format(connector_0))\n  File \"/tmp/ansible_l17TpN/ansible_module_xrandr_facts.py\", line 177, in parse_edid_data\n    data = subprocess.check_output(\"parse-edid < {}\".format(edid), shell=True, universal_newlines=True)\n  File \"/usr/lib/python2.7/subprocess.py\", line 223, in check_output\n    raise CalledProcessError(retcode, cmd, output=output)\nsubprocess.CalledProcessError: Command 'parse-edid < /etc/X11/edid.HDMI-0.bin' returned non-zero exit status 139\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}


    Zum NFS:

    wenn ich die rausnehme, kann ich das Problem nachvollziehen.


    Ich habe im Gegenzug squash_all aktiviert und alle Benutzer vom VDR auf 'admin' an der Syno gemappt - der Fehler bleibt.


    Cheers,

    Ole

  • Das sieht so aus, als ob die EDID, die sich das Python-Skript aus der Ausgbe von xrandr -d :0 --verbose holt von parse-edid nicht ordentlich verarbeitet werden kann - den Fehler kann ich abfangen, aber mich würde interessieren, was da vom AV-Receiver kommt.

    Kannst du mal mit angeschlossenem AV-Receiver mal folgendes machen und die Ausgabe vom xrandr-Befehl posten?

    Code
    sudo stop yavdr-xorg.service
    sudo unmask x-verbose@vt7.service
    sudo start x-verbose@vt7.service
    xrandr -d :0 --verbose
    # zum Wiederherstellen der normalen Xorg-Sitzung:
    sudo stop x-verbose@vt7.service
    sudo mask x-verbose@vt7.service
    sudo start yavdr-xorg

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Das Aufnahmeverzeichnis per NFS will immer noch nicht:

    Code
    root@htpc:/mnt/etc# showmount -e 10.205.1.147
    Export list for 10.205.1.147:
    /volume1/vdr 10.205.1.151
    
    
    root@htpc:/mnt/etc# mount | grep -i video
    10.205.1.147:/volume1/vdr on /srv/vdr/video type nfs (rw,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,timeo=90,retrans=5,sec=sys,mountaddr=10.205.1.147,mountvers=3,mountport=892,mountproto=udp,local_lock=none,addr=10.205.1.147,_netdev)
    Code
    root@sundalon:~# cat /etc/exports
    /volume1/vdr    10.205.1.151(rw,fsid=0,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=666,anongid=666)


    Irgendwie habe ich gerade keine Idee mehr...


    Kannst du mal mit angeschlossenem AV-Receiver mal folgendes machen und die Ausgabe vom xrandr-Befehl posten?

    Würde ich gerne aber:

    Fehlt mir da etwas entscheidendes?


    Cheers,

    Ole

  • Fehlt mir da etwas entscheidendes?

    Ah, das habe ich systemd und Upstart ducheinander gebracht ...

    Code
    sudo systemctl stop yavdr-xorg.service
    sudo systemctl unmask x-verbose@vt7.service
    sudo systemctl start x-verbose@vt7.service
    xrandr -d :0 --verbose
    # zum Wiederherstellen der normalen Xorg-Sitzung:
    sudo systemctl stop x-verbose@vt7.service
    sudo systemctl mask x-verbose@vt7.service
    sudo systemctl start yavdr-xorg

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zu NFS: hast du nach der Änderung an der /etc/exports ein exportfs -ra ausgeführt?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zu NFS:

    Ja, hatte ich gemacht.


    Ah, das habe ich systemd und Upstart ducheinander gebracht ...

    Hier der Output:

  • aufgeteilt wg. 10.000 Zeichen Limit...


  • Eine neue Installation (from scratch, also auf ein blankes Ubuntu 18.04), die Fehler ähneln sich.


    - ansible installer rennt (bei zwischengeschaltetem AVR) ohne Fehler über die xorg Konfiguration weg, Top!


    - bleibt bei eventlircd hängen

    --> ein service eventlircd stop behebt das Problem


    - nach dem Reboot (channels.conf habe ich vorher erzeugt), coredump

    Code
    May 10 19:44:54 yavdr vdr: [2723] creating directory /var/cache/vdr/plugins/restfulapi
    May 10 19:44:54 yavdr vdr: [2723] ERROR (tools.c,495): /var/cache/vdr/plugins/restfulapi: Permission denied


    --> Ein chown -R vdr: /var/cache/vdr behebt das Problem, /var/cache/vdr/plugins gehörte root:root

    - vdr startet jetzt, aber die Displays sind vertauscht. 55 Zoll EPG-Infos sind super lesbar, aber das TV-Bild ist auf dem 12-Zöller etwas mickrig ;)


    - Aufnahmeverzeichnis per NFS lässt den vdr wieder nicht starten... Die Berechtigungen stimmen aber, denn mittlerweile schreibe ich alle Zugriffe per squash_all auf anonuid=666 und anongrpid=666 um


    Cheers,

    Ole

    Einmal editiert, zuletzt von OleS ()

  • - vdr startet jetzt, aber die Displays sind vertauscht. 55 Zoll EPG-Infos sind super lesbar, aber das TV-Bild ist auf dem 12-Zöller etwas mickrig

    Wenn ich das richtig gesehen habe, hängt bei dir der TV am DVI-Anschluss und der kleine Bildschirm am HDMI-Anschluss.


    Das Skript, das die Bildschirmerkennung macht, sortiert die Modi der angeschlossenen Bildschirme nach den Kriterien Refreshrate, Auflösung und Anschlusstyp (vgl. https://github.com/yavdr/yavdr…rary/xrandr_facts.py#L100 ff.). Da beide von dir angeschlossenen Bildschirme 1080p50 können, greift die in der Voreinstellung festgelegte Rangordnung HDMI > DP > DVI > VGA > TV.


    Ich hatte schon im Modul vorbereitet, dass man diese Reihenfolge übersteuern kann und das jetzt auch mit Variablen im Playbook abgebildet (die Vorgabewerte liegen jetzt in https://github.com/yavdr/yavdr…dr-xorg/defaults/main.yml) - nach einen git pull kannst du dir im Verzeichnis für das Ansible-Playbook eine host_vars/localhost.yml anlegen und in der die Liste für die Reihenfolge der Ausgänge übersteuern, also z.B. um DVI gegenüber HDMI zu bevorzugen:

    Code: host_vars/localhost.yml
    preferred_outputs: ["DVI", "HDMI", "DP", "VGA", "TV"]

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • - bleibt bei eventlircd hängen

    --> ein service eventlircd stop behebt das Problem

    Hast du da eventuell noch die Fehlermeldung bzw. den Schritt bei dem er hängen bleibt?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • - Aufnahmeverzeichnis per NFS lässt den vdr wieder nicht starten... Die Berechtigungen stimmen aber, denn mittlerweile schreibe ich alle Zugriffe per squash_all auf anonuid=666 und anongrpid=666 um

    Nur um das besser nachvollziehen zu können: du hast auf dem Rechner, der die NFS-Freigabe bereitstellt, einen User mit uid=666 und gid=666 und der darf alle Verzeichnisse oberhalb des freigegebenen Aufnahmeverzeichnis (in dem Fall also /volume1/) betretren und hat für das Aufnahmeverzeichnis selbst alle Rechte?

    root@sundalon:~# cat /etc/exports
    /volume1/vdr 10.205.1.151(rw,fsid=0,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=666,anongid=666)

    Laut man 5 exports bringt es nichts die Optionen async und no_wdelay zu kombinieren, da letzteres nur bei sync einen Effekt hat.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Wenn ich das richtig gesehen habe, hängt bei dir der TV am DVI-Anschluss und der kleine Bildschirm am HDMI-Anschluss

    Nein, genau anders herum: HDMI=TV, DVI=Monitor.


    nach einen git pull kannst du dir im Verzeichnis für das Ansible-Playbook eine host_vars/localhost.yml anlegen und in der die Liste für die Reihenfolge der Ausgänge übersteuern,

    Werde ich trotzdem mal testen.


    Hast du da eventuell noch die Fehlermeldung bzw. den Schritt bei dem er hängen bleibt?

    Leider nein, aber das System ist ja schnell noch einmal installiert, werde ich also nachliefern.

    Hier jetzt die Fehlermeldung.

    einen User mit uid=666 und gid=666 und der darf alle Verzeichnisse oberhalb des freigegebenen Aufnahmeverzeichnis (in dem Fall also /volume1/) betretren und hat für das Aufnahmeverzeichnis selbst alle Rechte?


    Genau so:

    Code
    root@sundalon:/volume1# grep vdr /etc/passwd
    vdr:x:666:666::/var/services/homes/vdr:/sbin/nologin
    root@sundalon:/volume1# grep vdr /etc/group
    vdr:x:666
    
    root@sundalon:/volume1# ll -d /volume1
    drwxrwxrwx 1 root root 274 Apr 12 15:55 /volume1
    
    root@sundalon:/volume1# ll -d /volume1/vdr
    drwxrwxrwx 1 vdr vdr 112 May 10 18:56 /volume1/vdr

    /volume1/vdr ist der NFS-Export, in diesem Sinne also auch das Aufnahmeverzeichnis.


    Laut man 5 exports bringt es nichts die Optionen async und no_wdelay zu kombinieren

    Das mag sein, aber der Export ist aus dem Webfrontend einer Synology heraus erstellt und das sind die Vorgaben des Herstellers. ;)

    Ich habe sie lediglich in ein paar Punkten angepasst, auf den Sinngehalt hin habe ich den default bisher nicht geprüft und der selbe Export

    funktioniert im bisherigen yaVDR seit Jahren .


    Cheers,

    Ole

    Einmal editiert, zuletzt von OleS ()

  • Code
    host_vars/localhost.yml:
    preferred_outputs: ["HDMI", "DVI", "DP", "VGA", "TV"]

    Mit genau diesem (also eigentlich dem default) Eintrag passt bei mir Bildschirmzuteilung. Da läuft also etwas bei der Erkennung falsch.


    Die Meldung vom eventlircd habe ich hier angehängt.


    Cheers,

    Ole

  • Zu eventlircd: ich habe die zusätzliche Aktiverung von eventlicd.socket in der Rolle autoinstall-atric-usb mal rausgenommen. Mit früheren Ansible-Versionen hat das IIRC ohne Probleme funktioniert (eigentlich sollten die Aktionen von Ansible-Modulen immer idempotent sein).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!