<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">

<article lang="it">
<artheader>
	<title>Battery Powered Linux Mini-HOWTO</title>
	<author>
		<firstname>David</firstname>
		<surname>Lechnyr</surname>
		<affiliation>
			<address><email>david@lechnyr.com</email></address>
		</affiliation>
	</author>

	<revhistory>
		<revision>
			<revnumber>2.31</revnumber>
			<date>30 luglio 2003</date>
			<authorinitials>drl</authorinitials>
			<revremark>Aggiornamenti minori</revremark>
		</revision>
		<revision>
			<revnumber>2.0</revnumber>
			<date>08 ottobre 2002</date>
			<authorinitials>drl</authorinitials>
			<revremark>Aggiornamenti maggiori e conversione al SGML</revremark>
		</revision>
		<revision>
			<revnumber>1.0</revnumber>
			<date>21 dicembre 1997</date>
			<authorinitials>hm</authorinitials>
			<revremark>Stesura iniziale di Hanno Mueller</revremark>
		</revision>
	</revhistory>

<abstract>
<para>Questo documento spiega come ottimizzare e configurare la gestione dell'energia 
su un sistema Linux preconfigurato per l'uso su laptop alimentati a batteria, il che sarà 
utile a chiunque usi Linux su un computer portatile. 
Saranno discussi i metodi di gestione dell'energia APM/ACPI insieme a 
suggerimenti e tecniche di risparmio energetico. Si accennerà anche 
ai differenti tipi di batterie disponibili.</para>
<para>Traduzione a cura di Massimo Soricetti &lt;maxsoricetti@geocities.com>,
aggiornamento a cura di Tito Rizzo &lt;tito.rizzo@tiscali.it> e revisione a
cura di Sandro Cardelli &lt;sacarde@tiscali.it>.</para>

</abstract>

</artheader>

<sect1 id="powermgm">
<title>Gestione dell'energia</title>
<para>Se possedete un laptop x86 relativamente recente, è probabile che supporti sia 
l'Advanced Power Management (APM) che l'Advanced Configuration and Power Interface
(ACPI). ACPI è la più recente tra le due tecnologie e affida la gestione 
dell'energia al sistema operativo, permettendo una gestione più intelligente 
rispetto a APM, che è controllato dal BIOS, il che è molto utile per 
i laptop alimentati a batteria. 
Il controllo dell'energia della macchina 
può essere affidato a una sola interfaccia alla volta, per cui è 
importante stabilire quale metodo si adatta meglio alla singola situazione.</para>

<sect2 id="apm">
<title>Advanced Power Management (APM)</title>
<para><emphasis>L'Advanced Power Management (APM)</emphasis>
permette al BIOS del computer di controllare la gestione dell'energia 
del sistema, senza il coinvolgimento del sistema operativo.
Sotto Linux, APM ha il vantaggio di essere stabile, ben 
supportato dai venditori Linux e di avere una solida storia alle spalle. 
Tuttavia, negli ultimi anni non gli è stato dedicato molto 
sviluppo.</para>

<para>Per usarlo, bisogna abilitare l'APM nel kernel:</para>

<screen>
      [*] Power Management support
      &lt;*&gt;   Advanced Power Management BIOS support
      [ ]     Ignore USER SUSPEND (NEW)
      [ ]     Enable PM at boot time (NEW)
      [ ]     Make CPU Idle calls when idle (NEW)
      [ ]     Enable console blanking using APM (NEW)
      [ ]     RTC stores time in GMT (NEW)
      [ ]     Allow interrupts during APM BIOS calls (NEW)
      [ ]     Use real mode APM BIOS call to power off (NEW)
</screen>



<para>
La maggior parte delle opzioni per APM
dovrebbero rimediare a problemi noti con dispositivi hardware specifici, 
per cui è probabile che si voglia abilitare solo la prima (CONFIG_APM).</para>

<itemizedlist>
	<listitem><para>Advanced Power Management BIOS support (CONFIG_APM):
			È necessario abilitarla se si vuole combinare 
qualcosa di utile 
			con APM.  Ai programmi in spazio utente  
saranno notificati 
			gli eventi APM (per es., cambiamento dello stato della batteria) e un  
dispositivo 
			/proc/apm informerà sullo stato della 
batteria.</para></listitem>
	<listitem><para>Ignore USER SUSPEND (CONFIG_APM_IGNORE_USER_SUSPEND):
			Si tratta di un aggiustamento per i notebook 
NEC Versa M.</para></listitem>
	<listitem><para>Enable PM at boot time (CONFIG_APM_DO_ENABLE):
			Per quanto suoni bene, la maggior parte delle macchine 
			non hanno bisogno di questa caratteristica, che in effetti 
può bloccare 
			alcuni sistemi in fase di avvio.</para></listitem>
	<listitem><para>Make CPU Idle calls when idle (CONFIG_APM_CPU_IDLE): 
Su alcune macchine, 
			questa opzione incrementa il risparmio di energia; mentre 
su altre, provocherà 
			il blocco del sistema all'avvio. Da usare 
con cautela.</para></listitem>
	<listitem><para>Enable console blanking using APM 
(CONFIG_APM_DISPLAY_BLANK):
			Anziché oscurare la console virtuale, in realtà  
spegne lo 
			schermo. Non funziona con X-Windows e in effetti 
può causare più 
			problemi di quanti non ne risolva.</para></listitem>
	<listitem><para>RTC stores time in GMT (CONFIG_APM_RTC_IS_GMT): Se si 
vuole 
			memorizzare il GMT (Greenwich Mean Time) nel proprio RTC (Real Time 
Clock),
			si scelga sì.</para></listitem>
	<listitem><para>Allow interrupts during APM BIOS calls 
(CONFIG_APM_ALLOW_INTS):
			Si tratta di un aggiustamento per alcuni Thinkpad IBM che si bloccano 
anziché 
			sospendere il sistema.</para></listitem>
	<listitem><para>Use real mode APM BIOS call to power off 
(CONFIG_APM_REAL_MODE_POWER_OFF):
			È un aggiustamento per un certo numero di BIOS guaste. 
Se il vostro computer 
			va in crash anziché spegnersi correttamente, abilitate 
questa funzione.</para></listitem></itemizedlist>

<para>Per attivare APM in fase di avvio, lo si dovrà prelevare da 
<ulink url="http://www.worldvisions.ca/~apenwarr/apmd/">http://www.worldvisions.ca/~apenwarr/apmd/</ulink> 
e configurare gli script di avvio del sistema:</para>

<screen>
# Avvia il demone APM se esiste e se APM è abilitato nel kernel 
if [ -x /usr/sbin/apmd -a -d /proc/apm ]; then
	if cat /proc/apm 1> /dev/null 2> /dev/null ; then
		echo "Starting APM daemon:  /usr/sbin/apmd"
		/usr/sbin/apmd
	fi
fi
</screen>

<para>Il demone APM è composto in effetti di tre programmi:</para

<itemizedlist>
	<listitem><para><command>apmd</command> - si occupa dei compiti di gestione 
dell'energia</para></listitem>
	<listitem><para><command>apm</command> - uno strumento a linea di comando per verificare 
lo stato corrente della batteria o sospendere il computer</para></listitem>
	<listitem><para><command>xapm</command> - un semplice contatore della batteria per 
X</para></listitem>
</itemizedlist>

<para>Se state cercando un approccio semplice, "chiavi in mano", per la gestione 
dell'energia del vostro Laptop, APM è indubbiamente quello che fà per voi.</para>

<para>Un semplice script che vi avverta dell'autonomia rimanente della batteria, può 
essere aggiunto al vostro file <filename>~/.profile</filename> :</para>

<screen>
if [ -f /proc/apm ]; then
        DUMMY=`cat /proc/apm | cut -d" " -f 7`
        # Don't display when fully charged
        if [ "$DUMMY" != "99%" ]; then
                LEVEL=`cat /proc/apm | sed -e "s/^.*% //"`
                echo "Battery at $DUMMY ($LEVEL)"
        fi
fi
</screen>

</sect2>

<sect2 id="acpi">
<title>Advanced Configuration and Power Interface (ACPI)</title>
<para><emphasis>Advanced Configuration and Power Interface (ACPI)</emphasis>
è il successore di APM; sottrae la responsabilità della gestione dell'energia 
al BIOS per affidarla al sistema operativo. 
L'ACPI di Linux è più recente dell'APM di Linux, nonché più flessibile nella reazione 
di fronte a eventi legati alla gestione dell'energia; ha visto 
un più intenso sviluppo ultimamente, e come conseguenza soggiace di tanto in tanto  
alla sua giusta porzione di 
bachi.</para>

<para>Se, in quanto sviluppatori, vivete sul filo del rasoio e non vi spaventa 
compilare 
il kernel e applicare patch al codice sorgente, ACPI merita la 
vostra considerazione.</para>

<para>Sotto Linux ACPI è composto di due parti: Il driver ACPI compilato nel 
kernel, e il demone ACPI (ACPID). Nella sua incarnazione corrente, ACPID  
è
piuttosto semplice: controlla /proc/acpi/event e agisce di conseguenza. Anche se 
il demone non viene attivato, ci si può comunque giovare delle caratteristiche di ACPI 
incluse nel kernel, come il supporto termico del processore.</para>

<para>È possibile conoscere quale versione 
del driver ACPI sia in uso, insieme agli stati di sospensione supportati,  
lanciando:</para>

<screen>
bash $ cat /proc/acpi/info
version: 20030619
states:  S0 S1 S3 S4 S4 S5
</screen>

<para>Lo sviluppo di ACPI procede a ritmo costante, per cui si potrebbe prendere 
in considerazione l'applicazione di 
<ulink url="http://sourceforge.net/project/showfiles.php?group_id=36832">patch</ulink> 
degli aggiornamenti più recenti del codice ACPI kernel-level al proprio kernel. Una volta 
scaricata la patch specifica 
per il proprio kernel, la si può applicare in questo modo:</para>

<screen>
bash$ gunzip acpi-[version-kernel].diff.gz
bash# cd /usr/src/linux-[version]
bash# patch -Np1 -i ../acpi-[version-kernel].diff
</screen>

<para>Dopo di ciò, si dovrà ovviamente ricompilare il kernel:</para>

<screen>
      [*] ACPI Support
      [ ] CPU Enumeration Only
      &lt;*&gt;   AC Adapter
      &lt;*&gt;   Battery
      &lt;*&gt;   Button
      &lt;*&gt;   Fan
      &lt;*&gt;   Processor
      &lt;*&gt;   Thermal Zone
      &lt; &gt;   ASUS Laptop Extras
      &lt; &gt;   Toshiba Laptop Extras
      [*]   Debug Statements
</screen>

<para>Si potrà anche installare il demone ACPID da 
<ulink url="http://sourceforge.net/project/showfiles.php?group_id=33140">http://sourceforge.net/project/showfiles.php?group_id=33140</ulink>
e configurare gli script di avvio del sistema, per attivarlo all'avvio:</para>

<screen>
if [ -x /usr/sbin/acpid -a -d /proc/acpi ]; then
	echo "Starting ACPID Daemon:  /usr/sbin/acpid"
	/usr/sbin/acpid
fi
</screen>

<para>Un po' di storia... Il primo venditore a implementare ACPI fu Micrososft, il che comporta 
aspetti posistivi e altri 
negativi. Positivi perché, quando si compra un sistema, ci si può avvalere della garanzia 
cha abbia passato i test Microsoft di compatibilità hardware, incluso il test 
della sua implementazione di ACPI. Tuttavia, tali test risultano inadeguati in quanto 
non indicano tanto aderenza alle specifiche ACPI, ma piuttosto alla particolare 
implementazione di ACPI di Microsoft. Quando questa stessa macchina è usata con 
Linux, possono saltare fuori alcune classi di errori, che non si manifestavano 
sotto Windows. Per proteggere da tali problemi, il driver ACPI di Linux 
conserva una lista nera di "BIOS guaste", cioè notoriamente non aderenti alle specifiche 
ACPI, e come conseguenza si rifiuterà di abilitare ACPI se il vostro sistema è compreso 
nella lista.</para>

<para>Molti costruttori certificano la compatibilità dei loro sistemi con Linux. 
Tuttavia, essi usano le distribuzioni Linux più importanti, con il loro kernel predefinito. Questo  
significa che è piuttosto difficile far sì che gli OEM garantiscano che i loro sistemi 
funzionino con Linux preparato per l'ACPI, finché le distribuzioni maggiori distribuiranno dei kernel 
già con ACPI. Questo costituisce un piccolo dilemma, in quanto le distribuzioni Linux vogliono 
distribuire kernel che funzionino su quanti più sistemi possibile. Ultimamente, si sono comunque 
visti cambiamenti positivi, in questo settore.</para>

<para>Per risparmiare energia mantenendosi comunque rapidamente utilizzabili, i PC 
compatibili con ACPI possono entrare in vari stati di riposo. Le specifiche ACPI definiscono 
cinque di tali stati, noti come stati "S". A differenza degli stati di riposo del processore, durante
gli stati "S" il sistema non compie alcun lavoro. Ogni stato introduce un sempre maggiore risparmio 
di energia ma richiede proporzionalmente più tempo per riprendere l'attività. 
Essi si ispirano agli stati di sistema dello standard APM, predecessore di 
ACPI.</para>

<para>Dettagli completi sugli stati ACPI si trovano presso 
<ulink url="http://acpi.sourceforge.net/documentation/sleep.html">http://acpi.sourceforge.net/documentation/sleep.html</ulink>.
Gli stati del processore sono descritti su 
<ulink url="http://acpi.sourceforge.net/documentation/processor.html">http://acpi.sourceforge.net/documentation/processor.html</ulink>.
</para>

<para>Per informazioni più specifiche sui retroscena dello stesso ACPI, si può visitare 
il sito web di ACPI a 
<ulink url="http://www.acpi.info">http://www.acpi.info</ulink>
</para>
</sect2>

<sect2 id="whichone">
<title>APM vs. ACPI: Quale tra i due?</title>
<para>Correntemente, sono due gli standard che competono nella gestione 
dell'energia: APM e ACPI. Non si possono usare contemporaneamente; qual'è dunque il 
migliore per la propria situazione? Se avete un kernel relativamente recente (>2.4.20) 
e non vi spaventa doverlo ricompilare o applicare patch al codice sorgente, troverete 
molti vantaggi nella flessibilità di ACPI. Se volete semplicemente una 
gestione generica dell'energia, o state usando una macchina più vecchia, scegliete APM. 
Nessuno dei due metodi spegne i dischi rigidi inattivi; per questo scopo si usi invece hdparm.
In ambo i casi, il BIOS del vostro sistema dovrà supportare correttamente lo schema di gestione dell'energia  
che vorrete usare; se il vostro sistema non supporta pienamente né l'uno né l'altro, 	
alcune delle opzioni di gestione dell'energia potrebbero causare il crash del sistema e/o 
provocare perdite di dati. Siete stati avvertiti!</para>

<para>Anche se non abilitate la gestione dell'energia sul vostro laptop x86, Linux  
invierà comunque l'istruzione HLT al vostro processore 
ogni volta che non ci sarà niente da fare  

<footnote><para>source/arch/i386/kernel/process.c</para></footnote>.  

Svariati programmi Microsoft Windows per il raffreddamento della CPU usano questa tecnica. Questo porta   
a abbassare il consumo di energia della vostra CPU. Si noti che il sistema 
non si spegne quando riceve l'istruzione HLT: semplicemente smette di eseguire 
le istruzioni finché non si verifica un interrupt.</para>

<para>Non c'è generalmente alcun vantaggio   
nell'abilitare uno o l'altro tipo di gestione dell'energia su server o workstation che non  
ricadono dentro 
queste categorie.</para>

</sect2>

<sect2 id="hyperthread">
<title>SMP, Hyper-Threading, IA64 &amp; NUMA</title>

<para>Alcuni costruttori di sistemi SMP possono avere omesso le tavole pre-ACPI usate per 
le configurazioni SMP. In tal caso, ACPI è necessario.</para>

<para>Se avete un sistema più recente che supporti l' 
<ulink url="http://www.intel.com/technology/hyperthread/">Hyper-Threading</ulink>, 
dovrete abilitare ACPI (e, ovviamente, SMP). Senza di esso, il vostro sistema Linux 
potrebbe non essere in grado di individuare e inizializzare tutti i processori virtuali.</para>

<para>Anche le macchine IA64 richiedono ACPI. In aggiunta, i server NUMA 
cominciano a richiederlo per una corretta inizializzazione.</para>
</sect2>

</sect1>

<sect1 id="displaytypes">
<title>DPMS</title>

<para>Il <command>DPMS</command> (Display Power Management Signaling) è uno standard per   
ridurre il consumo di energia nei monitor. Tipicamente, sia il monitor che la scheda video 
devono supportare lo standard DPMS per trarne beneficio. Il DPMS specifica  
quattro modalità operative (al fine di incrementare il risparmio di energia): "Normal", "Standby", 
"Suspend" e "Off".  Due linee di segnalazione, "Horizontal Sync" e "Vertical Sync" forniscono  
un metodo per segnalare questi quattro differenti stati a un monitor DPMS.</para>  

<para>Una valida risorsa tecnica sul DPMS è disponibile presso   
<ulink url="http://webpages.charter.net/dperr/dpms.htm">http://webpages.charter.net/dperr/dpms.htm</ulink>.
</para>

<sect2 id="normal">
<title>Normal</title>
<para><command>Normal</command> significa semplicemente che -- il monitor è a piena potenza e attivo. 
I pannelli LCD dei laptop e gli schermi piatti LCD consumano considerevolmente meno energia rispetto ai tradizionali 
monitor CRT.</para>
</sect2>

<sect2 id="standby">
<title>Standby</title>
<para><command>Standby</command> è usato per descrivere un livello di risparmio 
sostanzialmente limitato. Questa impostazione comprende 
l'oscuramento dello schermo tramite lo spegnimento del cannone elettronico (RGB).  Tuttavia, la fornitura di 
energia prosegue, alimentando i filamenti del tubo. 
Non appena si renderà necessario utilizzarlo di nuovo, il monitor risponderà molto 
rapidamente.
Questa opzione richiede il supporto DPMS da parte del monitor e della scheda video, insieme all'abilitazione 
di DPMS in XFree86.
Ci si riferisce talvolta a Standby come <emphasis>hsync suspend mode</emphasis> 
dal momento che il segnale di risoluzione orizzontale è 
disattivato per segnalare questo stato di gestione dell'energia al monitor DPMS.</para>
</sect2>

<sect2 id="suspend">
<title>Suspend</title>
<para><command>Suspend</command> serve a descrivere uno stato di drastica riduzione 
di energia. Questa impostazione solitamente coinvolge la stessa limitazione 
di energia di <command>Standby</command>, con in più l'interruzione  
dell'alimentazione al monitor.
Questa opzione richiede il supporto DPMS da parte del monitor e della scheda video, insieme all'abilitazione 
di DPMS in XFree86.
Ci si riferisce talvolta a Suspend come <emphasis>vsync suspend mode</emphasis> 
dal momento che il segnale di risoluzione verticale  
è disattivato per segnalare questo stato di gestione dell'energia al monitor.</para>
</sect2>

<sect2 id="off">
<title>Off</title>
<para><command>Off</command> normalmente indica che -- il monitor del computer 
è spento. Normalmente, un piccolo circuito 
ausiliario mantiene sul monitor i segnali necessari al computer per riaccendere 
il monitor, quando si rende di nuovo necessario visualizzare dei dati sullo schermo. 
Ovviamente, questo mantiene il consumo di energia al minimo indispensabile (se non a zero).
Mentre il risparmio di energia è concreto, la riattivazione del monitor 
può richiedere svariati secondi.  
Questa opzione richiede il supporto DPMS da parte del monitor e della scheda video, insieme all'abilitazione 
di DPMS in XFree86.
Entrambi i segnali di risoluzione orizzontale e di risoluzione verticale sono disattivati per 
segnalare questo stato di gestione dell'energia a un monitor DPMS.</para>
</sect2>
</sect1>

<sect1 id="methods">
<title>Metodi di gestione dell'energia</title>
<para>Lo scopo principale di ogni tecnica di gestione dell'energia è quello di limitare 
l'usura dell'oggetto. Nel caso della gestione dell'energia dei laptop, i nostri sforzi sono rivolti 
a ridurre lo sfruttamento della CPU e del disco rigido. Semplificando un po', tutto ciò 
viene suddiviso in tecniche <emphasis>ovvie, semi ovvie,</emphasis> e 
<emphasis>non ovvie</emphasis>, dando per scontato che le vostre previsioni di utilizzo   
possano essere differenti.</para>

<sect2 id="swsusp">
<title>swsusp(8)</title>
<para>Suspend to Disk (S2D) rimane un compito elusivo, sotto Linux. Il progetto 
principale, al momento, è swsup, disponibile presso 
<ulink url="http://sourceforge.net/projects/swsusp">http://sourceforge.net/projects/swsusp</ulink>.
È ancora piuttosto recente e richiede che si intervenga sulla configurazione per abilitarlo.</para>

</sect2>

<sect2 id="hdparm">
<title>hdparm(8)</title>
<para><command>hdparm</command> è un'utilità della shell di Linux che può essere usata per 
"addormentare" e migliorare le prestazioni 
di vari dispositivi ATA/IDE. Se non è incluso nel vostro sistema, è possibile 
prelevare i sorgenti da 
<ulink url="http://freshmeat.net/redir/hdparm/4062/url_homepage/hardware">http://freshmeat.net/redir/hdparm/4062/url_homepage/hardware</ulink>.
Per esempio, quanto segue fornisce supporto IO a 32 bit con sync (-c3), supporto  
DMA (-d1), Advanced Power Management (-B128), scrittura su cache 
(-W1), spegnimento del disco dopo cinque minuti (-S60). Mi permette fantastiche 
prestazioni con l'aggiunta del risparmio di energia. Tenete presente che le vostre esigenze di utilizzo potrebbero differire, quindi 
vorrete forse adattare tale configurazione al vostro specifico sistema per prevenire perdite di dati  
(specialmente le opzioni -B e -m!).</para>

<para>Nell'esempio che segue, lanciamo un'analisi delle prestazioni di lettura/scrittura del nostro disco  
rigido prima e dopo l'uso di <command>hdparm</command>. 
Si noti che, mentre le nostre scritture su cache rimangono più o meno le stesse, le nostre effettive letture fisiche 
dal disco ottengono un incredibile incremento! 
Se vi piace vivere sul filo del rasoio, potete destreggiarvi tra le opzioni -m, -c, -B, e -u 
con cautela (si veda la pagina man).</para>

<screen>
bash# hdparm -tT /dev/hda
Timing buffer-cache reads:   588 MB in  2.01 seconds = 292.15 MB/sec
Timing buffered disk reads:   14 MB in  3.46 seconds =   4.05 MB/sec

bash# hdparm -k1 -K1 -c3 -d1 -W1 /dev/hda
bash# hdparm -tT /dev/hda
Timing buffer-cache reads:   596 MB in  2.01 seconds = 297.01 MB/sec
Timing buffered disk reads:   72 MB in  3.05 seconds =  23.58 MB/sec
</screen>
</sect2>


<sect2 id="sysklogd">
<title>sysklogd(8)</title>
<para>Esaminate il vostro file <command>/etc/syslog.conf</command> per individuare attività di log
non necessarie 
e per ottimizzarne le prestazioni.  
Se non vi interessa effettuare il log delle attività di sistema, potreste decidere di disabilitare  
interamente syslogd e klogd o, 
per lo meno, minimizzare la quantità dei log eseguiti dal sistema. 
È anche possibile far precedere ogni voce dal segno meno (-) per evitare il syncing del 
file dopo ogni immissione di log

<footnote><para>syslogd.c</para></footnote>.  

Per esempio, quanto segue effettuerà il log di tutto ciò con priorità di  
<emphasis>info</emphasis> o più alta, ma inferiore a  
<emphasis>warning</emphasis>, su <command>/var/log/messages</command> o 
<command>/var/log/mail</command>
senza la necessità del sync del disco dopo ogni scrittura. Dal momento che vogliamo conservare tutti i  
messaggi con priorità di  
<emphasis>warning</emphasis>, questi verranno registrati su un file differente senza  
disabilitare  
il sync del disco (per evitare perdite di dati nell'eventualità di un crash del sistema).</para>

<screen>
*.warning			/var/log/syslog
*.info;*.!warning;mail.none	-/var/log/messages
mail.info;mail.!warning		-/var/log/mail
</screen>

<para>Un altro punto da considerare sono i messaggi <command>-- MARK --</command> 
che <command>syslogd(8)</command> scrive,
il che avrà effetto sulle impostazioni di inattività del vostro disco rigido. Si possono disabilitare semplicemente 
lanciando <command>syslogd(8)</command> con:</para>

<para>
<screen>
if [ -x /usr/sbin/syslogd -a -x /usr/sbin/klogd ]; then
	# '-m 0' disabled 'MARK' messages
	/usr/sbin/syslogd -m 0
	sleep 1
	# '-c 3' displays errors on console
	# '-x' turns off broken EIP translation
	/usr/sbin/klogd -c 3 -x
fi
</screen>
</para>
</sect2>

<sect2 id="xf86">
<title>XFree86</title>
<para>Ci sono essenzialmente due tipi di oscuramento dello schermo, che possono essere  
eseguiti sotto XFree86:  BlankTime e DPMS.
Il primo è essenzialmente un debole effetto di "oscuramento" che in realtà non comporta alcun risparmio di 
energia. L'altro è riservato ai  
monitor aderenti allo standard DPMS, e deve essere specificamente abilitato per avere effetto.  
Si trova nel file <command>XF86Config</command>,
normalmente collocato in <command>/etc/X11/XF86Config</command>.</para>


<para>Se possedete un monitor rispondente allo standard DPMS, potete provare a abilitarne il 
supporto sotto la sezione 
<emphasis>Monitor</emphasis> del vostro file <command>XF86Config</command>: 
</para>

<para>
<screen>
Section "Monitor"
	Option	"DPMS"
EndSection
</screen>
</para>

<para>Per manipolare le funzioni DPMS, potete creare o modificare le 
righe seguenti nella sezione <emphasis>ServerLayout</emphasis>.</para>

<para>
<screen>
Section "ServerLayout"
	Option "BlankTime"	"10"	# Oscura lo schermo dopo 10 minuti
	Option "StandbyTime" 	"20"	# Spegne lo schermo dopo 20 minuti 
	Option "SuspendTime"	"30"	# Completa ibernazione dopo 30 minuti 
	Option "OffTime"	"40"	# Spegne il monitor DPMS 
EndSection
</screen>
</para>

<para>Vale la pena di notare che <command>BlankTime</command> non costituisce affatto 
un livello di risparmio di energia. Allo schermo è indirizzato 
un "debole" effetto di oscuramento, il cui intervallo prestabilito di attivazione è di 10 minuti.  
In alternativa, può indicare l'intervallo in minuti 
prima dell'attivazione del salvaschermo. Non ha comunque niente a che vedere con  
DPMS.</para>

<para>Dopo aver attivato le proprie modifiche e aver riavviato X-Windows, può essere preferibile 
esaminare i propri 
file di log, per verificare se la propria scheda video abbia avuto qualche problema con i nuovi cambiamenti:</para>

<para>
<screen>
bash$ egrep "^\(WW|EE\)" /var/log/XFree86.0.log
</screen>
</para>

<para>È possibile che ci siano opzioni aggiuntive, che si potrebbe voler abilitare per lo specifico 
driver della propria scheda o chip video; si veda il sito Web della 
<ulink url="http://www.xfree86.org/support.html">Documentazione di XFree86</ulink> 
per ulteriori precisazioni.</para>

<para>Certamente, tutto questo può essere attivato "al volo" usando 
<command>xset(1)</command>.  
Se non avete accesso al vostro file di sistema <command>XF86Config</command> , 
un buon posto in cui inserire questi comandi potrebbe essere il 
vostro file  <command>~/.Xsession</command> oppure <command>~/.xinitrc</command>. 
</para>

<para>
<screen>
bash$ xset -dpms			# Disabilita DPMS
bash$ xset +dpms			# Abilita DPMS
bash$ xset s off			# Disabilita l'oscuramento dello schermo
bash$ xset s 150			# Oscura lo schermo dopo 150 secondi
bash$ xset dpms 300 600 900		# Imposta i tempi di standby, suspend, e off (in secondi)
bash$ xset dpms force standby		# Introduce immediatamente il modo standby 
bash$ xset dpms force suspend		# Introduce immediatamente il modo suspend 
bash$ xset dpms force off		# Spegne immediatamente il monitor 
bash$ xset -q				# Interroga le impostazioni attuali
</screen>
</para>

<para>Se state invece usando la console di Linux (senza X-Windows), potreste 
usare <command>setterm(1)</command>:</para>

<para>
<screen>
bash$ setterm -blank 10			# Oscura lo schermo dopo 10 minuti 
bash$ setterm -powersave on		# Mette il monitor nel modo VESA di risparmio di energia 
bash$ setterm -powerdown 20		# Imposta a 20 minuti lo spegnimento VESA
</screen>
</para>

</sect2>

<sect2 id="kde">
<title>KDE 3.1</title>

<sect3 id="kdedisplay">
<title>Display Power Control</title>
<para>Assumendo che abbiate configurato XFree86 per supportare DPMS, lanciate semplicemente 
<command>kcontrol</command> e scegliete <command>Power 
Control</command>/<command>Display Power Control</command>.  Da qui, potete 
configurare le impostazioni di Standby, Suspend, e Power off per il vostro monitor.</para>
</sect3>

<sect3 id="kdebattery">
<title>Batteria del Laptop</title>
<para>Assumendo che abbiate configurato il vostro kernel per supportare APM o ACPI, 
lanciate semplicemente <command>kcontrol</command> e scegliete <command>Power 
Control</command>/<command>Laptop Battery</command>.  Da qui, potete 
configurare le varie impostazioni per il vostro sistema basate sul livello di carica 
rimanente della batteria.</para>

<para>È degno di nota che alcuni utilizzatori di ACPI tendano a vedere 
questo messaggio:</para>

<screen>
Your computer seems to have a partial ACPI installation. ACPI was probably 
enabled, but some of the sub-options were not - you need to enable at least 
'AC Adaptor' and 'Control Method Battery' and then rebuild your kernel.

Ossia: 
Sembra che sul vostro computer ci sia una installazione parziale di ACPI. ACPI è stato 
probabilmente abilitato, tralasciando però di abilitare alcune sotto-opzioni - dovete per lo meno 
abilitare 'AC Adaptor' e 'Control Method Battery' e quindi ricompilare il kernel. 
</screen>

<para>Se vedete questo, significa che ACPI non è installato o, più probabilmente, KDE  
non riconosce il vostro particolare sottosistema ACPI Linux. Se l'applicazione di 
una patch aggiornata di ACPI al kernel non risolve il problema, sarà necessario o non 
usare questa funzione di KDE o, in alternativa, riconvertirsi all'APM.  
</para>
</sect3>
</sect2>

<sect2 id="energystar">
<title>Energy Star</title>

<para><ulink url="http://www.energystar.gov">Energy Star</ulink> è un programma 
sostenuto dal governo degli Stati Uniti 
per promuovere standard energetici efficienti. Di interesse:</para>

<itemizedlist>
	<listitem><para>Un computer qualificato come ENERGY STAR, nel modo sleep,
			consuma il 70% in meno di elettricità rispetto ai computer privi di caratteristiche di gestione dell'energia.</para></listitem>
	<listitem><para>Un monitor qualificato come ENERGY STAR, nel modo sleep,
			consuma il 90% in meno di elettricità rispetto ai monitor privi di caratteristiche di gestione dell'energia.</para></listitem>
</itemizedlist>

<para>Tipicamente, Energy Star ottiene tali risparmi grazie a impostazioni esterne    
di gestione dell'energia e non costituisce, di per sé
una tecnica di gestione dell'energia.</para>
</sect2>

<sect2 id="swap">
<title>File di Swap</title>
<para>Prendete in considerazione l'opportunità di disabilitare il vostro file di swap in <command>/etc/fstab</command> per  
ridurre gli accessi al disco rigido.
Se disponete di memoria in quantità, questo è certamente un metodo da seguire. 
Un modo per capire se avete bisogno del file di swap consiste nell'attivarlo, usare il vostro sistema  
per un periodo di tempo, 
e quindi esaminare <command>/proc/meminfo</command> e <command>/proc/swaps</command>
per determinare di quanta memoria libera disponete mediamente, e se il 
vostro file di swap venga mai utilizzato.</para>

<para>Per esempio, oggi ho compilato svariati programmi intensivi e ho  
fatto funzionare il mio laptop per circa otto ore di fila. 
Un semplice esame del mio sistema rivela:</para>

<screen>
bash$ cat /proc/swaps
Filename                                Type            Size    Used    
Priority
/dev/hda3                                partition      136544  0       -1

bash$ cat /proc/meminfo
MemTotal:       513880 kB
MemFree:        254820 kB
Buffers:         42812 kB
Cached:         142880 kB
SwapCached:          0 kB
Active:         159644 kB
Inactive:        76888 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       513880 kB
LowFree:        254820 kB
SwapTotal:      136544 kB
SwapFree:       136544 kB
Dirty:               0 kB
Writeback:           0 kB
Mapped:          86148 kB
Slab:            10748 kB
Committed_AS:   203944 kB
PageTables:       1140 kB
VmallocTotal:   516076 kB
VmallocUsed:      1468 kB
VmallocChunk:   514604 kB
HugePages_Total:     0
HugePages_Free:      0
Hugepagesize:     4096 kB
</screen>

<para>Al che, si potrebbe disabilitare il file di swap, se non c'è alcun indicatore  
di un probabile uso futuro.</para>
</sect2>

<sect2 id="tmpfs">
<title>tmpfs</title>
<para>Includendo nel kernel il supporto per il tmpfs (filesystem temporaneo) e usandolo per   
montarvi la directory /tmp, 
si ottiene che nulla verrà scritto sul disco rigido in corrispondenza di questo   
punto di mount, il quale agirà come  
un disco RAM (per contro nulla verrà salvato). Il vantaggio di tmpfs   
rispetto al più tradizionale ramfs è
che il primo risiede nella cache interna del kernel e cresce o si riduce per 
adattarsi ai file che deve ospitare. 
Si veda il Documentation/filesystems/tmpfs.txt del proprio kernel per completa documentazione. 
Se non si specifica una dimensione  
massima, essa verrà automaticamente limitata a metà della memoria totale disponibile. 
Un file /etc/fstab di esempio, con un file ram temporaneo di 100MB montato sotto /tmp, apparirebbe 
così:

<screen>
tmpfs	/tmp	tmpfs	size=100m,mode=1777	0 0
</screen>
</para>
</sect2>

<sect2 id="misc">
<title>Affinamenti vari</title>

<para>
La modifica di /proc/sys/vm/bdflush permette a un utente di precisare in quali 
circostanze i buffer "sporchi" debbano essere trasferiti su disco, quanti di tali 
buffer possano esistere, ecc.  Per dettagli si veda nell'albero_dei_sorgenti_di_linux/Documentation/sysctl/vm.txt 
(grazie a Marc Liberatore per il riferimento).</para>

<para>Avviate il vostro sistema e elencate, con lsmod, i moduli correntemente caricati. 
Tutto ciò che compare nell'elenco molto probabilmente deve essere caricato regolarmente;
compilandolo come parte del kernel piuttosto che come modulo può 
servire a ridurre il tempo necessario a caricarlo dal disco, e, in 
grado molto minore, riduce gli accessi al disco richiesti per l'avvio del 
sistema.</para>

<para>Esaminate la vostra configurazione di crontab per vedere se qualcosa venga avviato su  
base regolare. Commentate ogni voce non necessaria. Non dimenticate di esaminare 
il crontab di ogni singolo utente, incluso 'nobody'. Se non avete bisogno di 
registrare 
una qualsivoglia attività di background, valutate se disabilitare crontab del tutto. Lo stesso 
consiglio vale per atd.</para>

<para>Se avviate http per testare e/o sviluppare pagine web, provate a impostare  
i valori di MinSpareServers e StartServers a 1. Non definite alcun   
CustomLogging o almeno incrementate il valore di LogLevel a warn.  Se vi sentite  
veramente sicuri di voi stessi, potete cambiare la direttiva ErrorLog perché punti a  
/dev/null.</para>

<para>Valutate se creare uno script di risparmio di energia che metta immediatamente il vostro  
laptop
nel modo di bassa potenza:</para>

<para>
<screen>
#!/bin/sh
if [ -x /usr/sbin/hdparm ]; then
	hdparm -y /dev/hda
fi

if [ -x /usr/X11R6/bin/xset ]; then
	xset dpms force off
fi
</screen>
</para>

<para>In più, merita attenzione quanto rientra nelle aree seguenti:</para>
<para><itemizedlist>
<listitem><para>Regolate le impostazioni del BIOS del vostro sistema per ridurre o spegnere 
la retroilluminazione del display.</para></listitem>
<listitem><para>Regolate le impostazioni del BIOS del vostro sistema per ridurre la velocità di clock 
della CPU durante il funzionamento a batterie.</para></listitem>
<listitem><para>Evitate di usare i dispositivi PCMCIA durante il funzionamento a batterie. Meglio ancora, 
estraete le schede PCMCIA quando non sono in uso.</para></listitem>
<listitem><para>Evitate di collegare al computer dispositivi esterni durante il funzionamento a 
batterie. 
Questo include stampanti, monitor esterni, drive zip, e fotocamere 
portatili.</para></listitem>
<listitem><para>Evitate l'uso dei dispositivi incorporati durante il funzionamento a batterie. Questo include 
drive cdrom e floppy.</para></listitem>
<listitem><para>Usate programmi semplici. Una applicazione multimediale caricherà 
molto di più il sistema e creerà molta più attività su disco di un semplice word 
processor</para></listitem>
<listitem><para>Usate un window manager semplice. Gnome e KDE sono attraenti, ma tutto  
il tempo in più necessario per lanciarli non vale la pena, quando 
si usano le batterie. Un'idea elegante sarebbe usare uno script 
<command>xinitrc</command> differente per lanciare un altro window manager,  
più semplice in base 
all'utilizzo o meno delle batterie da parte del sistema.</para></listitem>
</itemizedlist></para>
</sect2>


<sect2 id="myth">
<title>Miti del risparmio di energia</title>

<para>Abitualmente risultava vantaggioso ricompilare i driver PCMCIA di Linux per permettere  
agli slot di godere del supporto APM per l'energia. Tuttavia, la maggior parte delle funzionalità di  
tali driver sono ora incluse nel kernel stesso.  
Se vi interessano le specifiche, la pagina del progetto PCMCIA è disponibile presso 
<ulink url="http://sourceforge.net/projects/pcmcia-cs/">http://sourceforge.net/projects/pcmcia-cs/</ulink>.
</para>

<para>Alcune persone credono che APM offra un migliore risparmio di energia rispetto a ACPI, e 
viceversa.  Per quanto differiscano in termini   
di tecniche di gestione dell'energia, nei test reali di utilizzo delle batterie, entrambi a quanto si dice 
garantiscono prestazioni all'incirca equivalenti.</para>

<para>Contrariamente alla credenza popolare, le batterie a Ioni di Litio (si veda sotto) 
<emphasis>soffrono</emphasis> di effetto memoria. 
Fortunatamente, l'effetto non è pesante rispetto al periodo di vita di una batteria tipica (3-4 
anni).  Chiunque affermi il contrario 
sta cercando di vendervi qualcosa.</para>

</sect2>
</sect1>


<sect1 id="battery">
<title>Tipi di batterie</title>
<para>Attualmente ci sono tre tipi di batterie normalmente usate per i computer portatili:  Nickel Cadmium, Nickel Metal Hydride, e Lithium Ion.</para>

<sect2 id="nicd">
<title>Nickel Cadmium (Ni-Cd)</title>
<para>Le batterie Nickel Cadmio (Ni-Cd) sono state l'unica scelta per anni, 
ma ormai sono obsolete, e i nuovi modelli di laptop non le usano più, perché 
pesanti e soggette all'"effetto memoria": cioè durante la ricarica, se 
una batteria NiCD era solo parzialmente scarica, essa "ricorda" il precedente livello di 
carica e si rifiuta di oltrepassarlo. L'effetto memoria è provocato dalla 
cristallizzazione degli elettroliti della batteria e può ridurne la durata in modo permanente, 
fino a renderla inutilizzabile. Per evitare che ciò accada, è necessario 
scaricarla del tutto e poi ricaricarla completamente una volta ogni poche settimane. 
Dato che questa batteria contiene cadmio, un materiale tossico, dovrebbe essere 
sempre riciclata o smaltita correttamente.</para>

<para>Le batterie NiCad, e in un certo grado le batterie NiMH, soffrono di ciò che viene 
chiamato l'<emphasis>effetto memoria</emphasis>. "Effetto memoria" significa che 
se la batteria viene 
ripetutamente scaricata solo parzialmente prima della ricarica, si dimenticherà 
che può scaricarsi ulteriormente. Il sistema migliore per prevenire questa situazione 
consiste nel caricare e scaricare la batteria su base regolare.</para>
</sect2>

<sect2 id="nimh">
<title>Nickel Metal Hydride (Ni-MH)</title>
<para>Le batterie Nickel Metal Hydride (Ni-MH) costituiscono un rimpiazzo privo di cadmio 
per le NiCad. Rispetto alle NiCd sono meno affette dall'effetto memoria e richiedono 
quindi minore manutenzione e condizionamento. Tuttavia, presentano problemi 
a temperature molto basse o molto alte. E per quanto usino materiali meno  
nocivi (per es., non contengono metalli pesanti), non si possono ancora 
riciclare. Un'altra importante differenza tra le NiCad e le NiMH è che le batterie NiMH
offrono una maggiore densità di energia rispetto alle NiCad. In altri termini, la capacità  
di una NiMH è approssimativamente doppia rispetto alla sua controparte al NiCad, il che 
garantisce una maggiore autonomia della batteria senza aggravio 
di volume o di peso.</para>
</sect2>

<sect2 id="liion">
<title>Lithium Ion (Li-ion)</title>
<para> Le Lithium Ion (Li-ion) sono il nuovo standard per l'energia portatile. Le batterie Li-ion
producono la stessa energia di quelle al NiMH ma pesano approssimativamente un 20%-35%
in meno, e non soffrono in maniera significativa dell'effetto memoria a differenza delle controparti NiMH e Ni-Cd
I loro componenti non sono assolutamente nocivi. Poiché 
il litio si incendia molto facilmente, esse richiedono un trattamento particolare. Sfortunatamente,  
solo pochi programmi di riciclaggio per batterie a Li-ion 
sono stati finora stabiliti.</para>
</sect2>

<sect2 id="smart">
<title>Batterie smart</title>
<para>Le batterie <emphasis>smart</emphasis> non rappresentano realmente un tipo differente  
di batterie, ma meritano una speciale menzione. Le batterie smart hanno  
un circuito interno con chip che le mettono in grado di comunicare con il 
laptop e monitorare le prestazioni della batteria, il voltaggio e la temperatura. 
Le batterie smart durano generalmente un 15% in più per via della loro migliore 
efficienza, e inoltre forniscono al computer delle funzionalità di "indicazione del livello carburante" molto più accurate, 
per stabilire quanta autonomia rimanga alla batteria prima 
che sia necessaria una ricarica.</para>
</sect2>

<sect2 id="batcomp">
<title>Cura generale delle batterie</title> 
<para>Anche se la forma delle batterie è la stessa, non è possibile passare 
a un nuovo tipo di batterie, a meno che il laptop non sia stato preconfigurato 
dal produttore per accettarne più di un tipo , dato che il processo 
di ricarica è differente per ognuno dei tre tipi di batterie.</para>
 
<para>Una batteria che non venga usata per molto tempo si scaricherà lentamente. 
E anche se le usate ogni riguardo, la vostra batteria dovrà essere sostituita dopo 500 - 1000  
ricariche. Tuttavia non è consigliabile tenere acceso un portatile senza batteria 
collegato all'alimentazione di rete, perché la batteria serve sempre come condensatore a elevata capacità,  
che protegge la macchina da sovratensioni provenienti dalla rete elettrica.</para>

<para>Dal momento che i costruttori cambiano la forma delle loro batterie ogni pochi  
mesi, potreste avere problemi a trovare una nuova batteria per il vostro laptop da 
qui a pochi anni. La cosa può preoccupare solo se si prevede di usare  
lo stesso laptop per svariati anni. Se avete dubbi, comperate una batteria di riserva ora, 
prima che sparisca dagli scaffali dei negozi.</para>

<para>Le nuove batterie vengono vendute scariche e devono essere caricate completamente  
prima dell'uso. Si raccomanda di caricare e scaricare completamente la nuova 
batteria da due a quattro volte, per consentirle di raggiungere la capacità massima prevista. A questo scopo, 
è generalmente raccomandabile che si effettui una carica notturna (approssimativamente  
dodici ore). Si noti che è normale che una batteria si scaldi 
durante le fasi di carica e di 
scarica. Quando si carica la batteria per la prima volta, può capitare che il dispositivo 
indichi che la carica sia completa già dopo 10 o 15 minuti. Questo è 
normale con le batterie ricaricabili. Le nuove batterie sono dure da 
ricaricare; non sono mai state completamente caricate e non sono rodate. Talvolta il 
dispositivo di ricarica potrebbe interrompere il processo di ricarica di una nuova batteria prima che essa sia completamente carica. 
Se questo succede, rimuovete la batteria dal dispositivo e quindi reinseritela. Il 
ciclo di ricarica dovrebbe ripartire. Questo può capitare svariate volte durante il 
primo ciclo di carica. Non preoccupatevi; è perfettamente normale. Mantenete la batteria 
in buono stato 
caricandola e scaricandola completamente almeno una volta ogni due o tre settimane. 
Si sottraggono a questa regola le batterie Li-Ion che non soffrono di 
effetto memoria.</para>

<para>Le batterie dovrebbero essere messe da parte scariche, dato che 
possono autoscaricarsi e diventare inattive dopo un lungo periodo di inutilizzo. Non dovrebbero 
essere mantenute collegate al laptop durante i periodi di inutilizzo. 
Elevata umidità e alte temperature possono deteriorare la batteria, per cui 
dovrebbero essere evitate per la sua conservazione.</para>

<para>Non rimuovete la batteria per trasportarla in tasca, nella borsa o in 
altri contenitori nei quali oggetti metallici (come le chiavi dell'auto e graffette) possano mandare  
in corto circuito i 
terminali della batteria. Il conseguente, eccessivo flusso di corrente potrebbe causare 
temperature elevate, con possibli danni alla batteria nonché rischio di incendio 
o bruciature.</para>
</sect2>
</sect1>

<sect1 id="intro">
<title>Appendice</title>

<para>Questo documento venne amorevolmente vergato su un laptop Dell Latitude C400  
su cui girava Slackware Linux 9.0, nel caso qualcuno lo chieda.</para>

<para>Questo documento non sarebbe stato possibile senza l'eccellente 
materiale sviluppato inizialmente da Hanno Mueller 
<email>kontakt@hanno.de</email>.</para>

<para>Copyright (c) 2003 David Lechnyr. Redistribution and use, with or without modification, are permitted provided that the copyright notice, this list of conditions and the following disclaimer be included.</para>

<para>THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</para>

</sect1>


</article>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
