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

Vai alla navigazione Vai alla ricerca
m
Riga 1: Riga 1:
Questa guida tratta la configurazione delle modalit� di sospensione ed ibernazione del nostro sistema operativo in esecuzione su laptop e notebook di recente generazione.
[[immagine:Hp-compaq-nx6110.jpg|frame|right|HP Compaq nx6110]]
Il portatile HP Compaq NX 6110 viene certificato da HP come compatibile al 100% con GNU/Linux. HP distribuisce opzionalmente (almeno ufficialmente, io non ne ho trovati disponibili) questi portatili senza alcun sistema operativo ed ha lavorato con Ubuntu per utilizzare hardware pienamente funzionante anche con GNU/Linux.  


=Prerequisiti=
''Guida segnalata su [http://tuxmobil.org/hp_compaq.html TuxMobil] e [http://www.linux-on-laptops.com/hp.html Linux On Laptops]''
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=
=Hardware=
Dobbiamo procurarci alcuni programmi:
* Processore: Intel(R) Pentium(R) M processor 1.50GHz
* hibernate (il programma a linea di comando che gestisce l' ibernazione)
* Memoria RAM: 512Mb
* suspend2 (una patch per il kernel)
* Scheda Video: Intel 915GM
* eventualmente i tools di gestione del risparmio energetico per il nostro Desktop Environment. In questa guida far� riverimento espressamente a Gnome Power Management (GPM), ma presumo il tutto sia facilmente adattabile ad altri programmi.
* Scheda Audio: Intel AC'97 (modem)
* Scheda Ethernet: Broadcom BCM 4401 100 Base TX
* Scheda Wireless: Intel PRO/Wireless LAN 2200 BG mini PCI


==Hibernate==
=Output di lspci=
Procediamo con l' installare hibernate. Il tutto si risolve con il classico:
<pre>Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor
<pre># apt-get install hibernate vlock</pre>
to DRAM Controller (rev 03)


==Suspend2==
VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express
===Scaricare la patch===
Graphics Controller (rev 03)
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.


Ecco come procedere.
Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics
====Download====
Controller (rev 03)
<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]


100%[====================================>] 104,327      77.44K/s
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI
#1 (rev 03)


12:40:17 (77.22 KB/s) - "suspend2-2.2.5-for-2.6.16.9.tar.bz2" salvato [104327/104327]
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI
#2 (rev 03)


koky:/usr/src#</pre>
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI
#3 (rev 03)


====Decompressione====
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI
<pre>koky:/usr/src# tar xvjf suspend2-2.2.5-for-2.6.16.9.tar.bz2
#4 (rev 03)
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>


===Applicare la patch===
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI
Ora che abbiamo scaricato e decompresso la patch, dobbiamo applicarla al nostro kernel, quello che intendiamo usare o usiamo quotidianamente.
Controller (rev 03)


Presumendo che la versione corrente del kernel sia linkata alla directory '''/usr/src/linux''' procederemo come segue:
PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
<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!


===Configurare il kernel===
Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
Le schermate che seguono mostrano cosa abilitare all' interno del kernel.
AC'97 Audio Controller (rev 03)


* Attraverso il menu "Suspend2" possiamo accedere alle varie sezioni utili:
Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem
[[image:Menuconfig-01.png]]
Controller (rev 03)


* 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.
ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
[[image:Menuconfig-02.png]]


* Abbiamo bisogno di abilitare la crittografia LZF. Dalla sezione "CryptoAPI" (vedi screenshot)
IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE
[[image:Menuconfig-03.png]]
Controller (rev 03)


* Selezioniamo la libreria '''LZF'''
Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)
[[image:Menuconfig-04.png]]


Ora possiamo dare il via alla compilazione e attendere fiduciosi ;-)
CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
===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.
FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller


Quello che dovremmo leggere a video grossomodo �:
Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)</pre>
<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>


Se tutto � andato bene possiamo proseguire.
=Configurazione=


=Configurare il sistema=
==Il Kernel==


==Scelta della modalit� di sospensione==
===Kernel 2.6.12 e 2.6.13===
La scelta della modalit� di sospensione (swap o file) dipende fondamentalmente dallo spazio che abbiamo a disposizione. Se vogliamo utlizzare 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.
Metto a disposizione degli interessati il file di configurazione per i kernel [[Kernel config per HP Compaq NX 6110| 2.6.12 e 2.6.13]] (dovrebbe funzionare anche con altre versioni comunque). Andate al link, copiate il testo e incollatelo in un file sul vostro PC e quindi spostatelo nella directory dove risiedono i sorgenti del kernel che volete compilare (normalmente /usr/src/linux/) rinominandolo in ''.config''.
{{Warningbox|Il kernel � configurato per fornire supporto ai filesystems ext2 e reiserFS (oltre a VFAT, NTFSrw e NCPFS). Se la vostra installazione prevede l' uso di altri filesystems, '''necessario''' abilitarli prima di ricompilare il kernel. Altra peculiarit&agrave; da notare &egrave; la mancanza dei moduli per il PPP anche questi da abilitare se necessari.}}


===Partizione di swap===
===Kernel 2.6.16 (aggiornamento)===
Nel caso in cui abbiamo scelto di usare una partizione di swap, sufficiente che annotiamo il nome della partizione e proseguiamo oltre.
&Egrave; disponibile il file di configurazione per kernel della serie [[Kernel config per HP Compaq NX 6110 2.6.16|2.6.16]] testato con successo sia con sorgenti del tree ufficiale ''vanilla'' che ''debian''. A differenza del file di configurazione precedente, i moduli per il supporto ACPI a batteria, ventole di raffreddamento, ecc... sono compilati come modulo, ma dovrebbero essere caricati automaticamente durante l' avvio del sistema.
In questo file di configurazione ho compilato staticamente il supporto grafico VESA, in questo modo &egrave; possibile abilitare risoluzioni superiori a quella standard gi&agrave; durante l' avvio del kernel. Per fare questo &egrave; sufficiente aggiungere il parametro "vga=771" (o altro) a quelli di avvio del nostro kernel.


===File di swap===
==Processore, frequency scaling e ACPI==
Se abbiamo optato per utilizzare un file anzich� una partizione dobbiamo affrontare qualche passaggio supplementare.  
=== Frequency Scaling===
Il kernel cos� configurato supporta le tecnologie di scaling per la frequenza della CPU. Dato che il supporto � compilato come modulo, � necessario che esso venga caricato prima di poter essere disponibile (modulo '''speedstep-centrino'''). Offre inoltre il supporto per il demone [[Cpufreqd:_Cpuscaling_per_Intel_Pentium_M|cpufreqd]]. Per installare questo demone � sufficiente:
<pre># apt-get install cpufreqd</pre>
===Supporto ACPI===
E' abilitato anche il supporto (modulare) per l' ACPI (battery, button, fan, thermal zone).
===Software Suspend===
E' possibile abilitare la sospensione del sistema tramite Software Suspend, e cio&egrave; salvando lo stato del sistema nella partizione di swap oppure in un file.
Per prima cosa assicuriamoci di avere i sorgenti del kernel ed un kernel funzionante (v
edi sopra). A questo punto provvediamo a scaricare [http://www.suspend2.net/ Suspend2] che consiste in una patch da applicare al nostro kernel. Usando un kernel vanilla 2.6.x &egrave; sufficiente scaricare la versione stabile pi� aggiornata. &Egrave; importante che, se intendiamo utilizzare la partizione di swap per l' ibernazione, questa sia opportunamente dimensionata: 500Mb sono il minimo, 1Gb &egrave; senz'altro sufficiente.


====Creazione del file====
A questo riguardo ho scritto una guida dedicata, dal titolo [[Debian: software suspend e ibernazione per laptops]]
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 /usr/local/swap, con dimensione di 1Gb, abbiamo creato al suo interno la struttura di swap e l' abbiamo attivato.


====Headers====
==Server grafico (Xfree86 e Xorg) e accelerazione 3D==
Ora dobbiamo reperire l' indirizzo degli headers che passeremo al kernel in fase di avvio:
Il supporto alla scheda grafica ed all' accelerazione 3D sono compilati nel kernel di cui sopra.
<pre>koky:~# cat /proc/suspend2/headerlocations
Il file [[Configurazione di Xorg per HP Compaq NX 6110 | xorg.conf]] rappresenta la configurazione per Xorg e prevede l' abilitazione per il DRI (accelerazione 3D) e l' uso simultaneo del touchpad e del mouse.
For swapfile `/usr/local/swap              `, use resume2=swap:/dev/hda3:0x2da2b4@4096</pre>
Il file di configurazione � perfettamente funzionante anche per Xfree86 (� sufficiente rinominarlo)
Ovviamente voi otterrete un valore diverso: annotatelo!


==Configurazione del bootloader==
==Scheda Audio e ALSA==
Ora possiamo passare alla configurazione del bootloader, in modo da passare al nostro kernel i parametri corretti per la sospensione.
La scheda audio funziona perfettamente con ALSA.
Tutto quello che dobbiamo fare consiste in:
<pre># apt-get install alsa-base alsa-utils
# alsaconf</pre>
Scegliamo la nostra scheda da quelle disponibili ed il gioco � fatto.


La sintassi corretta prevede che alla direttiva '''kernel''' di menu.lst di Grub venga aggiunta una tra le due opzioni seguenti:
==Modem==
* <pre>resume2=swap:/dev/hda4</pre> nel caso di partizione di swap. usate la vostra!
Il modem � uno SmartLink, supportato da GNU/Linux senza eccessivi patemi. Assicuriamoci che il modulo '''snd_intel8x0m''' venga caricato dal kernel e procediamo a scaricare il software necessario.
* <pre>resume2=swap:/dev/hda3:0x4478d8</pre> nel caso di file di swap. usate il vostro!


=Permessi e gruppi=
Debian mette a disposizione il pacchetto ''slmodem'', che fornisce le utilities e il demone necessari al controllo del modem. Installiamolo con il comando:
Affinch� la sospensione e l' ibernazione siano utilizzabili dall' utente con cui generalmente accediamo al sistema, e che quindi anche le utilities del nostro ambiente desktop possano parlo, � necessario aggiungere l' utente al gruppo '''powerdev'''.
<pre># apt-get install sl-modem-daemon</pre>


E' sufficiente questo comando:
==Scheda Ethernet Broadcom BCM 4401==
<pre>koky:~# adduser nome_utente powerdev</pre>
Il supporto alla scheda ethernet � fornito nel kernel. Funziona anche con le immagini del kernel 2.6.8 installate da Debian per default.
==Scheda wireless Intel PRO/Wireless LAN 2200 BG mini PCI==
Per la configurazione di questa scheda, vi rimando alla guida [[Intel_PRO/Wireless_2200BG| Intel PRO Wireless 2200BG]].


Per abilitare la bella luce blu che segnala il link wireless dobbiamo impostare il parametro "led" per il modulo ipw2200.


Operiamo come segue:
<pre># touch /etc/modprobe.d/ipw2200
# echo "options ipw2200 led=1" > /etc/modprobe.d/ipw2200</pre>


Happy suspending! ;-)
=Abilitare il reboot=
La configurazione standard di Grub, non permette al sistema di riavviarsi. &Egrave; quindi necessario aggiungere il paramentro ''reboot=b'' alla direttiva ''kernel'' nel nostro file menu.lst.


----
----
Autore :[[Utente:Keltik|keltik]] 08:56, 13 Giu 2006 (EDT)
Autore: [[Utente:Keltik|keltik]] 07:47, Set 17, 2005 (EDT)<br />
Aggiornato: [[Utente:Keltik|keltik]] 09:19, 28 Mag 2006 (EDT)
[[Categoria:Laptop]]
806

contributi

Menu di navigazione