View previous topic :: View next topic |
Author |
Message |
musv Advocate
Joined: 01 Dec 2002 Posts: 3337 Location: de
|
Posted: Fri Jan 13, 2012 10:52 am Post subject: Polkit-Regel wie? |
|
|
Hallo,
erstmal muss ich zugeben, dass ich bisher nicht wirklich viel zu diesem Thema gesucht hab. Hatte in letzter Zeit eher weniger Zeit.
Problembeschreibung:
Mein XBMC soll beim Betätigen des Ausschalt-Buttons den Rechner runterfahren.
Internes Kommando:
XBMC gibt dazu eine Routine vor, die über die Fernbedienung angesprochen werden kann: XBMC.ShutDown()
Konfiguration:
XBMC arbeitet als Standalone-Anwendung, d.h. es ist ein X-Server installiert. Consolekit läuft auch, die Sessions kann ich mit ck-list-sessions abfragen. Login-Manager oder Desktop-Environments sind aber nicht installiert. Hab auch kein Frontend a la systemsettings dabei. Gnome- und KDE-Bibliotheken soll der HTPC auch nie zu Gesicht bekommen.
Problem:
Wie muss jetzt die Polkit-Regel aussehen, um dem Nutzer XBMC das Recht zu gewähren, den Rechner runterzufahren? Und wo muss ich die Regel hinpacken? Ich hab das hier gefunden. Allerdings ist ja HAL nun schon seit einiger Zeit obsolet. |
|
Back to top |
|
|
Finswimmer Bodhisattva
Joined: 02 Sep 2004 Posts: 5467 Location: Langen (Hessen), Germany
|
Posted: Fri Jan 13, 2012 10:59 am Post subject: |
|
|
Du meinst den Power-Button am Gehäuse?
Da sollte doch mit acpi standardmäßig schon eingestellt sein:
/etc/acpi/default.sh -->
case "$group" in
button)
case "$action" in
power)
#/sbin/init 0
#/usr/sbin/hibernate-ram
;;
Du musst nur das passende einkommentieren. _________________ Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke |
|
Back to top |
|
|
musv Advocate
Joined: 01 Dec 2002 Posts: 3337 Location: de
|
Posted: Fri Jan 13, 2012 11:05 am Post subject: |
|
|
Nein, ich mein den Ausschalt-Button auf der Fernbedienung.
Über inputlirc gibt die Fernbedienung KEY_POWER als Keycode an XBMC weiter. Und diese Taste belege ich in der /home/xbmc/.xbmc/userdata/keymaps/remote.xml mit XBMC.ShutDown().
Letzteres benötigt aber die Berechtigung, um den Rechner als normaler User runterfahren zu dürfen. Und das sollte mittels Polkit/Consolekit irgendwie möglich sein. |
|
Back to top |
|
|
Randy Andy Veteran
Joined: 19 Jun 2007 Posts: 1148 Location: /dev/koelsch
|
Posted: Sat Jan 14, 2012 7:54 pm Post subject: |
|
|
Hi musv.
Ich kann dir die finale Lösung nicht genau nennen, aber eventuell hilft dir ja diese elog Meldung weiter das entsprechend für deine Erfordernisse umzusetzten.
Das Problem hatte ich so auch schon öfter bei diversen VDR-Installationen, dagegen half dann dieser Tipp gemäß nachfolgendem elog:
Code: |
LOG: postinst
To make shutdown work add this line to /etc/sudoers
vdr ALL=NOPASSWD:/usr/share/vdr/bin/vdrshutdown-really.sh
or execute this command:
emerge --config gentoo-vdr-scripts
nvram wakeup is optional.
To make use of it emerge sys-power/nvram-wakeup.
Plugins which should be used are now set via its
own config-file called /etc/conf.d/vdr.plugins
or enabled via the frontend eselect vdr-plugin.
|
[Edit]
Gerade bin ich noch auf diesen Link gestoßen, der dir bei der Umsetzung weiterhelfen könnte:
http://www.gentoo.org/doc/en/sudo-guide.xml
Andy. _________________ If you want to see a Distro done right, compile it yourself! |
|
Back to top |
|
|
musv Advocate
Joined: 01 Dec 2002 Posts: 3337 Location: de
|
Posted: Sun Jan 22, 2012 10:21 pm Post subject: |
|
|
Nun ja, gegen sudo oder vdrshutdown spricht, dass xbmc den Rechner runterfahren soll. Und das stellt mir halt nur die Fernbedienungsfunktionen zur Verfügung. Im Endeffekt werd ich diese Kommandos kaum auf die Alternativen umbiegen können. |
|
Back to top |
|
|
Vangore612 n00b
Joined: 07 Nov 2012 Posts: 1
|
Posted: Thu Nov 08, 2012 10:44 am Post subject: |
|
|
Hatte das gleiche Problem, hier meine Lösung:
1. http://de.gentoo-wiki.com/wiki/ConsoleKit (Kernel, Start beim Boot (rc-update) und emerge)
2. emerge -av sys-auth/polkit
3. Datei ggf. Verzeichnis erstellen: /etc/polkit-1/localauthority/50-local.d/40-power.pkla
4. vi (ggf. nano wie auch immer) /etc/polkit-1/localauthority/50-local.d/40-power.pkla mit folgendem Inhalt (Benutzer anpassen "unix-user:xbmc")
Code: |
[Local shutdown]
Identity=unix-user:xbmc
Action=org.freedesktop.consolekit.system.*;org.freedesktop.upower.*;org.freedesktop.udisks.*
ResultAny=yes
ResultInactive=no
ResultActive=yes
|
5. Ich habe dann noch meine .xinit angepasst und starte den "WM" nun wie folgt:
Code: |
#!/bin/bash
exec /usr/bin/ck-launch-session /usr/bin/dbus-launch --exit-with-session /usr/bin/xbmc-standalone
|
6. Fertig
Hoffe es hilft. Gruß |
|
Back to top |
|
|
astaecker Guru
Joined: 28 Apr 2003 Posts: 403 Location: Hamburg / Germany
|
Posted: Tue Nov 13, 2012 5:35 pm Post subject: |
|
|
Ich habe mir die "Actions" Datei fürs Herunterfahren & Co angesehen (/usr/share/polkit-1/actions/org.freedesktop.consolekit.policy). Laut der reicht es aus, der aktive Benuter zu sein. Da dies der Nutzer von XBMC wohl immer ist, bedarf es hier also keiner Regelung. Gleiches gilt für udisks (zumindestens für das Mounten und Unmounten von Wechseldatenträgern).
Natürlich muss dafür ConsoleKit richtig funktionieren, weshalb D-Bus und ConsoleKit laufen müssen und für XBMC eine Sitzung registriert werden muss. Der Befehl von Vangore612 ist dafür richtig.
Ich habe das mal kurz angetestet, wäre aber gut, wenn es noch ein XBMC Dauernutzer bestätigen würde.
@Vangore612:
Das .pkla Format wird von der akuell stabilen polkit Version nicht mehr unterstützt. Regel werden nun in .rules Dateien aufgesetzt. |
|
Back to top |
|
|
|