Avevo installato Fedora 14 su questo HP Compaq 610 e la funzione di sospensione funzionava bene. Ora che ho installato Scientific Linux 6.1 suspend non funziona più. Come posso eseguire il debug / risolvere il problema?
Avevo installato Fedora 14 su questo HP Compaq 610 e la funzione di sospensione funzionava bene. Ora che ho installato Scientific Linux 6.1 suspend non funziona più. Come posso eseguire il debug / risolvere il problema?
Risposte:
Esistono molti modi per gestire le funzionalità di sospensione e ibernazione, molti dei vecchi metodi sono obsoleti. Ciò ha reso difficile la ricerca di soluzioni, in quanto sembra che ogni soluzione sia completamente estranea alla successiva. Detto questo ...
Il metodo attualmente raccomandato, sostenuto da http://pm-utils.freedesktop.org/wiki/ , dovrebbe essere disponibile per le distribuzioni più recenti. Vorrei prima verificare se hai pm-utils
installato e se i comandi inclusi funzionano come previsto.
Visualizza se il pacchetto è installato, inserisci questo comando nel terminale
rpm -qa | grep pm-utils
Questo dovrebbe generare la versione che hai installato. Se non si ottiene l'output previsto, è necessario installare il pacchetto.
sudo yum install pm-utils
Una volta verificato, verifica la tua capacità di sospendere.
sudo pm-suspend
Se non si sospende e non si ottiene alcun output perché, controllare l'output dmesg recente
dmesg | tail -50
Questo dovrebbe aiutarti a iniziare, una volta che hai trovato alcuni indizi è molto più facile andare più avanti lungo il sentiero. Riporta post con commenti sui tuoi risultati, posso farti passare il resto.
dmesg
output ti dirà cosa sta succedendo dietro la scena. Ancora più importante, ciò che in particolare potrebbe non riuscire. O e BTW, non è necessario il pacchetto di sviluppo. Ti servono solo quando compili il codice, quindi sentiti libero di eliminare. Ci sono molte direzioni da seguire da qui, semplicemente non ti mando ad abbaiare sull'albero sbagliato.
pm-suspend
comandi da una shell e non attraverso il menu GNOME? Prova echo -n "mem" >/sys/power/state
come root. Inoltre, se stai usando acpi
, puoi acpi_listen
vedere quali eventi vengono generati, ad esempio alla chiusura del coperchio.
Prova questo come root:
PM_DEBUG=true pm-suspend
Quindi controlla i /var/log/pm-suspend.log
suggerimenti su cosa potrebbe andare storto.
Se puoi sospendere, ma non riprendere, c'è un buon articolo sulla wiki di Ubuntu su come eseguire il debug di questo problema.
Se vuoi ottenere solo quando hai sospeso / ripreso il sistema, puoi provare questo:
cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed";
Feb 7 10:44:23 dmatej-lenovo systemd-sleep[19900]: Suspending system...
Feb 7 10:44:33 dmatej-lenovo systemd-sleep[19900]: System resumed.
Feb 7 10:45:35 dmatej-lenovo systemd-sleep[20707]: Suspending system...
Feb 7 12:58:39 dmatej-lenovo systemd-sleep[20707]: System resumed.
Feb 7 14:42:55 dmatej-lenovo systemd-sleep[24690]: Suspending system...
Feb 7 16:31:57 dmatej-lenovo systemd-sleep[24690]: System resumed.
Come suggerito da Mika, come root:
PM_DEBUG=true pm-suspend
Dettagli all'interno di:
/var/log/pm-suspend.log
In questo caso stai cercando dove
[...] service [servicename] suspend suspend success
finisce, e
[...] service [servicename] suspend resume success
comincia. Da qualche parte nel mezzo potresti trovare delle chiamate che restituiscono errori, a quel punto la sospensione è inibita. In questo caso, è possibile che sia stato sospeso il rollback delle modifiche. Scopri quale chiamata di servizio sta generando l'errore, aprilo in vi e dai un'occhiata.
Ho avuto lo stesso problema in cui dopo l'installazione xboxdrv
su Ubuntu 12.04, una chiamata effettuata in una regola /etc/pm/sleep.d/
stava cercando di interrompere un servizio che non era mai stato avviato o inesistente, in questo caso xboxdrv
,. Si scopre che non potrebbe mai essere avviato in primo luogo, perché non c'era un /lib/modules/uinput.ko
modulo, perché quel modulo è unito nel kernel. In questo modo l'istruzione case ha /etc/pm/sleep.d/xboxdrv
generato un errore quando case corrisponde a "sospendi" alla chiamata service xboxdrv stop
. Preparare la linea con #
ignora la dichiarazione, a spese di dover scollegare e ricollegare il controller in caso di sospensione, quindi riprendere.