# [RISOLTO] Ibernare il PC al temine delle batterie

## lsegalla

Vorrei mettere in ibernazione il mio notebook quando mi si scaricano le batterie (ovviamente poco prima) perchè qua in ufficio non so mai quando torno quando esco per risolvere il problema. Il sistema mi si è già spento 3-4 volte e ogni volta una palla mortale a verificare i dischi e in un paio di casi ho dovuto smadonnare un po'.

Avete qualche dritta per me?

Al mio collega (al quale ho installato sabayon) l'altro giorno gli si è spento il portatile ma ha fatto una ibernazione; non appena è tornato su gli si è riaperta tutta la sua sessione di lavoro e io ci son rimasto un po' male. 

 :Razz: 

Fra l'altro non sapeva manco cosa fosse quel write to disk...Last edited by lsegalla on Wed Dec 09, 2009 12:44 pm; edited 3 times in total

----------

## Apetrini

Puoi creare una moltitudine di schemi tipo "evento --(scatena)-> azione" usando il tool di kde4: powerdevil. Puoi scegliere le azioni/impostazioni da eseguire/settare in base ad alcuni eventi quali chiusura portatile, batteria a % impostabile, quando viene premuto il pulsante della sospensione etc...

Secondo me fa tutto quello che ti serve e anche di piu....

----------

## wiklex

...e per gnome c'è qualcosa di simile?

----------

## riverdragon

Per gnome basta configurare gnome-power-manager, le opzioni base sono nella finestra delle preferenze, quelle complete le trovi tramite gconf-editor.

----------

## lsegalla

Penso di avere dei problemi con la sospensione e l'ibernazione.

Prima (kde 4.3.1) se cliccavo su IBERNAZIONE non succedeva esattamente niente.

Poi ho installato POWERDEVIL e se non altro il sistema apparentemente tentava di andare in ibernazione quando ho selezionato la voce dal menu principale di kde...  

All'accensione pero' il sistema è partito con controlli delle unità del disco dicendo che non erano state smontate correttamente etc...

Dato quindi che l'ibernazione non funziona (mentre powerdevil sembra di sì come pure l'associazione degli eventi che per me resta comunque da verificare) suppongo di dover sistemare questo? Ma da dove comincio? Cosa posso fare?

----------

## Manwhe

Ciao,

Personalmente uso il kernel con la patch tuxonice , ho seguito la documentazione http://www.gentoo.org/doc/it/power-management-guide.xml

Per il resto penso sia meglio aspettare risposte da persone piu' esperte di me

----------

## lsegalla

Vediamo allora se qualcuno mi sa dare qualche indicazione in piu'....

----------

## lucapost

in alcuni notebook è comodo gestire queste cose con l'acpi e gli eventi legati alla batteria, come ad esempio la carica sotto il 5%

----------

## lsegalla

 *lucapost wrote:*   

> in alcuni notebook è comodo gestire queste cose con l'acpi e gli eventi legati alla batteria, come ad esempio la carica sotto il 5%

 

chiaro, infatti mi era stato suggerito, solo che ho il problema dell'ibernazione che quando capita non mi vengono smontati correttamente i dischi

----------

## lsegalla

Oggi ho fatto dei tentativi seguendo quella guida.

Anche da modalità testo riesco a mandare la macchina in "suspend to disk" col comando hibernate

Pero' alla ripartenza mi dice sempre che i volumi non sono stati smontati correttamente!

Tutto questo usando il TuxOnIce

```
luca@user8-gentoo ~ $ uname -a

Linux user8-gentoo 2.6.30-tuxonice-r6 #0 SMP Tue Dec 1 19:09:14 CET 2009 i686 Intel(R) Pentium(R) Dual CPU T2310 @ 1.46GHz GenuineIntel GNU/Linux

```

----------

## Manwhe

Sembra che non ti parta il resume, hai messo i parametri resume=swap:/dev/(disco swap o file swap) e/o real_resume=swap:/dev/(disco swap o file swap) nel file grub.conf.?

Il mio e' configurato in questo modo

default 0

timeout 30

splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux (2.6.31-tuxonice)

root (hd0,0)

kernel /kernel-genkernel-x86_64-2.6.31-tuxonice root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3 fastboot doscsi console=tty1 splash=silent,theme:gentoo real_resume=swap:/dev/sda2 resume=swap:/dev/sda2

initrd /initramfs-genkernel-x86_64-2.6.31-tuxonice real_resume=swap:/dev/sda2 resume=swap:/dev/sda2

----------

## lsegalla

Mi è capitato un bel disastro, riassumo in breve:

1. mi ero dimenticato la stringa RESUME nella riga dedicata a initramfs di grub.conf

2. ho fatto un riavvio e apparentemente ha funzionato

3. ho riavviato di nuovo e tutto non ha piu' funzionato niente, ho cominciato a leggere a video messaggi d'errore del disco alla velocità della luce (non ho fatto a tempo a leggere nulla), fatto sta che per risolvere la cosa son stato costretto alla fine a un fsck.reiserfs --rebuild-tree e poi comunque al successivo riavvio la mod. grafica non funzionava. Un revdep-rebuild non trovava niente di anomalo e quindi alla fine ho effettuato un ripristino del sistema da una immagine acronis che avevo (per fortuna, anche se non recente)

Rileggendo la guida ho trovato questa frase, quindi penso di averlo fatto io il casino

 *Quote:*   

> Avvertenza: Nessuna periferica hot-plug va cambiata o scambiata in stato di sospensione. Non caricare un'immagine con un kernel differente rispetto a quello con cui la si è creata. Ogni client/server samba o nfs va bloccato prima dell'ibernazione. 

 

Suppongo che durante il riavvio incriminato si è avviato per default un altro kernel (quello che avevo prima). 

Ora quindi rifaro' la prova, ma vi chiedo un consiglio: come posso fare avendo anche un altra partizione con sabayon? (che per carità, non la uso praticamente mai, ma in caso di bisogno puo' capitare, seppur raramente). Devo usare qualche accorgimento? Non ho inoltre ben capito a cosa serve il comando rc-update add hibernate-cleanup boot e se questo puo' essere utile in casi come il mio... (non credo, deve essere tutt'altra cosa)

----------

## Manwhe

dalla guida :

Inoltre, lo script di avvio hibernate-cleanup invaliderà l'immagine di TuxOnIce rovinata durante il processo di boot. 

Codice 7.7: Invalidamento dell'immagine TuxOnIce durante il processo di avvio

# rc-update add hibernate-cleanup boot

Probabilmente non ho ben capito il tuo dubbio.

Mentre per la partizione , dal man di hibernate.conf

Unmount <mount point or device> [...] If you have network shares or external devices that should be unmounted before suspending, list them here.

Mount <mount point or device> [...] If you have network shares or external devices that should be mounted after resuming, list them here.

UnmountFSTypes <filesystem type> [...] Unmounts any filesystems of the given types. This is most useful for network filesystems such as smbfs and nfs. 

penso possano esserti utili

----------

## lsegalla

Il mio dubbio è "a cosa serve quel comando rc-update add hibernate-cleanup boot"?

La guida l'ho letta, so cosa fa rc-update, capisco che un'immagine rovinata potrebbe impedirmi di avviare la macchina probabilmente ma non capisco varie cose (confusione totale):

1. "invaliderà l'immagine di TuxOnIce rovinata durante il processo di boot": significa che si puo' rovinare durante il boot?

2. al boot viene fatto un qualche controllo parziale sull'integrità dell'immagine che si va a ripristinare?

3. se questo script dovrebbe darmi la possibilità all'avvio di invalidare l'immagine, inteso come la possibilità di scegliere se procedere o meno al ripristino dell'immagine.

4. applicando quello script al boot se non posso scegliere mi invaliderebbe tutte le immagini se non fa un controllo

Boh, insomma non riesco a interpretare quella frase della guida, magari fammi un esempio così riesco a focalizzare meglio e a capire come si svolge la cosa...

----------

## Manwhe

Da quello che ho capito,

Serve nel caso in cui l'immagine di restore non e' stata creata correttamente , oppure non e' andato a buon fine il processo di ibernazione.  Non solo ma invalida anche l'attuale immagine dopo il boot , per non presentarla al sucessivo avvio.

1) piu' che rovinarsi durante il boot, penso più durante la fase di ibernazione

2) si viene fatto il controllo di integrità

3) non ne ho la più pallida idea, ho letto anche sul sito http://www.tuxonice.net/ e non ho trovato risposta alla tua domanda

4) lo script serve proprio a preservare lo stato di salute del sistema, invalidano un immagine di ripristino se non e' corretta.

A me e' capitato in origine di aver impostato l'ibernazione al 1% della batteria, risultato non avevo abbastanza autonomia per far concluedere il processo di ibernazione. 

Spero di esserti stato utile, comunque aspetterei risposte da persone più competenti di me  :Smile: 

----------

## lsegalla

Dunque, ho rieseguito un po' di cose dopo il rollback del caso.

Ho provato prima con le sorgenti di gentoo ma non funzionava l'ibernazione (ho provato anche a smontare i dischi passandogli le opzioni del caso, e tutti tranne uno venivano smontati correttamente, pero' alla fine era sempre l'immagine all'avvio che non veniva tirata su).

Riprovato ancora TuxOnIce e l'ibernazione con quello funziona

Ho dovuto comunque disabilitare la compressione e tutti i mount e umount che avevo definito per le prove precedenti (ovviamente).

Ho provato piu' volte, senza cambiare kernel e il tutto funzionerebbe anche bene. Viene ripristinata anche la modalità grafica ma finora ho dovuto lanciare "hibernate" come root a manina dalla tty2 in mod. testo. Poi quando riavvio torno lì e se accedo alla tty7 trovo il mio bel kde come lo avevo lasciato. Anche un "kdesu hibernate" funziona.

Mi manca il powerdevil da reinstallare al momento.

Quindi ora mi servirebbe a sto punto:

1. poter lanciare il comandino hibernate come utente (ho già un'idea, se non ci sono controindicazioni)

2. provare il tutto dall'apposito menu di kde

-- EDIT --

Non ho eseguito nessuno dei due punti precedenti, ho installato solo powerdevil e ora tutto sembra funzionare. Marco come risolto.

----------

## lsegalla

Una cosa vi chiedo pero'... ora che ho attivato la sospensione e l'ibernazione del sistema come faccio quando devo lanciare un aggiornamento del sistema?

Ad esempio stanotte ho lanciato un emerge -uDN world e stamattina era ancora al primo pacchetto (che non era certo openoffice... tanto per dire)

Ho notato anche nel corso della giornata che mentre lui va in sospensione stava compilando qualcosa e quindi... sospende anche la compilazione.

Questo mi dà fastidio chiaramente... avete qualche soluzione per me ?

----------

## Kernel78

non conosco i sistemi di ibernazione quindi non posso escludere che ci sia un modo ufficiale che io non conosco.

Quando io mi trovo ad avere, in una situazione analoga alla tua, due eventi di cui uno automatico (l'ibernazione) e l'altro manuale (la compilazione) e voglio che quello automatico venga rimandato almeno fino al termine di quello manuale imbastisco un layer aggiuntivo con dei file di lock.

Scrivo due script banalissimi, uno per l'evento automatico che al lancio controlla ogni X secondi che non ci sia uno specifico file di lock o se presente aspetti che venga rimosso e poi lanci l'evento stesso. Per l'evento manuale invece lo script fa un touch del file di lock, lancia l'evento e alla fine rimuove il lock.

Spero possa esserti utile

----------

## lsegalla

Si, ho piu' o meno inteso anche se non so costruire ancora uno script di questo tipo.

Detto cio' oggi mi è sembrato di trovare una soluzione, ovvero se entro in un'altra tty (quindi fuori da kde) e lancio da lì il mio aggiornamento nonchè compila dei pacchetti del caso, allora nessuna sospensione e/o ibernazione sembra intervenire.

L'unica scomodità è che avrei bisogno di vedermi tutti i messaggi post-build dei pacchetti dei quali faccio l'emerge, pero' spesso questi son troppi e quindi mi perdo i primi (vedo solo gli ultimi). Sarebbe interessante per me capire dove andarmi a vedere questi messaggi da qualche parte. Mi sembra che nei log di emerge si vedono tutti i check e i make ma non il messaggio finale, a meno che io non guardi i log sbagliati chiaramente.

----------

## lsegalla

Nella fattispecie faccio riferimento ai messaggi finali di emerge (esempio: "Message for package...") oppure le note finali.

Li vedo da qualche parte in qualche log quindi?

-- EDIT --

Aggiungo anche un problemino: a volte quando il sistema va in standby poi non ritorna piu' costringendomi a spegnere la macchina. Quando capita ovviamente perdo dei dati... che posso fare?

-- EDIT --

Niente da fare, lo standby continua a darmi problemi, non so perchè e non so cosa possa essere ma devo comunque sostituirlo con l'ibernazione, mi va comunque bene. Se qualcuno poi ha qualche consiglio per quanto concerne lo standby rimango in attesa speranzoso.

-- EDIT --

 *Quote:*   

> avrei bisogno di vedermi tutti i messaggi post-build dei pacchetti dei quali faccio l'emerge, pero' spesso questi son troppi e quindi mi perdo i primi (vedo solo gli ultimi). Sarebbe interessante per me capire dove andarmi a vedere questi messaggi da qualche parte.

 

Trovato, è il comando eread

----------

## bandreabis

A me il suspend di powerdevil non va.

Ho disinstallato pm-utils perchè a me funziona ok hibernate-ram... solo che non so come dire a Kde4.5.1 di usare hibernate script per fare il proprio lavoro di addormentare il notebook.

EDIT: per il momento ho trovato un workaround per far andare in standby il portatile quando powerdevil (acpid suppondo) vede la batteria criticamente scarica. Basta aggiungere nelle notifiche 

```
sudo /usr/sbin/hibernate
```

come comando da eseguire in tale occasione.

Se voglio di mia sponte mettere in standby il pc mi basta premere il tasto power.

----------

