softhddevice mit systemd starten als normaler Nutzer

  • Hallo Leute,


    Ich hab schon seit einiger Zeit mehrere Clients am laufen. Derzeit sind alle meine Clients openSUSE 13.2 64-bit mit VDR 2.2.0 und softhddevice aus dem git. Der VDR wird über systemd als vdr.service gestartet. Default target ist multi-user.target das graphic.target habe ich nur für Installationen. (Bin nicht so geil auf Kommandozeile)


    ABER:
    Ich kann VDR Bild und Ton nur als root starten. Sobald ich --user=client hinzufüge und in der Make.config entsprechend ändere ist Bild und Ton weg. Unter root rennt alles super fein, aber ich will irgendwie das auf dem Client kein root rennt.
    Meine vdr.service und vdr.conf habe ich mir hier aus dem Fourm zusammengestellt.


    Hat es hier jemand geschafft softhddevice über systemd zu starten und dann den Benützer im VDR fallen zu lassen?

    thx & lg painkilla

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Hat es hier jemand geschafft softhddevice über systemd zu starten und dann den Benützer im VDR fallen zu lassen?

    Ich verstehe dein Problem nicht. Das funktioniert bei VDR4Arch schon immer so.
    Ich verstehe auch nicht, wofür du so ein kompliziertes Service-File benötigst.


    https://github.com/VDR4Arch/vd…ob/master/vdr/vdr.service


    KillMode ist Quatsch. Default ist control-group und das ist auch gut so.
    Genauso KillSignal. SIGTERM ist default.
    Restart ist total falsch. Der VDR darf nicht immer neugestartet werden. Nur wenn er Exitcode 1 zurückgibt. Also Killmode=onfailure und zusätzlich für Exitcode 2 noch einen RestartPreventExitcode


    Auf systemd-udev-settle erschließt sich mir auch gerade nicht. Ich will aber nicht ausschließen, dass du da eine Lösung für ein Problem gefunden hast, worauf ich noch nicht gekommen bin.
    Das network.target ist nicht das, was du erwartest. Du suchst das network-online.target


    Der ganze Environment-Kram gehört da sowieso nicht rein und Environment-Files sind sowieso abgrundtief böse.



    Edit: Gerade nachgeschaut: systemd-udev-settle.service bremst den Bootvorgang extrem aus, weil tatsächlich gewartet wird, bis alle Devices initialisiert sind. Dieser Service wird nicht oft benutzt und scheint wohl auch eher ein Hack rückständige Daemons zu sein (Da zähle ich in dem Fall den VDR einfach mal dazu).

  • Ja, nachdem der VDR nur die conf.d Dateien unterstützt, kann man auf die ganzen Optionen im service-File verzichten. Meine Datei sieht ähnlich aus wie Copperheads. Bei mir rennt aber alles unter root. Bei mir zu Hause wüsste ich nicht, warum ich dafür eine extra User brauchen würde.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Danke für die schnelle Antwort,


    Ich habe mich gerade da ein bissl eingelesen.
    d.h. kurz gefasst.
    Ich starte nur /usr/local/bin/vdr über systemd
    vdr ließt automatisch /etc/vdr/conf.d/
    und lässt damit dann auch die Rechte auf den user fallen.


    Ist das aber einfach nicht nur eine andere Art den VDR zu starten? Ich glaube softhddevice braucht root, damit es sich mit dem X-Server verbinden kann oder Ihn starten kann, was ich auch sehe, wenn ich "systemctl status vdr" aufrufe. X ist ein Unterprozess vom vdr.


    zwecks udev-settle habe ich wegen der NFS Verbindung, damit vdr erst startet, wenn nfs eingebunden ist.
    Ich werde aber mal network-online.target probieren.


    Ich habe jetzt deine vdr.service übernommen, und werde das mal so probieren.


    vielen Dank
    painkilla

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Wie startest du denn softhddevice? Gibt ja mehrere Wege. Ein Weg, ist den xserver gleich mitzustarten, ein anderer, softhddevice detached zu startet und nach dem start des xservers zu attachen. Zugriff erlangt man dann mit "xhost +" irgendwas, da musst du mal googeln.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Ich starte derzeit softhddevice so:

    Quote

    -P 'softhddevice -a hw:1,3 -p hw:1,3 -g 1920x1080+0+0 -v vdpau -xx'

    und anders bekomm ich es nicht hin. :wand

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Ich verwende hier auch OpenSuse und es funktioniert.


    Versuch mal einen displaymanager zu starten.
    Ich hab dazu in der etc/sysyconfig/displaymanager den displaymanager auf kdm gesetzt und xfce4 installiert.
    Dann habe ich den vdr user über yast als autologon eingestellt.


    Meine vdr.service sieht so aus:


    Wichtig ist dabei das after display-manager.service.


    softhddevice wird über die runvdr.conf so gestartet
    AddPlugin softhddevice -d:0 -f


    Wenn das noch nicht reicht musst du dir mal magic cookies für X anschauen.

  • Guten Morgen,


    Also ich hab jetzt mal alle Plugins in /etc/vdr/conf.d/ geschrieben
    Dann die vdr.service von Copperhead genommen und mal so abgeändert, dass das bestehende funktioniert.
    Also vdr lässt sich starten und bedienen.


    ABER:

    Code
    vdr.service - Video Disk Recorder
       Loaded: loaded (/etc/systemd/system/vdr.service; enabled)
       Active: active (running) since Mi 2015-03-18 10:59:28 CET; 33s ago
     Main PID: 1192 (vdr)
       Status: "Ready"
       CGroup: /system.slice/vdr.service
               ├─1192 /usr/local/bin/vdr
               └─1198 /usr/bin/X


    Wie gewohnt starte ich X mit.


    Wie geht das mit xlogin und detached?
    Mein Default target ist multi-user und ich will auch weiterhin die Möglichkeit behalten die graphische zu starten indem ich das default target ändere.


    lg Painkilla

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • X-Server starten mit softhddevice hat noch nie richtig funktioniert


    weil der Detached Modus sowieso Unsinn ist.


    Aha. Dann mach doch mal konkrete Vorschläge für den Threasstarter, anstatt ständig zu meckern.


    Ich finde den Detached Modus nicht Unsinn, denn ich benutze ihn.


    Ich starte den VDR und das Plugin detached über systemd (mit -D und ohne -x in den Plugin-Optionen von softhddevice).


    Desweiteren habe ich fluxbox und nodm bei mir laufen.


    In ~/.fluxbox/startup (Autostart) attache ich dann softhddvice mit svdrpsend plug softhddevice atta. Ggfs. musst Du vorher noch ein xhost + ausführen. Funktioniert ohne Probleme. Möglichkeiten gibts viele.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • @ Copperhead


    Wie wird softhddevice unter Archlinux mit systemd gestartet?



    TheChief
    also softhddevice mit -D ohne -xx starten
    und dann im home Verzeichnis unter ./fluxbox/startup ein shell script mit svdrpsend plug softhddevie atta
    Was für einen Displaymanager verwendest du da. In welchem target ist der. bzw muss ich das target ändern? Mein default Target ist nämlich multi-user. Kann ich auch KDM verwenden? Wenn ich neue Software installiere oder etwas ändere starte ich immer die graphische indem ich das default.target ändere.


    vielen Dank für eure hilfe


    lg Painkilla

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Der Displaymanager ist nodm bei mir. Mit systemd hab ich da nichts gemacht, lief so unter Debian. Kdm sollte sicher auch gehen. Probiers doch aus, starte kdm, öffne ein Terminal und attache softhddevice.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Ich starte hier ein nacktes X



    und den vdr



    vdr läuft dann problemlos als user vdr

    Code
    vdr ~ # cat /etc/vdr/conf.d/vdr.conf
    [vdr]
    ...
    -u vdr
    ...


    Code
    vdr ~ # cat /etc/vdr/conf.d/20-softhddevice.conf
    [softhddevice]
    -f
    -v vdpau
    -a both
    -w alsa-driver-broken
  • Früher musste man bei openSuse auf vt7 starten, keine Ahnung, ob das immer noch so ist.
    Jedenfalls starte ich mit

    Code
    ExecStart=/usr/bin/X :0 vt7


    Frage zum Environment, wenn das so "böse" ist, wie übergibt man dem VDR korrekterweise seine Sprache?

  • Zumindest das Character Encoding inzwischen per Parameter: --chartab=ISO-8859-9 Die Sprache stellt man ja im Setup ein.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • hopsi: Dein x11.service kann nicht zuverlässig funktionieren. Der X-Server hat eine etwas eigenwillige Art zu sagen, dass er bereit ist. Deswegen nehme ich ja xlogin, weil das dort implementiert ist
    https://github.com/joukewittev…ogin/blob/master/x-daemon


    Frage zum Environment, wenn das so "böse" ist, wie übergibt man dem VDR korrekterweise seine Sprache?


    /etc/locale.conf

  • hopsi: Dein x11.service kann nicht zuverlässig funktionieren. Der X-Server hat eine etwas eigenwillige Art zu sagen, dass er bereit ist. Deswegen nehme ich ja xlogin, weil das dort implementiert ist
    Frage zum Environment, wenn das so "böse" ist, wie übergibt man dem VDR korrekterweise seine Sprache?


    /etc/locale.conf
    oder Gentoo: /etc/env.d/02locale


    Den x-daemon probiere ich gerne mal aus.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!