Old:Debian: software suspend e ibernazione per laptops: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(22 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
== Cos'� Devil's Pie ==
{{Old}}
[http://www.burtonini.com/blog/computers/devilspie Devil's Pie] � un programma che permette di personalizzare il comportamento delle finestre dei programmi.
== Introduzione ==
Ad esempio si pu� scegliere in quale workspace far partire un'applicazione, o impedire che compaia nella taskbar.
Questa guida tratta la configurazione delle modalità di sospensione ed ibernazione del nostro sistema operativo in esecuzione su laptop e notebook di recente generazione.


Ogni volta che viene aperta un'applicazione, e quindi creata la sua finestra, Devil's Pie legge nei files di configurazione l'operazione da eseguire su di essa.
== Prerequisiti ==
I prerequisiti per poter abilitare la sospensione e l'ibernazione del nostro portatile sono semplici:
* i sorgenti di un kernel recente e la capacità compilarlo;
* alcuni programmi utili
* spazio sufficiente su disco.


== Installazione ==
== Software necessario ==
Devil's Pie � presente nell'archivio ufficiale Debian, quindi per installarlo basta usare il gestore di pacchetti preferito (aptitude, synaptic, kpackage...) oppure scrivere semplicemente da shell:
Dobbiamo procurarci alcuni programmi:
* hibernate (il programma a linea di comando che gestisce l'ibernazione)
* suspend2 (una patch per il kernel)
* eventualmente i tool di gestione del risparmio energetico per il nostro Desktop Environment. In questa guida farò riferimento espressamente a Gnome Power Management (GPM), ma presumo il tutto sia facilmente adattabile ad altri programmi.


<pre>
=== Hibernate ===
# apt-get install devilspie
Procediamo con l'installare hibernate. Il tutto si risolve con il classico:
</pre>
<pre># apt-get install hibernate vlock</pre>


== Configurazione ==
=== Suspend2 ===
La versione attuale di Devil's Pie � la 0.17.
==== Scaricare la patch ====
Dalla 0.13 � stato modificato completamente il sistema di configurazione, passando da un file di configurazione xml a un sistema a s-expressions.
Dal sito di [http://www.suspend2.net/ Suspend2], scarichiamo la versione più recente della patch. Al momento di scrivere questa guida il kernel più recente è il 2.6.16.19 e la patch Suspend2 è la 2.2.5.


Questo crea qualche problema perch� le guide che si trovano su internet si riferiscono al vecchio sistema, e l'autore non ha ancora scritto una guida per il sistema nuovo.
Ecco come procedere.
===== Download =====
<pre>koky:~# cd /usr/src/
koky:/usr/src#
koky:/usr/src# wget http://www.suspend2.net/downloads/all/suspend2-2.2.5-for-2.6.16.9.tar.bz2
--12:40:13--  http://www.suspend2.net/downloads/all/suspend2-2.2.5-for-2.6.16.9.tar.bz2
          => `suspend2-2.2.5-for-2.6.16.9.tar.bz2'
Risoluzione di www.suspend2.net in corso... 212.236.250.103
Connessione a www.suspend2.net|212.236.250.103:80... connesso.
HTTP richiesta inviata, aspetto la risposta... 200 OK
Lunghezza: 104,327 (102K) [application/x-bzip2]


Significativo in questo senso il manuale, accessibile con:
100%[====================================>] 104,327      77.44K/s
<pre>
# man devilspie
</pre>
Nella sezione '''Bugs''', leggiamo un incoraggiante:
<pre>This manpage is useless, as it was thrown together on a train.</pre>


Per fortuna ci viene in aiuto il file README, che troviamo nella directory /usr/share/doc/devilspie.
12:40:17 (77.22 KB/s) - "suspend2-2.2.5-for-2.6.16.9.tar.bz2" salvato [104327/104327]


Per ogni finestra su cui vogliamo eseguire un'operazione, creiamo un file nomeprogramma.ds nella directory .devilspie della nostra home, in cui scriviamo il comando con l'operazione da eseguire, formattata come [http://en.wikipedia.org/wiki/S-expression s-expression].
koky:/usr/src#</pre>


In attesa della guida, per sapere i comandi disponibili bisogna spulciare il file src/parser.c nei sorgenti di devil's pie, e fare tante prove :-).
===== Decompressione =====
Per le prove, basta richiamare devilspie da shell seguito dal file di configurazione che si vuole provare, e lanciare l'applicazione su cui deve eseguire l'operazione.
<pre>koky:/usr/src# tar xvjf suspend2-2.2.5-for-2.6.16.9.tar.bz2
suspend2-2.2.5-for-2.6.16.9/
suspend2-2.2.5-for-2.6.16.9/apply
suspend2-2.2.5-for-2.6.16.9/Changelog.txt
suspend2-2.2.5-for-2.6.16.9/unapply
suspend2-2.2.5-for-2.6.16.9/2000-workqueue-freezing.patch
suspend2-2.2.5-for-2.6.16.9/features
suspend2-2.2.5-for-2.6.16.9/2020-kmod-freeze.patch
suspend2-2.2.5-for-2.6.16.9/3030-reboot-handler-hook.patch
suspend2-2.2.5-for-2.6.16.9/3020-cryptoapi-deflate.patch
suspend2-2.2.5-for-2.6.16.9/3050-init-hooks.patch
suspend2-2.2.5-for-2.6.16.9/3060-reset-kswapd-max-order-after-resume.patch
suspend2-2.2.5-for-2.6.16.9/3080-dynamic-pageflags.patch
suspend2-2.2.5-for-2.6.16.9/3070-clear-swapfile-bdev-in-swapoff.patch
suspend2-2.2.5-for-2.6.16.9/3040-proc-acpi-sleep-activate-hook.patch
suspend2-2.2.5-for-2.6.16.9/2010-suspend2-freezer-upgrade.patch
suspend2-2.2.5-for-2.6.16.9/3000-crypto-api-lzf-support.patch
suspend2-2.2.5-for-2.6.16.9/9900-Suspend2.patch
koky:/usr/src#</pre>


'''Aggiornamento:'''
==== Applicare la patch ====
E' disponibile un [http://wiki.foosel.net/linux/devilspie tutorial completo] in lingua inglese.
Ora che abbiamo scaricato e decompresso la patch, dobbiamo applicarla al nostro kernel, quello che intendiamo usare o usiamo quotidianamente.


=== Azioni ===
Presumendo che la versione corrente del kernel sia linkata alla directory <code>'''/usr/src/linux'''</code> procederemo come segue:
<pre>koky:/usr/src# cd linux
koky:/usr/src/linux# ../suspend2-2.2.5-for-2.6.16.9/apply
Applying 2000-workqueue-freezing.patch ...
Applying 2010-suspend2-freezer-upgrade.patch ...
Applying 2020-kmod-freeze.patch ...
Applying 3000-crypto-api-lzf-support.patch ...
Applying 3020-cryptoapi-deflate.patch ...
Applying 3030-reboot-handler-hook.patch ...
Applying 3040-proc-acpi-sleep-activate-hook.patch ...
Applying 3050-init-hooks.patch ...
Applying 3060-reset-kswapd-max-order-after-resume.patch ...
Applying 3070-clear-swapfile-bdev-in-swapoff.patch ...
Applying 3080-dynamic-pageflags.patch ...
Applying 9900-Suspend2.patch ...
All happy!
koky:/usr/src/linux#</pre>
Lo script ci informa di aver applicato correttamente la patch. Ora possiamo passare a compilare il nostro kernel!


Questo � l'elenco delle azioni che possono essere applicate da devilspie all'apertura di una finestra:
==== Configurare il kernel ====
Le schermate che seguono mostrano cosa abilitare all'interno del kernel.


; <tt>(geometry geo)</tt>: Setta la dimensione e il posto in cui verr� visualizzata la finestra.
* Attraverso il menu "Suspend2" possiamo accedere alle varie sezioni utili:
[[image:Menuconfig-01.png]]


; <tt> (fullscreen) </tt>: Visualizza la finestra a pieno schermo.
* La sezione "Image Storage" permette di specificare il writer da utilizzare. Il writer permette di salvare lo stato del sistema all'interno della partizione di scambio (swap) oppure all'interno di un qualsiasi file del file system. La prima opzione è senz'altro più rapida, mentre la seconda è indicata nel caso la partizione di swap sia di dimensioni insufficienti (per la sospensione di un sistema con ambiente grafico direi che il minimo indispensabile è di circa 700/800Mb). All'interno di "Default resume device name" indichiamo la partizione di swap che vogliamo utilizzare.
[[image:Menuconfig-02.png]]


; <tt> (focus) </tt>: Seleziona la finestra.
* Abbiamo bisogno di abilitare la crittografia LZF. Dalla sezione "CryptoAPI" (vedi screenshot)
[[image:Menuconfig-03.png]]


; <tt> (center) </tt>: Posiziona la finestra al centro dello schermo.
* Selezioniamo la libreria '''LZF'''
[[image:Menuconfig-04.png]]


; <tt> (maximize) </tt>: Massimizza la finestra.
Ora possiamo dare il via alla compilazione e attendere fiduciosi. ;-)
==== Test del kernel ====
Installiamo nel solito modo il nuovo kernel e riavviamo la macchina senza ulteriori configurazioni: quel che ci preme ora consiste nel verificare che Suspend2 sia stato correttamente compilato prima di procedere oltre.


; <tt> (maximize_vertically) </tt>: Massimizza la finestra verticalmente.
Riavviamo il sistema: durante l'avvio dovremmo vedere alcuni messaggi riguardanti Suspend2. Possiamo anche utilizzare '''dmesg''' per controllare con più calma.


; <tt> (maximize_horizontally) </tt>: Massimizza la finestra orizzontalmente.
Quello che dovremmo leggere a video grossomodo è:
<pre>koky:~# dmesg |grep Suspend
Suspend2 Core.
Suspend2 Compression Driver loading.
Suspend2 Encryption Driver loading.
Suspend2 Swap Writer loading.
Suspend2 FileWriter loading.
Suspend2 2.2.5: Swapwriter: Signature found.
Suspend2 2.2.5: Resuming enabled.
koky:~#</pre>


; <tt> (minimize) </tt>: Minimizza la finestra.
Se tutto è andato bene possiamo proseguire.


; <tt> (pin) </tt>: Visualizza la finestra iin tutti i workspaces.
== Configurare il sistema ==


; <tt> (unpin) </tt>: Il contrario di pin.
=== Scelta della modalità di sospensione ===
La scelta della modalità di sospensione (swap o file) dipende fondamentalmente dallo spazio che abbiamo a disposizione. Se vogliamo utilizzare la partizione di swap come area di memorizzazione, sarebbe opportuno che questa avesse di circa 1Gb. Suspend2 cerca comunque di liberare quanta più memoria è possibile prima di sospendere il sistema. Nel mio caso specifico, avendo una partizione di swap di circa 300Mb ho scelto forzatamente l'utilizzo di un file di scambio. Ora vedremo entrambe le configurazioni.


; <tt> (set_workspace num) </tt>: Setta il workspace (al posto di num va messo il numero del workspace).
==== Partizione di swap ====
Nel caso in cui abbiamo scelto di usare una partizione di swap, è sufficiente che annotiamo il nome della partizione e proseguiamo oltre.


; <tt> (skip_pager) </tt>: Non fa visualizzare la finestra nel pager.
==== File di swap ====
Se abbiamo optato per utilizzare un file anziché una partizione dobbiamo affrontare qualche passaggio supplementare.  


; <tt> (skip_tasklist) </tt>: Non fa visualizzare la finestra nella tasklist.
===== Creazione del file =====
Per prima cosa creiamo il file in questione:
<pre>koky:~# dd if=/dev/zero of=/usr/local/swap bs=1M count=1000
koky:~# mkswap /usr/local/swap
koky:~# swapon /usr/local/swap</pre>
In questo modo abbiamo creato da zero il file <code>/usr/local/swap</code>, con dimensione di 1Gb, abbiamo creato al suo interno la struttura di swap e l'abbiamo attivato.


; <tt> (above) </tt>: Visualizza la finestra sempre sopra altre.
===== Headers =====
Ora dobbiamo reperire l'indirizzo degli headers che passeremo al kernel in fase di avvio:
<pre>koky:~# cat /proc/suspend2/headerlocations
For swapfile `/usr/local/swap              `, use resume2=swap:/dev/hda3:0x2da2b4@4096</pre>
Ovviamente voi otterrete un valore diverso: annotatelo!


; <tt> (below) </tt>: Visualizza la finestra sempre sotto altre.
=== Problemi con il server X ===
La sospensione del sistema mentre è attiva una sessione del server può causare il blocco del display: al ritorno dalla sospensione lo schermo apparirà nero e dovremo necessariamente riavviare.


; <tt> (undecorate) </tt>: Toglie le decorazioni del window manager.
Per ovviare a questo problema dobbiamo scaricare il programma '''vbetool''' con il comando:
<pre># apt-get install vbetool</pre>
e mettere mano alla nostra configurazione di Xorg e aggiungere alcune direttive:


=== Esempi ===
* all'interno della sezione <code>"Device"</code>, che riguarda la scheda grafica aggiungiamo <pre>        Option          "VBERestore"            "1"</pre>in modo che la sezione sia qualcosa di simile a:<pre><nowiki>Section "Device"
Supponiamo di avere gkrellm su tutti i workspace, ma di non voler vedere la sua miniatura nel pager.
        Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
Creiamo un file gkrellm.ds e scriviamo:
        Driver          "i810"
<pre>
        BusID          "PCI:0:2:0"
(if (is (application_name) "gkrellm") (begin skip_pager (skip_tasklist)))
        Option          "VBERestore"            "1"
</pre>
EndSection</nowiki></pre>
Questo comando fa svolgere due operazioni, l'eliminazione dal pager e dalla taskbar. Per applicare operazioni multiple � stato necessario iniziare l'elenco dei comandi con 'begin'. Da notare anche l'annidamento delle parentesi.
* Alla fine del file <code>xorg.conf</code> creiamo questa nuova sezione:<pre><nowiki>Section "ServerFlags"
        Option          "BlankTime"    "0"
EndSection</nowiki></pre>


Se vogliamo svolgere una sola operazione, ad esempio aprire XMMS nel workspace 2 e nient'altro, basta il solo comando senza 'begin':
Riavviamo la sessione grafica e tutto funzionerà a dovere.


<pre>
=== Configurazione del bootloader ===
(if (is (application_name) "XMMS") (set_workspace 2))
Ora possiamo passare alla configurazione del bootloader, in modo da passare al nostro kernel i parametri corretti per la sospensione.
</pre>
{{Warningbox|Questa procedura è riferita a GRUB e '''non''' a GRUB2}}
La sintassi corretta prevede che alla direttiva <code>'''kernel'''</code> di <code>menu.lst</code>di Grub venga aggiunta una tra le due opzioni seguenti:
* <pre>resume2=swap:/dev/hda4</pre> nel caso di partizione di swap. usate la vostra!
* <pre>resume2=swap:/dev/hda3:0x4478d8</pre> nel caso di file di swap. usate il vostro!


Un altro esempio un po' pi� complesso, se si vuole mostrare la lista contatti di gaim su tutti i workspaces, una grandezza di 340x630 alla posizione (4, 150), il comando � questo:
== Permessi e gruppi ==
<pre>
Affinché la sospensione e l'ibernazione siano utilizzabili dall'utente con cui generalmente accediamo al sistema, e che quindi anche le utility del nostro ambiente desktop possano farlo, è necessario aggiungere l'utente al gruppo '''powerdev'''.
(if
    (and
        (is (application_name) "gaim")
        (is (window_name) "Lista contatti")
    )
    (begin
        (pin)
        (geometry "340x630+4+150")
    )
)
</pre>


=== Determinare il nome della finestra ===
È sufficiente questo comando:
Negli esempi precedenti, le azioni vengono associate a delle applicazioni o a delle finestre attraverso le voci (application_name) o (window_name). Se la personalizzazione si riferisce alla finestra di un programma, solitamente � sufficiente usare (application_name) con il nome del programma, come negli esempi precedenti xmms, gkrellm, gaim ecc...
<pre>koky:~# adduser nome_utente powerdev</pre>


Nel caso si voglia definire un comportamento di un'applicazione di cui non si sicuri del nome, oppure di una finestra specifica di un'applicazione, si possono avere tutte le informazini necessarie avviando devilspie con l'opzione debug:
<pre>$devilspie --debug</pre>
A questo punto, aprendo la finestra desisderata, si legger una cosa del tipo:
<pre>
Window Title: 'XMMS - 48. Alanis Morissette - No pressure over cappucino (4:45)'; Application Name: 'XMMS - 48. Alanis Morissette - No pressure over cappucino (4:45)'; Class: 'xmms'; Geometry: 275x116+0+0
Window Title: 'GDancer'; Application Name: 'Xmms'; Class: 'dancer'; Geometry: 100x173+562+132
Skipping pager
Skipping tasklist
Setting pinned
</pre>
Nell'esempio si vedono le informazioni relative all'applicazione xmms e al suo plugin [http://figz.com/gdancer/ gDancer], e viene anche indicato che sono gi state applicate delle azioni su quest'ultimo: non compare nel pager n nella barra delle applicazioni, e viene visualizzato in tutti i workspaces.
I comandi corrispondenti del file gdancer.ds sono:
<pre>
(if (is (window_class) "dancer")
  (begin
(skip_pager)
(skip_tasklist)
(pin)
  )
)
</pre>


== Automazione ==
Una volta eseguito devilspie, tutte le volte che si apre un programma per cui stata definita un'operazione questa viene eseguita.
Per fare in modo che queste siano sempre eseguite bisogna far partire Devil's Pie automaticamente all'avvio del sistema.


Con gli ambienti desktop che seguono gli standard freedesktop (come xfce), � sufficiente creare un link all'eseguibile di devilspie nella directory Desktop/Autostart della nostra home.
Happy suspending! ;-)
In generale, molto pi� semplicemente, al momento dello spegnimento si pu� salvare la sessione con devilspie avviato, in modo da ritrovarselo a ogni accesso successivo.


 
{{Autori
----
|Autore=[[Utente:Keltik|keltik]] 08:56, 13 Giu 2006 (EDT)
:[[Utente:Gnappa|Gnappa]] 17:21, Dic 8, 2005 (EST)
}}
:[[Utente:ilbeppe|ilbeppe]] 21:05, Mar 31, 2006 (EST)
[[Categoria:Desktop]]

Versione attuale delle 11:33, 29 mag 2016

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

Questa guida tratta la configurazione delle modalità di sospensione ed ibernazione del nostro sistema operativo in esecuzione su laptop e notebook di recente generazione.

Prerequisiti

I prerequisiti per poter abilitare la sospensione e l'ibernazione del nostro portatile sono semplici:

  • i sorgenti di un kernel recente e la capacità compilarlo;
  • alcuni programmi utili
  • spazio sufficiente su disco.

Software necessario

Dobbiamo procurarci alcuni programmi:

  • hibernate (il programma a linea di comando che gestisce l'ibernazione)
  • suspend2 (una patch per il kernel)
  • eventualmente i tool di gestione del risparmio energetico per il nostro Desktop Environment. In questa guida farò riferimento espressamente a Gnome Power Management (GPM), ma presumo il tutto sia facilmente adattabile ad altri programmi.

Hibernate

Procediamo con l'installare hibernate. Il tutto si risolve con il classico:

# apt-get install hibernate vlock

Suspend2

Scaricare la patch

Dal sito di Suspend2, scarichiamo la versione più recente della patch. Al momento di scrivere questa guida il kernel più recente è il 2.6.16.19 e la patch Suspend2 è la 2.2.5.

Ecco come procedere.

Download
koky:~# cd /usr/src/
koky:/usr/src#
koky:/usr/src# wget http://www.suspend2.net/downloads/all/suspend2-2.2.5-for-2.6.16.9.tar.bz2
--12:40:13--  http://www.suspend2.net/downloads/all/suspend2-2.2.5-for-2.6.16.9.tar.bz2
           => `suspend2-2.2.5-for-2.6.16.9.tar.bz2'
Risoluzione di www.suspend2.net in corso... 212.236.250.103
Connessione a www.suspend2.net|212.236.250.103:80... connesso.
HTTP richiesta inviata, aspetto la risposta... 200 OK
Lunghezza: 104,327 (102K) [application/x-bzip2]

100%[====================================>] 104,327       77.44K/s

12:40:17 (77.22 KB/s) - "suspend2-2.2.5-for-2.6.16.9.tar.bz2" salvato [104327/104327]

koky:/usr/src#
Decompressione
koky:/usr/src# tar xvjf suspend2-2.2.5-for-2.6.16.9.tar.bz2
suspend2-2.2.5-for-2.6.16.9/
suspend2-2.2.5-for-2.6.16.9/apply
suspend2-2.2.5-for-2.6.16.9/Changelog.txt
suspend2-2.2.5-for-2.6.16.9/unapply
suspend2-2.2.5-for-2.6.16.9/2000-workqueue-freezing.patch
suspend2-2.2.5-for-2.6.16.9/features
suspend2-2.2.5-for-2.6.16.9/2020-kmod-freeze.patch
suspend2-2.2.5-for-2.6.16.9/3030-reboot-handler-hook.patch
suspend2-2.2.5-for-2.6.16.9/3020-cryptoapi-deflate.patch
suspend2-2.2.5-for-2.6.16.9/3050-init-hooks.patch
suspend2-2.2.5-for-2.6.16.9/3060-reset-kswapd-max-order-after-resume.patch
suspend2-2.2.5-for-2.6.16.9/3080-dynamic-pageflags.patch
suspend2-2.2.5-for-2.6.16.9/3070-clear-swapfile-bdev-in-swapoff.patch
suspend2-2.2.5-for-2.6.16.9/3040-proc-acpi-sleep-activate-hook.patch
suspend2-2.2.5-for-2.6.16.9/2010-suspend2-freezer-upgrade.patch
suspend2-2.2.5-for-2.6.16.9/3000-crypto-api-lzf-support.patch
suspend2-2.2.5-for-2.6.16.9/9900-Suspend2.patch
koky:/usr/src#

Applicare la patch

Ora che abbiamo scaricato e decompresso la patch, dobbiamo applicarla al nostro kernel, quello che intendiamo usare o usiamo quotidianamente.

Presumendo che la versione corrente del kernel sia linkata alla directory /usr/src/linux procederemo come segue:

koky:/usr/src# cd linux
koky:/usr/src/linux# ../suspend2-2.2.5-for-2.6.16.9/apply
Applying 2000-workqueue-freezing.patch ...
Applying 2010-suspend2-freezer-upgrade.patch ...
Applying 2020-kmod-freeze.patch ...
Applying 3000-crypto-api-lzf-support.patch ...
Applying 3020-cryptoapi-deflate.patch ...
Applying 3030-reboot-handler-hook.patch ...
Applying 3040-proc-acpi-sleep-activate-hook.patch ...
Applying 3050-init-hooks.patch ...
Applying 3060-reset-kswapd-max-order-after-resume.patch ...
Applying 3070-clear-swapfile-bdev-in-swapoff.patch ...
Applying 3080-dynamic-pageflags.patch ...
Applying 9900-Suspend2.patch ...
All happy!
koky:/usr/src/linux#

Lo script ci informa di aver applicato correttamente la patch. Ora possiamo passare a compilare il nostro kernel!

Configurare il kernel

Le schermate che seguono mostrano cosa abilitare all'interno del kernel.

  • Attraverso il menu "Suspend2" possiamo accedere alle varie sezioni utili:

Menuconfig-01.png

  • La sezione "Image Storage" permette di specificare il writer da utilizzare. Il writer permette di salvare lo stato del sistema all'interno della partizione di scambio (swap) oppure all'interno di un qualsiasi file del file system. La prima opzione è senz'altro più rapida, mentre la seconda è indicata nel caso la partizione di swap sia di dimensioni insufficienti (per la sospensione di un sistema con ambiente grafico direi che il minimo indispensabile è di circa 700/800Mb). All'interno di "Default resume device name" indichiamo la partizione di swap che vogliamo utilizzare.

Menuconfig-02.png

  • Abbiamo bisogno di abilitare la crittografia LZF. Dalla sezione "CryptoAPI" (vedi screenshot)

Menuconfig-03.png

  • Selezioniamo la libreria LZF

Menuconfig-04.png

Ora possiamo dare il via alla compilazione e attendere fiduciosi. ;-)

Test del kernel

Installiamo nel solito modo il nuovo kernel e riavviamo la macchina senza ulteriori configurazioni: quel che ci preme ora consiste nel verificare che Suspend2 sia stato correttamente compilato prima di procedere oltre.

Riavviamo il sistema: durante l'avvio dovremmo vedere alcuni messaggi riguardanti Suspend2. Possiamo anche utilizzare dmesg per controllare con più calma.

Quello che dovremmo leggere a video grossomodo è:

koky:~# dmesg |grep Suspend
Suspend2 Core.
Suspend2 Compression Driver loading.
Suspend2 Encryption Driver loading.
Suspend2 Swap Writer loading.
Suspend2 FileWriter loading.
Suspend2 2.2.5: Swapwriter: Signature found.
Suspend2 2.2.5: Resuming enabled.
koky:~#

Se tutto è andato bene possiamo proseguire.

Configurare il sistema

Scelta della modalità di sospensione

La scelta della modalità di sospensione (swap o file) dipende fondamentalmente dallo spazio che abbiamo a disposizione. Se vogliamo utilizzare la partizione di swap come area di memorizzazione, sarebbe opportuno che questa avesse di circa 1Gb. Suspend2 cerca comunque di liberare quanta più memoria è possibile prima di sospendere il sistema. Nel mio caso specifico, avendo una partizione di swap di circa 300Mb ho scelto forzatamente l'utilizzo di un file di scambio. Ora vedremo entrambe le configurazioni.

Partizione di swap

Nel caso in cui abbiamo scelto di usare una partizione di swap, è sufficiente che annotiamo il nome della partizione e proseguiamo oltre.

File di swap

Se abbiamo optato per utilizzare un file anziché una partizione dobbiamo affrontare qualche passaggio supplementare.

Creazione del file

Per prima cosa creiamo il file in questione:

koky:~# dd if=/dev/zero of=/usr/local/swap bs=1M count=1000
koky:~# mkswap /usr/local/swap
koky:~# swapon /usr/local/swap

In questo modo abbiamo creato da zero il file /usr/local/swap, con dimensione di 1Gb, abbiamo creato al suo interno la struttura di swap e l'abbiamo attivato.

Headers

Ora dobbiamo reperire l'indirizzo degli headers che passeremo al kernel in fase di avvio:

koky:~# cat /proc/suspend2/headerlocations
For swapfile `/usr/local/swap               `, use resume2=swap:/dev/hda3:0x2da2b4@4096

Ovviamente voi otterrete un valore diverso: annotatelo!

Problemi con il server X

La sospensione del sistema mentre è attiva una sessione del server può causare il blocco del display: al ritorno dalla sospensione lo schermo apparirà nero e dovremo necessariamente riavviare.

Per ovviare a questo problema dobbiamo scaricare il programma vbetool con il comando:

# apt-get install vbetool

e mettere mano alla nostra configurazione di Xorg e aggiungere alcune direttive:

  • all'interno della sezione "Device", che riguarda la scheda grafica aggiungiamo
            Option          "VBERestore"            "1"
    in modo che la sezione sia qualcosa di simile a:
    Section "Device"
       Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
       Driver          "i810"
       BusID           "PCI:0:2:0"
       Option          "VBERestore"            "1"

EndSection

  • Alla fine del file xorg.conf creiamo questa nuova sezione:
    Section "ServerFlags"
       Option          "BlankTime"     "0"

EndSection

Riavviamo la sessione grafica e tutto funzionerà a dovere.

Configurazione del bootloader

Ora possiamo passare alla configurazione del bootloader, in modo da passare al nostro kernel i parametri corretti per la sospensione.

Warning.png ATTENZIONE
Questa procedura è riferita a GRUB e non a GRUB2


La sintassi corretta prevede che alla direttiva kernel di menu.lstdi Grub venga aggiunta una tra le due opzioni seguenti:

  • resume2=swap:/dev/hda4
    nel caso di partizione di swap. usate la vostra!
  • resume2=swap:/dev/hda3:0x4478d8
    nel caso di file di swap. usate il vostro!

Permessi e gruppi

Affinché la sospensione e l'ibernazione siano utilizzabili dall'utente con cui generalmente accediamo al sistema, e che quindi anche le utility del nostro ambiente desktop possano farlo, è necessario aggiungere l'utente al gruppo powerdev.

È sufficiente questo comando:

koky:~# adduser nome_utente powerdev


Happy suspending! ;-)




Guida scritta da: keltik 08:56, 13 Giu 2006 (EDT) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized