Quand HAL pose problèmes

Lorsqu'on utilise un ordinateur portable, la gestion de l'énergie est une préoccupation importante.
Alors quand on peut mettre l'ordinateur en veille prolongée (Suspend to RAM) rien qu'en refermant l'écran pourquoi s'en priver ? Et bien parce que les gestionnaires d'énergie sont capricieux en dehors de leur environnement de bureaux.

Xfce4-power-manager, n'a que trés peu de dépendances et offre des fonctions similaires à gnome-power-manager. Il faut juste penser à modifier les autorisations de HAL (modification qui marche aussi avec gnome-power-manager).
Prêt ? Alors c'est partit !

Pour modifier les autorisations on édite le fichier /etc/PolicyKit/PolicyKit.conf. Les autorisations sont définies dans la partie config sous cette forme : <match action="org.freedesktop.hal.storage.mount-removable">
    <match user="root">
        <return result="yes">
        </return>
    </match>
    <match user="maiden">
        <return result="yes">
        </return>
    </match>
</match>
On peut y voir le type d'action à autoriser action="org.freedesktop.hal.storage.mount-removable", le ou les utilisateurs user="maiden" et le résultat de l'autorisation result="yes".

Les actions de HAL sont listées ici.
Bon, c'est chouette, mais c'est un peu long de lire tout ça, et comme je suis gentil voici quelques actions utiles à autoriser :

<match action="org.freedesktop.hal.power-management.suspend">... </match>
<match action="org.freedesktop.hal.power-management.hibernate"> ...
<match action="org.freedesktop.hal.power-management.shutdown"> ...
<match action="org.freedesktop.hal.power-management.reboot"> ...
<match action="org.freedesktop.hal.power-management.lcd-panel"> ...
<match action="org.freedesktop.hal.power-management.cpufreq"> ...
<match action="org.freedesktop.hal.storage.mount-removable"> ...
<match action="org.freedesktop.hal.storage.mount-fixed"> ...

Ce qui en pratique donne : <match action="org.freedesktop.hal.power-management.hibernate">
    <match user="root">
        <return result="yes">
        </return>
    </match>
    <match user="maiden">
        <return result="yes">
        </return>
    </match>
</match>
<match action="org.freedesktop.hal.power-management.suspend">
    <match user="root">
        <return result="yes">
        </return>
    </match>
    <match user="maiden">
        <return result="yes">
        </return>
    </match>
</match>
Sans oublier de relancer HAL : # /etc/init.d/hal restart Tadam !

Publié le 18/05/2009
Ce billet est classé dans la catégorie : GNU-Linux

"Allo ? Allo !? Bon ben c'était pour dire" :


rsuinux le 2009-08-04 à 16:08:01

Très bien vos explication, d'autant que hal et policykit fond pas mal de misère je trouve.
Mais vous devriez indiquer dans votre billet, qu'il vaut mieux faire
# /etc/init.d/dbus restart
je me suis apperçu que c'était plus efficace pour prendre en compte toutes les modifications.

merci pour les indication sur le fichier
/etc/PolicyKit/PolicyKit.conf

Rémi.

Rydgel le 2009-10-19 à 16:10:44

Sympa ce blog ;)
Hop dans mon reader.

"MAIDEN n'est pas là pour le moment, mais vous pouvez laisser un message" :