Ubuntu 16.04 non si spegne dopo la sospensione o l'ibernazione


14

In realtà la mia domanda può apparire identica a questa in questo forum (e anche questa altrove ); anzi la domanda è la stessa, ma la sto chiedendo comunque perché posso dare maggiori informazioni e perché ho provato qualche soluzione trovata sul web (forse peggiorando le cose).

Ero in letargo con Ubuntu 15.10 (chiudendo il coperchio). Ora che l'ho aggiornato alla 16.04 (ho pensato che fosse una buona cosa, poiché questa versione è LTS, a differenza della 15.10), non posso più usare l'ibernazione (né la sospensione!): Se provo ad usarla, Ubuntu non lo fa ' Spegnere, solo lo schermo diventa nero, il led di alimentazione è acceso e non posso fare altro che spegnerlo manualmente (pressione prolungata del pulsante di accensione). Quando lo riaccendo, vedo le seguenti righe

inserisci qui la descrizione dell'immagine

quindi Ubuntu si avvia.

Da qui ho provato con

sudo -s
echo shutdown > /sys/power/disk
echo disk > /sys/power/state

e

sudo -s
echo platform > /sys/power/disk
echo disk > /sys/power/state

Solo il primo ha funzionato in parte e solo una volta: intendo in parte che dopo la brutale chiusura la sessione è stata recuperata.

Quindi ho provato a seguire questo suggerimento . Non ho capito i commenti scritti dopo i comandi, quindi ho letteralmente inserito i comandi così come sono (pensando che si sarebbe verificato un errore come "questo comando / cartella" se ci fosse qualcosa da sostituire nei comandi ):

MODIFICARE

cat /proc/meminfo
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8M
sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
sudo -b gedit /etc/fstab
free -m
swapon

mount | grep " / "
sudo blkid -g
sudo blkid
sudo filefrag -v /swapfile | grep "First block:"
sudo filefrag -v /swapfile
echo "resume=UUID=cdXX--X18 resume_offset=66050" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo -b gedit /boot/grub/menu.lst
sudo -b gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... resume=UUID=cdXX--X18 resume_offset=66050"
sudo update-grub -y
sudo update-initramfs -u

Forse questa è stata un'idea terribile, da ora ho capito.

IMG:

Alla fine ho trovato la domanda collegata sopra e sono andato qui , ma non so cosa fare.

EDIT 2 Al momento se entro

...$ sudo swapon -s

Non ottengo assolutamente nulla

...$

Forse è a causa del BIOS. Nel mio BIOS, vado a Risparmio energia e dovrebbe esserci un'opzione su cosa fare in caso di sospensione. Normalmente il mio è S1 ma S3 è la cosa.
dat tutbrus

Stab in the dark qui, ma dovresti esaminare le impostazioni del BIOS e ripassarle. Prendi il tuo manuale e controllalo. Ho avuto innumerevoli problemi in passato che hanno avuto uno switch BIOS come soluzione.
Jonathan,

1
Annulla la pessima idea. Questa è stata una dimostrazione di come far sì che Ubuntu utilizzi lo spazio di scambio per l'ibernazione. Come root con sudo, rimuovi l'ultima riga aggiunta da /etc/initramfs-tools/conf.d/resumee le due sale di ripresa aggiunte da etc/default/grub, esegui le ultime due righe per aggiornare grub e initrd. Elimina / scambia file. Corri sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target. Prova uno di questi obiettivi con sudo systemctl suspend. Che succede?
emk2203,

Alla fine ho deciso di reinstallare Ubuntu 15.10. Ora l'ibernazione funziona di nuovo. Forse installerò 16.04 su un'altra partizione. Quando lo farò, farò riferimento a questa domanda e risposte.
Enrico Maria De Angelis,

Risposte:


6

Forzare l'ibernazione a spegnere la macchina:

Dopo aver cercato a lungo una risposta a questo aspetto che ha effettivamente risolto il problema (non quelli correlati), ho trovato un suggerimento qui che ha fatto il lavoro per me:

Creare un file nella pmdirectory di configurazione:

sudo vim /etc/pm/config.d/hibernate_mode

che imposta la variabile in questo HIBERNATE_MODEmodo:

HIBERNATE_MODE="shutdown"

Dopo aver fatto ciò, l'ibernazione ha spento la macchina al completamento come previsto. Una spiegazione per cosa HIBERNATE_MODEfa l' impostazione è nel manuale di pm-hibernate :

Metodo predefinito per spegnere il sistema durante il letargo. Se non impostato, il sistema utilizzerà il valore predefinito del kernel come valore predefinito. Controllare / sys / power / disk per valori validi. Il valore predefinito sarà racchiuso tra [parentesi quadre].

Il mio valore predefinito in quel file era platform. L'impostazione della variabile sopra per shutdownsovrascriverla e ottiene ciò che vogliamo che accada.

Informazioni correlate e suggerimenti per far funzionare correttamente l'ibernazione:

Per quanto riguarda quei "problemi correlati", sembra che tutti abbiano problemi di debug in letargo:

  1. Controlla che il comando sudo pm-hibernatefaccia effettivamente qualcosa. In caso contrario, nessuno di questi altri suggerimenti farà la differenza. Se non funziona, assicurarsi che 1) la dimensione della partizione di swap sia maggiore di quella della RAM e 2) l'avvio protetto sia disabilitato nel BIOS.

  2. Solo una volta che quel comando funziona, guarda come preferisci integrare l'ibernazione nel tuo sistema. Un paio di quelli comuni:

    • Aggiungi ibernazione al menu Ubuntu: questa sembra essere la risposta migliore per me. La documentazione ufficiale ha anche una versione leggermente diversa.
      Nota: una volta che l'ibernazione viene aggiunta al menu Ubuntu, potrebbe essere necessario correggere la chiamata alternativa a sudo systemctl hibernate. Apparentemente (almeno per Ubuntu 16.04) l'opzione del menu Ubuntu chiama sudo systemctl hibernateinvece di sudo pm-hibernate. systemctl hibernateè stato risolto per me aggiungendo il seguente contenuto al file /etc/systemd/sleep.conf:

      [Sleep]
      HibernateMode = shutdown

      Se il file non esiste ancora, è possibile crearlo. Maggiori informazioni qui .

    • Modifica il comportamento del pulsante di accensione (per impostazione predefinita viene visualizzato nel menu interattivo): per modificarlo in modalità di sospensione o arresto diretto, è necessario modificare la voce gsettings associata . Molte altre risposte passano attraverso la GUI se questo fa galleggiare la tua barca. Per vedere le opzioni disponibili usaregsettings range org.gnome.settings-daemon.plugins.power button-power


2

Vedendo la tua ultima immagine e EDIT 2 , posso capire che Ubuntu non riesce a trovare una partizione di swap sul tuo sistema. Quindi ti suggerisco di creare una partizione di Swap uguale o superiore alle dimensioni della RAM e riprovare eseguendo

sudo pm-hibernate

È possibile creare una partizione di swap utilizzando GParted, eseguirlo per installarlo

sudo apt-get install gparted

2

Ho avuto lo stesso problema dopo l'aggiornamento dal 15.10 al 16.04:

  • Chiudere il coperchio non ha fatto nulla
  • La sospensione manuale con la voce di menu nella barra delle applicazioni ha comportato uno stato di metà sospeso con l'unica via d'uscita per ripristinare il sistema.

Ho risolto questi problemi da

  1. aggiornare il kernel alla 4.4.8 (dopo che questa sospensione dal menu ha funzionato per me)
  2. Aggiungendo la linea HandleLidSwitchDocked=suspenda /etc/systemd/logind.conf (che ha fatto funzionare nuovamente l'interruttore del coperchio).

Penso che entrambi i problemi siano bug che dovrebbero essere corretti ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1574120 ).


Questo ha risolto il problema solo per la sospensione o anche per l'ibernazione?
Enrico Maria De Angelis,

0

L'ibernazione è stata disabilitata per impostazione predefinita.

Prova questo

sudo pm-hibernate

Se il test di ibernazione funziona, è possibile continuare a utilizzare il comando sudo pm-hibernate quando si desidera ibernare.

È inoltre possibile abilitare l'opzione di ibernazione nei menu. Per farlo, usa il tuo editor di testo preferito per creare /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla. Aggiungi quanto segue al file e salva:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

Maggiori informazioni su Ibernazione 16.04 da questo link

Spegnere

sudo shutdown -h now

Ricominciare

sudo shutdown -r now

Come ho scritto, sudo pm-hibernate funzionava molto bene prima di aggiornare il modulo da 15.10 a 16.04LTS. Quindi il problema dovrebbe riguardare la versione 16.04LTS. Inoltre, forse ho fatto qualcosa di molto sbagliato seguendo le istruzioni senza capirle. Potresti aiutarmi a correggere questi problemi?
Enrico Maria De Angelis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.