web-dev-qa-db-fra.com

Le bouton d'alimentation de l'ordinateur portable ne fonctionne pas

J'ai un ordinateur portable (apparemment plutôt exotique) Dell Latitude XT2 exécutant Lubuntu 12.04, fraîchement installé. J'ai essayé de faire fonctionner le bouton d'alimentation comme prévu (ouverture de la boîte de dialogue de déconnexion lubuntu-logout), mais sans succès: le bouton d'alimentation ne fait que mettre hors tension de force en appuyant longuement.

Le bouton d'alimentation lui-même est détecté et fonctionne. Dans xfce4-power-manager-settings, lorsque je règle l'action du bouton d'alimentation de "Demander" (= ouvrir lubuntu-logout) sur "Arrêter", l'ordinateur portable s'éteint avec succès. appuyer sur le bouton d'alimentation est reconnu et traité correctement.

Edit: J'ai enlevé un tas d'informations de la question, car cela ne semble pas être lié au problème.

3
dyp

Il semble s'agir d'un bug conn à Lubuntu. Dans les paramètres de xfce4-power-manager, plusieurs actions doivent être sélectionnées pour le bouton d'alimentation en cours d'utilisation. Lorsque vous sélectionnez "Arrêter", cela fonctionne comme prévu, mais lorsque vous sélectionnez "Demander", rien ne se produit.

Une solution de contournement est dans le commentaire n ° 1 . Ça marche pour moi. Il semble y avoir un problème sous-jacent entre xfce4 et LXDE.

Vous pouvez créer le même comportement avec un démon acpi (supplémentaire), comme Green7. La version dans sa réponse ferme le PC sans dialogue, mais nous avons discuté dans le chat que vous pouvez démarrer lubuntu-logout à partir du script au lieu de simplement éteindre l'ordinateur. Cependant, cela nécessite un peu de travail, car vous devez démarrer l'application de déconnexion en tant qu'utilisateur autorisé à se connecter à X et fournir les variables d'environnement nécessaires (comme $DISPLAY). Comme les variables env semblent varier d’une distribution à l’autre, je pense que vous deviez les rechercher soigneusement pour LXDE.

1
dyp

Installez acpi et acpi-support, si ce n'est déjà fait.

  • Allez à /etc/acpi/events.
  • Il devrait y avoir un fichier nommé powerbtn (sinon, créez-le). Le contenu du fichier dans mon installation est:
 # /etc/acpi/events/powerbtn
# Ceci est appelé lorsque l'utilisateur appuie sur le bouton d'alimentation et appelle 
 # /etc/acpi/powerbtn.sh pour un traitement ultérieur. 
 
 # Vous pouvez éventuellement spécifier l'espace réservé% e. Il transmettra 
 # À l’ensemble du message d’événement du noyau au programme que vous avez spécifié. 
 #. 
 
 # Nous devons réagir au "bouton d’alimentation". * "and" button/power. * "car 
 # de modifications du noyau. 
 
 event = button [/]power
action=/etc/acpi/powerbtn .sh 
  • Vous pouvez associer une action au bouton d'alimentation en modifiant la variable action de ce fichier.
  • Dans mon installation, le contenu de /etc/acpi/powerbtn.sh est le suivant:
 #!/bin/sh 
 # /etc/acpi/powerbtn.sh
# Déclenche un arrêt lorsque le putton de puissance a été appuyé sur 
 #. ____.] 
 [-r/usr/share/acpi-support/power-funcs] &&. /usr/share/acpi-support/power-funcs[.____.HERn.________..## getXuser obtient l'utilisateur X appartenant à l'affichage dans $ displaynum. 
 # Si vous voulez l'utilisateur X au premier plan, utilisez getXconsole! 
 getXuser () {
 user = `pinky -fw | awk '{if ($ 2 == ":' $ displaynum '" || $ (NF) == ":' $ displaynum '") {print $ 1; sortie; }} '`
 if [x" $ user "= x" "]; then 
 startx = `pgrep -n startx` 
 if [x" $ startx "! = x" "]; then 
 user = `ps -o user --no-headers $ startx` 
 fi 
 fi 
 if [x" $ user "! = x" " ]; then 
 userhome = `getent passwd $ user | cut -d: -f6` 
 export XAUTHORITY = $ userhome/.Xauthority 
 sinon 
 export XAUTHORITY = "" 
 f 
 export XUSER = $ user 
} 
 
 # Sauter si nous sommes en train de reprendre. 
 teste -f/var/lock/acpisleep && exit 0 
 
 # Si l'utilisateur actuel de la console X exécute un démon de gestion de l'alimentation qui 
 # Gère les demandes de suspension/reprise, laissez-le gérer la stratégie. Il s'agit en réalité de 
 # Identique à 'acpi Le fichier '/ usr/share/acpi-support/policy-funcs' de -support. 
 
 [-r/usr/share/acpi-support/power-funcs] && getXconsole 
 PMS = "gnome-settings-daemon kpowersave xfce4-power-manager" 
 PMS = "$ PMS guide-power-manager.py dalston-power-applet" 
 
 Si pidof x $ PMS>/dev/null; then 
 exit 
 Test Elif "$ XUSER"! = "" && pidof dcopserver>/dev/null && test -x/usr/bin/dcop &&/usr/bin/dcop --user $ XUSER kded kded chargéModules | grep -q klaptopdaemon; then 
 exit 
 Test Elif "$ XUSER"! = "" && test -x/usr/bin/qdbus; alors 
 kded4pid = $ (pgrep -n -u $ XUSER kded4) 
 si test "$ kded4pid"! = ""; then 
 dbusaddr = $ (su - $ XUSER -c "grep -z DBUS_SESSION_BUS_ADDRESS /proc/$kded4pid/environ")
 if testez" $ dbusaddr "! =" "&& su - $ XUSER -c "exportation $ dbusaddr; qdbus org.kde.kded" | grep -q powerdevil; puis 
 sortie 
 fi 
 fi 
 fi 
 
 # Si tout le reste échouait, il suffisait de déclencher un arrêt complet. .]/sbin/shutdown -h now "Bouton d'alimentation enfoncé" 
1
green