[ANNOUNCE] Autostart Plugin 0.9.2

  • Hallo,


    das Autostart-Plugin 0.9.2 ist unter http://www.uli-eckhardt.de/vdr/autostart.de.html bzw http://www.vdr-wiki.de/wiki/index.php/Autostart-plugin verfügbar.


    Änderung zu 0.9.0:

    • Gibt man bei FiterDev das keywort AUTO an, so werden alle Devices, die in der fstab nicht die Option noauto gesetzt haben, automatisch als filterdev eingetragen.
    • Bugfix: UDisk schick nicht immer ein Device-Remove Event und deswegen wurde nicht immer zuverlässig erkannt, ob ein Medium ausgeworfen wurde, was dann beim nächsten Einlegen eines neuen Mediums dazu führte, das kein neuer Scann ausgeführt wurde.

    Bugreports, Wünsche und Anregungen sind immer willkommen.

    VDR 2.6.5 Kodi 18.6-Leia
    Debian GNU/Linux 12, Thermaltake DH102, ASUS PRIME N100I-D, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.3, cecremote 1.5.0, osd2web 0.3.2, softhddevice v2.0.6-GIT97e825d

  • Hi Ulrich,


    Vielen dank für diese Plugin! Das kommt gar gut aus für der VDR meiner Eltern :]
    Leider geht es nicht mit mein 64 system:

    Code
    make[1]: Map '/home/carel/src/vdr/vdr-1.7.20-zelf-gefroebeld-lb-war/PLUGINS/src/autostart-hg/detector' wordt verlaten
    g++ -g -O3 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include       -shared -ldbus-1 -lpthread -lrt   -lcdio_cdda -lcdio -lm   -ldvdread   autostart.o mediadetectorthread.o configmenu.o detector.a  -o libvdr-autostart.so
    /usr/bin/ld: detector.a(dbusdevkit.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
    detector.a: could not read symbols: Bad value
    collect2: ld returned 1 exit status
    make: *** [libvdr-autostart.so] Fout 1


    Wird das schwierig oder sehr schwierig zu lösen? :D


    Carel

  • War nicht schwierig :D


    Im Makefile.inc:

    Code
    -CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
    +CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC


    Und das war es, das spielen fangt an!


    Carel

  • Hi Ulrich


    Jetzt start das plugin mit:

    Code
    Aug 24 12:19:50 woonkamer vdr: [18568] initializing plugin: autostart (0.9.2): Start a plugin automatically
    Aug 24 12:19:50 woonkamer vdr: Can not find key AUTOMOUNT
    Aug 24 12:19:50 woonkamer vdr: UDisks found


    Was ist das für eine Option, AUTOMOUNT?
    Gibt's nicht im README oder Beispiele...


    Txs, Carel

  • Für derjenigen die der VDR nicht unter root laufen lassen:


    Code
    vi /usr/share/polkit-1/actions/org.freedesktop.udisks.policy
    1,$s/no<\/allow/yes\<\/allow/g

    Ich hab mal rücksichtslos alles auf yes eingestellt...


    Cheers C

  • VDR zwischendurch neugestartet? Der User "vdr" muss sich neu einloggen, dass die Berechtigungen wirken.


    Ansonsten würde ich das als Bug einstufen. Am Desktop funktioniert das schließlich auch und da muss auch keiner was irgendwo umbauen.

  • Weils die Distribution schon erledigt hat - evtl muss eine policykit rule angelegt werden wenn sie nicht schon da ist. Oder der vdr muss innerhalb einer policykit session starten - kein Bug.

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Ich glaube das da:
    https://github.com/yavdr/yavdr…ty/50-local.d/10-vdr.conf


    hat funktioniert. Alternativ müsste man das auch mit der Gruppe machen können oder etwas entsprechendes für die Gruppe ist schon vorhanden wie Mreimer vermutet hat.

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Jetzt start das plugin mit:

    Code
    Aug 24 12:19:50 woonkamer vdr: Can not find key AUTOMOUNT


    Was ist das für eine Option, AUTOMOUNT?
    Gibt's nicht im README oder Beispiele...

    Hi,


    die Fehlermeldung kann man ignorieren. Derzeit loggt das Plugin auch, wenn optionale Argumente nicht angegeben sind.


    Ein AUTOMOUNT=no bewirkt, das der File-Tester das Medium nach dem Scannen wieder unmounten würde. Die Option wird aber erst dann wirklich Sinnvoll, wenn ich Untersützung für Skripte einbauen würde.


    Uli

    VDR 2.6.5 Kodi 18.6-Leia
    Debian GNU/Linux 12, Thermaltake DH102, ASUS PRIME N100I-D, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.3, cecremote 1.5.0, osd2web 0.3.2, softhddevice v2.0.6-GIT97e825d

  • org.freedesktop.upower.*;org.freedesktop.consolekit.system.* kann man ja weglassen gegebenfalls (wenn es dann noch geht) - und man könnte sicher noch die einzelnen Optionen seperat erlauben (Einhängen, Aushängen) - sonst dürfte der vdr user wenn er udisk Funktionen benutzt evtl die Platte neu partitionieren - ich sehe da das Risiko eher gering :)


    Wenn du einen besseren Vorschlag hast - Nur zu ! :)

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Mein besserer Vorschlag wäre es, rauszufinden, warum es mit "plugdev" nicht geht.


    Irgendwas machen "KDE und Co", was das Autostart-Plugin nicht macht.


    Leider blicke ich bei all diesem "modernen" Kram eher wenig durch. Mir ist das alles zu kryptisch. Müsste man wohl stundenlang Doku lesen um da durchzusteigen.


    Eventuell bringt es was, wenn man mal eine passende Mailingliste sucht und die Entwickler fragt?

  • KDE&Co starten eine consolekit Session zusammen mit X -
    Mit der Anmeldung wird die ConsoleKit Session gestartet und somit ist alles was in KDE/Gnome passiert auch in dieser Session und der User gilt als active, da:



    ... das sagt, das aktive User das dürfen.


    Niemand startet vdr aus X heraus.


    Ein Blick in mein Desktop Ubuntu, bringt folgendes mit sich:

    Code
    :/var/lib/polkit-1/localauthority# cat 10-vendor.d/com.ubuntu.desktop.pkla 
    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes


    Das heisst auch wenn man nicht im X ist darf der Hauptuser in Ubuntu (der dann standardmässig in der admin Gruppe ist) die Festplatten über udisk ein und aushängen.



    Ob man dort jetzt

    Code
    Identity=unix-user:vdr    oder
    Identity=unix-group:plugdev   oder
    Identity=unix-group:admin


    macht, bleibt doch gehupft wie gesprungen :) - Eigentlich keine ominöse plugdev-Magie die man erfragen muss. :)

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Um das weiter zu spinnen könnte man nun fragen, was genau man tun muss, um die "Session", die der VDR eröffnet hat, via console-kit als "active" zu kennzeichnen.


    AFAIK braucht es für console-kit weder X noch KDE oder Gnome. Es ist nur ein weiteres System, welches über DBUS gesteuert wird.

  • Umgekehrt. ck-launch-session wird verwendet um den Parent-Prozess der Session zu starten.


    Hat mal wer "ck-launch-session /usr/bin/vdr" probiert? Also in der runvdr dieses "ck-launch-session" vor den VDR-Prozess pappen?


    Allerdings stimme ich zu, dass der ganze Aufwand möglicherweise zu weit führt. Alternativ wäre eine *minimalistische* Konfiguration, um dem User "vdr", bzw. einer bestimmten Gruppe, die nötigen Rechte zuzusprechen, natürlich auch eine Lösung. Dann aber bitte so, dass wirklich *nur* das Recht für das Mounten gegeben wird. Der VDR-User muss keine Platten partitionieren können! Eine solche Config-Datei könnte dann z.B. mit den autostart-Plugin (Unterbereich "contrib") ausgeliefert werden. Wer es brauchen kann, kopiert es an die richtige Stelle.

  • Ok noch anders ck-launch-session muss in X gestartet werden damit er die consolekit session mit dem user als active startet - alles schon ausprobiert damals - du müsstest also warten mit dem vdr bis X da ist und vdr mit der ck session als parent prozess starten. Anyway die Diskussion fängt an mich zu nerven - wir sollten uns hier nicht an Begrifflickeiten längshangeln.


    einfacher wäre das mit dem User oder der Gruppe,
    Datei: /var/lib/polkit-1/localauthority/10-vendor.d/com.vdr.autostart.pkla

    Code
    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin
    Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.filesystem-mount-system-internal;org.freedesktop.udisks.filesystem-unmount-others
    ResultActive=yes


    Wenn das alles ist was gebraucht wird -> was zu prüfen wäre - ist jetzt aus dem Kopf mit Hilfe von Google geschrieben.


    EOD

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

Jetzt mitmachen!

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