VDR startet nicht mehr automatisch nach Neuinstallation Ubuntu 14.04 64 bit (vorher 12.02 32bit)

  • Hallo Gleichgesinnte,


    ich stehe vor einem doch recht eigenartigen Problem.
    Ich habe mir neue Hardware beschafft und dies als Gelegenheit genutzt, endlich mal von 32 auf 64bit zu springen, zumal ich jetzt auch 8GB RAM zur Verfügung habe. Prozessor ist ein i5 Quadcore.
    Die TV-Karte ist dieselbe geblieben, TBS6981.
    Nun zum Problem:
    Ich habe habe die letzten Sourcen aus dem VDR-Git und die der jeweiligen Plugins ausgecheckt und VDR sowie die Driver für die TV-Karte übersetzt und installiert.
    Dann habe ich meine alten Startscripte genommen und nach /etc/init.d/vdr bzw. /var/bin/runvdr kopiert und mit den notwendigen Rechten versehen. Die Konfigurationsdateien liegen, wie vorher, in /etc/vdr.
    Anschließend

    Code
    1. update-rc.d vdr defaults

    gemacht, um den Autostart zu aktvieren.


    Ich nutze VDR ausschließlich "headless" auf dem Server als Aufnahme- und Streamingsklaven ;-)
    Nun verhält es sich so, dass vdr beim Neustart des Servers partout nicht mitstarten will. Ich vermute, es liegt am Initialisieren der TV-Karte, weiß aber nicht, wie ich das
    1. feststellen und
    2. beheben kann.
    Wenn ich mich manuell einlogge, kann ich vdr mit

    Code
    1. /etc/init.d/vdr start


    starten und alles funktioniert, wie ich es mir vorstelle.
    Mit Upstart habe ich noch nichts gemacht. Eventuell kann mir jemand etwas auf die Sprünge helfen.
    Anbei noch die benannten scripte


    /etc/init.d/vdr



    (edit)
    http://pastebin.com/yDYyBBrA


    Die Geschichte

    Code
    1. if [ -d /dev/shm/ram ]; then echo "/dev/shm/ram exists" else mkdir -p /dev/shm/ram chmod -Rf 777 /dev/shm/ram fi


    ist für iStreamdev, sollte hier aber keine Rolle spielen.


    /var/bin/runvdr
    (edit)
    http://pastebin.com/px1BKVJm


    Ja, ich benötige xvdr UND vnsi, um mal gleich der drohenden Frage vorzubeugen.


    Bin für jede Hilfe dankbar. Wie gesagt, mit dem alten OS lief das wunderbar.
    Ich hatte auch sicherheitshalber /etc/default/vdr

    Code
    1. # VDR automatisch beim Start laden# Change to 1 do enable vdr's init-scriptENABLED=1
    2. # VDR ermöglichen den Rechner auszuschalten# Change this to 1 if you want vdr to be able to shutdown the# computerENABLE_SHUTDOWN=1



    angelegt, jedoch mit dem gleichen Ergebnis.


    EDIT: Die Forensoftware bricht die Zeilenenden nicht um :-(
    Also nochmal Pastebin http://pastebin.com/yDYyBBrA und http://pastebin.com/px1BKVJm

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

  • Warum denn herum raten? Einfach ins syslog sehen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • recht er hat


    scheint irgendwie an den devices zu liegen, also tatsächlich am tuner. und nu?

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

  • Würde behaupten das kein Treiber für die Karte da ist und kein Ausgabedevices vorhanden ist.

  • Würde behaupten das kein Treiber für die Karte da ist und kein Ausgabedevices vorhanden ist.


    Aber wieso funktioniert dann ein manueller vdr-start? Oder hab ich da was missverstanden?

    Quote

    Wenn ich mich manuell einlogge, kann ich vdr mit


    /etc/init.d/vdr start


    starten und alles funktioniert, wie ich es mir vorstelle.


    Mich wundert auch

    Quote

    Mit Upstart habe ich noch nichts gemacht.


    Eigentlich setzt doch ubuntu stark auf upstart?
    Ich würde auf ein Timing-Problem tippen: der (automatische) vdr-start findet einfach zu früh statt. Der Ausschnitt aus dem syslog ist leider zu klein, um das untermauern zu können.


    Wer alkoholfreies Bier trinkt, wählt auch kompetenzfreie Politiker [frei nach Volker Pispers]

  • hm...
    Entspricht ja dann tatsächlich meinen Vermutungen.
    Ich muss vermutzlich ein sleep einbauen, um den Start zu verzögern.... An welcher Stelle mach ich das aber nun am elegantesten?

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

  • Ich muss vermutzlich ein sleep einbauen, um den Start zu verzögern.... An welcher Stelle mach ich das aber nun am elegantesten?

    "/etc/default/vdr"


    Code
    1. ...# Sleep for general purposesleep 1s


    Regards
    fnu

    HowTo: APT pinning

  • Bei den Upstart Scripten kann man doch festlegen bei der Init-info was alles benötigt wird um das Programm zu starten.
    Kenn mich leider zu wenig aus. Google mal danach währe sicher eine saubere lösung als irgendwo einen Sleep einzubauen.


    Mfg Thomas

    VDR:
    Hardware: Thermaltake DH102, Zotac ION ITX-F-E, 2Gig Ram, TechnoTrend
    dual DVB-S2 6400, TechnoTrend Connect CT-3650,


    Software: EasyVDR 1.0

  • Er macht's ja anscheinend nicht mit upstart, sondern sysV-init-style init-scripts...
    Das macht's aus meiner Sicht nicht leichter, weil upstart bei ubuntu ja immer mitspielt.
    Unter'm Strich find ich den sleep auch suboptimal.


    Wer alkoholfreies Bier trinkt, wählt auch kompetenzfreie Politiker [frei nach Volker Pispers]

  • Dafür gibt es ja eigentlich das dynamite-Plugin. Ist ja jetzt nicht so, dass es ein neues Thema ist.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • googles & NullP


    Eure Kommentare sind ja super hilfreich, keine Ahnung von Upstart oder sonstige Hilfen, aber sich über die Eleganz eines vmtl. funktionierenden Workaround echauffieren ... :(


    SysV init bis heute eine legitimes und verbreitetes Startsystem, und das seit Jahrzehnten inzwischen, Upstart ist alles andere als eine perfekte Lösung, eher eine Ubuntu Nische die mit Ubuntu LTS 16.04 Geschichte sein wird ...


    Der sleep mag nicht elegant sein, aber nur 5sec Arbeit und das Problem erstmal behebt. Die DVB Module lassen sich nicht direkt mit upstart abfangen, da muß man tiefer in die Trickkiste greifen ...


    gda


    Ja, schon, unterliegt aber selbst Restriktionen


    Regards
    fnu

    HowTo: APT pinning

    The post was edited 3 times, last by Dirk: Forenregeln ().

  • Eure Kommentare sind ja super hilfreich, keine Ahnung von Upstart oder sonstige Hilfen, aber sich über die Eleganz einer vmtl. funktionierenden Workaround echauffieren ... :(


    Der Einzige, der sich hier echauffiert, bist du.
    Niemand hat behauptet, upstart sei die perfekte Lösung aller Probleme. Ebensowenig, dass SysV init etwas Schlechtes sei.
    Ich behauptete lediglich, dass die Vermischung zweier verschiedener Konzepte das Durchschauen des Startvorgangs nicht gerade vereinfacht (wobei das bei Ubuntu 12.04 ja eigentlich "ab Werk" schon so ist). Wenn's ganz dumm läuft, hebelt man mit den "altmodischen" Scripten den nebenläufigen Ablauf von upstart aus; im Extremfall hat man dann einen sequentiellen Ablauf, in dem womöglich der vdr prinzipiell vor den Treibern gestartet wird - da kann man dann sleeps einbauen, bis man schwarz wird. Das ist dann keine Frage von Eleganz mehr.


    Im Übrigen: erlaubt ist, was zum Erfolg führt; wenn's mit sleep zufriedenstellend geht, kann man sich alles Weitere natürlich sparen. (grundlose Beleidigungen übrigens auch)


    Wer alkoholfreies Bier trinkt, wählt auch kompetenzfreie Politiker [frei nach Volker Pispers]

  • (grundlose Beleidigungen übrigens auch)

    Ich sehe keine Beleidigung, wo Du eine sehen möchtest. Ihr beide habt klar zu verstehen gegeben, das Ihr keine Ahnung von upstart habt und dennoch die Nase bzgl. des sleep verzogen.


    Bei Ubuntu ist die Mischung aus Upstart & SysV Init bis heute gang und gebe, upstart betreut sogar die SysV Init Skripte. Wenn Ihr Euch damit befasst hättet, hättet Ihr Eure beide Posts vmtl. so nicht verfasst.


    Regards
    fnu

    HowTo: APT pinning

  • Um die Upstart/SysV-Diskussion mal abzuwürgen, das spielt hier wirklich keine Rolle.


    Die Treiber werden unabhängig vom Init-System vom Kernel geladen. Wie auch immer der vdr gestartet wird, wenn man dynamite nicht benutzen kann/möchte, muss man den Start so lange verzögern, bis die Treiber geladen sind. Das kann man z.B. auch durch blacklisten der Treibermodule und direktes Laden in der runvdr erreichen.


    Oder eben einfach irgendwo ein sleep vor dem vdr-Start. Das ist bloß "wackeliger" als ein deterministischer Ansatz.
    Man könnte auch eine while-Schleife vor dem vdr-Start einfügen, die testen, ob alle zu erwartenden DVB-Devices angelegt wurden. Die muss man dann aber anpassen, wenn man Karten hinzufügt/entfernt.


    Lars.

  • Um die Upstart/SysV-Diskussion mal abzuwürgen,

    Mit Verlaub, was würde Dich berechtigen das zu tun? Jeder kann seine Meinung vertreten und niemand braucht diese zu kontrollieren ...


    Man könnte die DVB Adapter mit udev abfangen, in etwa so:


    Code
    1. #/> cat /etc/udev/rules.d/50-dvbadd.rulesSUBSYSTEM=="dvb", KERNEL=="dvb*", ACTION=="add", RUN+="/sbin/initctl --quiet emit --no-wait dvb-add"


    Achtung ungetestet, aus dem Kopf, gilt für alle DVB Adapter ... aber den emit könnte man nun per upstart abfangen, theoretisch sogar im SysV Init Prozess ...


    Man könnte es weiter einkreisen:


    Code
    1. SUBSYSTEM=="dvb", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="YYYY", KERNEL=="dvb*", ACTION=="add", RUN+="/sbin/initctl --quiet emit --no-wait dvb-add"


    oder


    Code
    1. SUBSYSTEM=="dvb", Kernel=="dvbX.frontendY", ACTION=="add", RUN+="/sbin/initctl --quiet emit --no-wait dvb-add"


    Regards
    fnu

    HowTo: APT pinning

  • Ja, mit so einer udev-Regel und einem Upstart-Signal könnte man es machen, hab's jetzt aber auch nicht getestet.
    Dann muss man eben dort die höchste DVB-Nummer festlegen, die man erwartet.


    Oder eben sowas in der Art:

    Code
    1. # erwartete Anzahl - 1
    2. MAXDVB=1
    3. while [ ! -e /dev/dvb/adapter${MAXDVB}/frontend0 ]; do
    4. sleep 1
    5. done


    Da könnte man dann auch noch einen Zähler einbauen, so dass er nach X Sekunden trotzdem weitermacht. Falls man mal eine Karte ausbaut und vergisst, die Regel anzupassen.
    Ist jetzt aber auch ungetestet.


    Lars.


  • das nenn ich doch mal workaround!!! simple, aber funktioniert! ;-)
    danke!

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP