Sortie de veille impossible

Bonjour.

J’ai configuré la machine de mon amie pour qu’au bout d’un certain temps elle se mette en veille. Lorsque je veux la sortir de la veille elle n’en sort jamais. J’ai un écran tout noir avoir le curseur en haut et c’est tout.

J’ai modifié le fichier /etc/acpi/powerbtn-acpi-support.sh de cette manière.

[code]# cat /etc/acpi/powerbtn-acpi-support.sh
if [ -f /etc/acpi/events/powerbtn -o -f /etc/acpi/events/powerbtn.dpkg-bak ] ; then
logger Acpi-support not handling power button, acpid handler exists at /etc/acpi/events/powerbtn or /etc/acpi/events/powerbtn.dpkg-bak.
exit 0
fi

[ -e /usr/share/acpi-support/policy-funcs ] || exit 0

. /usr/share/acpi-support/policy-funcs

if CheckPolicy; then
exit 0
fi

if [ -x /etc/acpi/powerbtn.sh ] ; then
# Compatibility with old config script from acpid package
/etc/acpi/powerbtn.sh
elif [ -x /etc/acpi/powerbtn.sh.dpkg-bak ] ; then
# Compatibility with old config script from acpid package
# which is still around because it was changed by the admin
/etc/acpi/powerbtn.sh.dpkg-bak
else

# Normal handling.

/sbin/shutdown -h -P now “Power button pressed”

#fi

/usr/sbin/pm-suspend

[/code]

Quand je veux sortir de la veille toujours l’écran noir et le curseur…

Je précise que le portable est sous Debian 7, lightdm, mate.

A+

Les problèmes de veille sont légion sous Linux malheureusement. Savoir le modèle de la machine concernée pourrait nous être utile pour t’aider :stuck_out_tongue:

Ok.

[code]# lshw
debian
description: Ordinateur Bloc-notes
produit: W240HU/W250HUQ (To be filled by O.E.M.)
fabriquant: CLEVO CO.
version: Not Applicable
numéro de série: Not Applicable
bits: 64 bits
fonctionnalités: smbios-2.7 dmi-2.7 vsyscall32
configuration: boot=normal chassis=notebook family=To be filled by O.E.M. sku=To be filled by O.E.M. uuid=0090F5BC-6BF2-0000-0000-000000000000
*-core
description: Carte mère
produit: W240HU/W250HUQ
fabriquant: CLEVO CO.
identifiant matériel: 0
version: D02A
numéro de série: Not Applicable
emplacement: To be filled by O.E.M.
*-firmware
description: BIOS
fabriquant: American Megatrends Inc.
identifiant matériel: 0
version: 4.6.4
date: 05/19/2011
taille: 64KiB
capacité: 4032KiB
fonctionnalités: pci upgrade shadowing cdboot bootselect edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification uefi

*-cpu
description: CPU
produit: Intel® Pentium® CPU B940 @ 2.00GHz
fabriquant: Intel Corp.
identifiant matériel: 31
information bus: cpu@0
version: Intel® Pentium® CPU B940 @ 2.00GHz
emplacement: SOCKET 0
taille: 800MHz
capacité: 800MHz
bits: 64 bits
horloge: 100MHz
fonctionnalités: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dtherm cpufreq
configuration: cores=2 enabledcores=2 threads=2
[/code]

Fais voir aussi les logs

tail /var/log/pm-*.log

#fi

Remarque 0 – Euh :115 N’aurais-tu pas jamais fermé ton if dans ton code à tout hasard …?
Remarque 1 – Si le résultat avant et après bidouille de script est le même, pourquoi ne pas revenir au fichier de configuration par défaut
Remarque 2 – Quel est le soucis avec le comportement de base sans bidouille ? N’est-il pas possible d’utiliser une jolie interface graphique (mate/xscreensaver ou autre) pour paramétrer tout ça avant d’aller modifier des scripts à la bourrin ? Qu’est-ce qui a été testé sur ce plan-là ?
Remarque 3 – Que donne l’usage du TTY en sortie de veille (Ctrl+Alt+F1, pour revenir à la session graphique Ctrl+Alt+F7) ? As-tu accès à un terminal ?

Note : il y a une astuce de porc consistant à killer le gestionnaire le screensaver en TTY pour wapper la saisie de login/mot de passe et éviter de redémarrer, ça marche pour délogguer des utilisateurs de leur machine lorsqu’ils sont en vacances quand on a les droits administrateurs (testé et approuvé :wink: ). En testant la manip, on pourrait savoir si cela vient du screensaver ou d’autre chose.

Salut.

@agentsteel

[code]# tail /var/log/pm-*.log
==> /var/log/pm-powersave.log <==
/usr/lib/pm-utils/power.d/sched-powersave false: success.
Running hook /usr/lib/pm-utils/power.d/usb_bluetooth false:

/usr/lib/pm-utils/power.d/usb_bluetooth false: success.
Running hook /usr/lib/pm-utils/power.d/wireless false:

/usr/lib/pm-utils/power.d/wireless false: success.
Running hook /usr/lib/pm-utils/power.d/xfs_buffer false:

/usr/lib/pm-utils/power.d/xfs_buffer false: not applicable.

==> /var/log/pm-suspend.log <==
Running hook /usr/lib/pm-utils/sleep.d/00powersave resume suspend:

/usr/lib/pm-utils/sleep.d/00powersave resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/00logging resume suspend:

/usr/lib/pm-utils/sleep.d/00logging resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/000kernel-change resume suspend:

/usr/lib/pm-utils/sleep.d/000kernel-change resume suspend: success.
Sun Oct 13 17:31:45 CEST 2013: Finished.
[/code]

@bobo38

[quote=“bobo38”]#fi

Remarque 0 – Euh :115 N’aurais-tu pas jamais fermé ton if dans ton code à tout hasard …?
[/quote]
C’est du code que j’ai recopié que quelqu’un d’autre m’a filé.

Oui, le résultat avant et après est le même. Je ne m’étais pas remis sur le problème récemment c’est pour ça que ça n’a pas été changé.

Sans bidouille ça fait pareil.
Évidemment j’ai essayé la modif en graphique avant d’aller modifier le code.

Non pas d’accès à un tty ni à rien d’autre. Je suis obligé d’utiliser les magic keys pour redémarrer.

A+ et merci de votre attention.

[quote=“bobo38”]#fi

Remarque 0 – Euh :115 N’aurais-tu pas jamais fermé ton if dans ton code à tout hasard …?[/quote]
Quelque chose du genre me paraîtrait plus correct pour le bloc final du dernier if :

[code]else

Normal handling.

#/sbin/shutdown -h -P now “Power button pressed”

Mise en veille

/usr/sbin/pm-suspend

fi[/code]

Je ne sais pas comment réagit la fonction “if” si la boucle n’est pas fermée par un “fi”, mais je serais étonné que ça fonctionne correctement…

Justement ça me paraissait clocher alors j’ai fait la modif et j’ai l’impression que ça fonctionne maintenant.

Je fais encore quelques essais pour voir si je passe en résolu.

A+

Ok, c’était le fi qu’il fallait que je dé-commente.

A+

En regardant le script, il y a 4 raisons pour que la ligne modifiée ne soit jamais éxécutée (hormis la condition non fermée avec un « fi » bien placé.

Ces raisons :
— premier « exit 0 » : dans un if, qui s’active si /etc/acpi/events/powerbtn ou /etc/acpi/events/powerbtn.dpkg-bak sont des fichiers (-f, je ne sais pas ce que signifie -o) => vérifier le contenu de /etc/acpi/events
— deuxième « exit 0 » : une implémentation bizarre vérifiant l’existence /usr/share/acpi-support/policy-funcs
— troisième « exit 0 » : sort du script selon le résultat de la fonction « CheckPolicy », qui se trouve dans /usr/share/acpi-support/policy-funcs
— dans structure conditionnelle non fermée : si /etc/acpi/powerbtn.sh est éxécutable (-x) il est éxécuté et on sort du script en ignorant la ligne pm-suspend (la même chose avec /etc/acpi/powerbtn.sh.dpkg-bak…)

Le style de code de /usr/share/acpi-support/policy-funcs est encore plus ésotérique, en particulier la fonction « CheckPolicy », qui fait référence à plusieurs « gestionnaire d’énergie » (mauvaise traduction de “power manager”). Il est fort probable que CheckPolicy permette au gestionnaire d’énergie d’intercepter l’événement d’appui sur le bouton en ignorant la suite du script : sur mon XFCE si j’appuie sur le bouton ”Power”, j’ai une jolie fenêtre graphique me proposant plusieurs alternatives qui s’affiche (éteindre, veille, hiberner).

Voici plusieurs pistes que je te conseillerais :
— teste le comportement de /usr/sbin/pm-suspend, a-t-elle le comportement attendu ? en particulier la sortie de veille ? (à lancer dans un terminal en root)
— teste mate sur un autre ordinateur (ça peut aider à connaître le comportement de mate par défaut), disposes-tu de mate sur ton propre ordinateur ?
— teste un autre environnement de bureau que mate sur l’ordinateur incriminé (ça peut aider à identifier une incompatibilité matérielle)

NB : dans XFCE, xfce4-power-manager-settings fait bien son taf en proposant un réglage approprié de façon explicite « Mettre la machine en veille si inactive depuis : ». Il est accessible de plusieurs façons, dont le panneau de gestionnaire de paramètres, sous le petit nom français est « Gestionnaire d’Alimentation ». Je suis surpris qu’on ne trouve pas quelque chose de semblable pour mate, et qu’un ordi portable Clevo peine de la sorte (est-ce un modèle 100% compatible Linux ?).