# [HOW-TO] Reduce Power Usage

## lavish

QUANTO ESPOSTO IN QUESTA GUIDA NON E' SUPPORTATO DA GENTOO. NON POSTATE SU BUGZILLA RIGUARDO A TEMATICHE CORRELATE A QUANTO TRATTATO IN QUESTO THREAD SE AVETE SEGUITO LE PROCEDURE ESPOSTE.

Attenzione, il kernel 2.6.22-r4 non crea devices di loopback, per maggiori informazioni consultate il post di drizzt

.INTRODUZIONE

Piu' che un how-to si dovrebbe chiamare multi-tip.. ma veniamo al sodo.

Come ben sapete, intel ha messo a disposizione da qualche tempo un tool, powertop per monitorare i software che concorrono maggiormente ad incrementare il consumo dei nostri pc.

L'importanza di tale progetto non e' tanto il software in se', ma la mole di patch che si e' creata per ridurre i consumi prodotti dai programmi piu' diffusi.

Questo HOW-TO vuole essere un punto di riferimento per le patch e le metodologie che ognuno di noi scopre e che possono tornare utili agli altri.

.ANALISI

Per prima cosa, consiglio fortemente a tutti di installare powertop. Lo trovate in portage ma e' comodamente installabile anche da svn.

Leggete e fate tesoro di tutte le informazioni reperibili su questa pagina: http://www.linuxpowertop.org/faq.php per prendere confidenza con laa terminologia che andremo ad usare e le tematiche legate al consumo energetico su un pc.

Monitorate la situzione energetica prima di seguire questa guida e fate il confronto con i risultati che otterrete dopo  :Smile: 

.CONFIGURAZIONE

.CORE

Come avrete letto, e' consigliato almeno un kernel 2.6.21 in modo da poter ridurre in modo sostanziale i wakeups/s grazie all'opzione CONFIG_NO_HZ su x86. Per quanto riguarda x86_64 tale opzione e' stata implementata a partire dal 2.6.22-rc4.

In questo howto useremo appunto l'ultima release candidate del 2.6.22, vale a dire la 2.6.22-r4 con una patch per hrtimers.

Maggiori informazioni le potete trovare sul sito del progetto: http://www.tglx.de/hrtimers.html

Questa patch, fra i tanti benefici per il target che ci siamo prefissati, permette di forzare l'utilizzo dell'hpet timer anche su ICH4 (sul sito di powertop affermano che il timer hpet e' presente solo da ICH5 in su, ma sia io che drizztbsd abbiamo constatato che anche ICH4 lo supporta tramite questa patch).

Andiamo quindi a scaricare i sorgenti del kernel e la patch:

```
cd /usr/src

wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.22-rc4.tar.bz2

tar -xjvf linux-2.6.22-rc4.tar.bz2

mkdir powersave-patches

cd powersave-patches

wget http://www.tglx.de/projects/hrtimers/2.6.22-rc4/patch-2.6.22-rc4-hrt10.patch

cd ../linux-2.6.22-rc4

patch -p1 < ../powersave-patches/patch-2.6.22-rc4-hrt10.patch
```

Copiate il vostro vecchio files di config e aggiornate la configurazione:

```
cp /path/to/old/conf .config

make oldconfig
```

Fra le varie opzioni del 2.6.22, vedrete delle nuove features inerenti esclusivamente la patch applicata, in particolare le seguenti, che vanno abilitate:

```
Power management options (ACPI, APM)  --->

    CPU idle PM support  --->

        [*] CPU idle PM support

            ---   Governors

            <*>   'ladder' governor (NEW)

            <*>   'menu' governor (NEW)
```

Queste opzioni sono particolarmente utili nel favorire l'utilizzo dello stato piu' basso della CPU, (C4 nella maggior parte dei casi).

La descrizione del governor menu sara' esplicativa:

```
  │ CONFIG_CPU_IDLE_GOV_MENU:                                               │  

  │                                                                         │  

  │ This cpuidle governor evaluates all available states and chooses the    │  

  │ deepest state that meets all of the following constraints: BM activity, │  

  │ expected time until next timer interrupt, and last break event time     │  

  │ delta.  It is designed to minimize power consumption.  Currently        │  

  │ dynticks is required.    
```

Per tutte le altre opzioni da ebilitare/disabilitare, mettete in pratica quanto letto prima nelle FAQ di powertop  :Wink: 

.CORE/EXTRA

Fatto il passo fondamentale per i molti utenti che si trovano ad usare i driver radeon open, se hanno letto le FAQ precedentemente linkate, c'e' una brutta sorpresa: il driver radeon infatti produce degli interrupt in accesso per gli eventi vblank. E' stata completata una patch porre rimedio a questo problema, ma applicarla non e' cosi' immediato. Per maggiori info, date pure un'occhiata al post originale dell'autore.

C'e' a disposizione un'altra patch, molto grezza, ma che almeno funziona e permette pure di fruire dell'accelerazione 3D (trovata qui: http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg30663.html )  :Smile: 

```
cd ../powersave-patches/

wget http://www.minimalblue.com/ftp/public/linux/powersave-patches/radeon_vblanks.patch

cd ../linux-2.6.22-rc4

patch -p1 <../powersave-patches/radeon_vblanks.patch
```

In aggiunta a tutto cio', se volete potete applicare anche la patch per suspend2 (http://www.suspend2.net/):

```
cd ../powersave-patches/

wget http://www.suspend2.net/downloads/all/suspend2-2.2.10.1-for-2.6.22-rc4.patch.bz2

bunzip2 suspend2-2.2.10.1-for-2.6.22-rc4.patch.bz2 

cd ../linux-2.6.22-rc4

patch -p1 <../powersave-patches/suspend2-2.2.10.1-for-2.6.22-rc4.patch

```

Ricompilate il kernel e buona fortuna.

Ricordatevi che e' tutto altamente sperimentale, quindi qualcosa potrebbe andare storto: prestate molta attenzione a conservare il precedente kernel con il vostro file di configurazione.

.SOFTWARE

Sul sito di powertop sono presenti numerosi fix per vari applicativi. Fra quelli che uso e di cui ho provato il relativo fix, ho avuto problemi con firefox-2.0.0.4

La patch sul sito non  funziona. Vista la diffusione di tale sw, ho pensato di correggerla e di preparare pure il relativo ebuild  :Smile: 

Partendo dal presupposto che in /etc/make.conf abbiate 

```
PORTDIR_OVERLAY=/usr/local/portage
```

 procediamo:

```
mkdir -p /usr/local/portage/www-client/mozilla-firefox/

cp -r /usr/portage/www-client/mozilla-firefox/files /usr/local/portage/www-client/mozilla-firefox/files

cd /usr/local/portage/www-client/mozilla-firefox/files

wget http://www.minimalblue.com/ftp/public/linux/powersave-patches/firefox_powertop.patch

cd ..

wget http://www.minimalblue.com/ftp/public/linux/powersave-patches/mozilla-firefox-2.0.0.4.ebuild

ebuild mozilla-firefox-2.0.0.4.ebuild digest

emerge mozilla-firefox
```

Questa e' solo una piccola parte nell'ottimizzazione della propria macchina verso il risparmio energetico: spero che l'howto sia comunque utile ad avviare una discussione e uno scambio di informazioni proficuo  :Smile: 

----------

## riverdragon

Molto molto bello.

Sarebbe bello anche riuscire a capire qualcosa riguardo le patch per le applet del mixer, il bugzilla di gnome è discretamente confusionario, e la pagina è oltremodo lunga da leggere.

----------

## lavish

 *riverdragon wrote:*   

> Molto molto bello.
> 
> Sarebbe bello anche riuscire a capire qualcosa riguardo le patch per le applet del mixer, il bugzilla di gnome è discretamente confusionario, e la pagina è oltremodo lunga da leggere.

 

```
<mode="taliban">

    basta non usarli

</mode>
```

 :Laughing: 

Non essendo uno gnome user non posso essere d'aiuto, mi spiace  :Wink: 

----------

## riverdragon

 *lavish wrote:*   

> Non essendo uno gnome user[...]

   :Evil or Very Mad:  Male!   :Laughing:  Va be', ci penserò da solo, se avrò successi li scriverò qui.

Lavish, c'è un sistema discretamente semplice per applicare le patch di gentoo al kernel 2.6.22-r4? Tra una decina di giorni il mio bisogno di funzionare a batteria calerà significativamente, quindi vorrei provare ora; però uso il vesafb-tng che è specificamente di gentoo...

O, ancora meglio: l'utilizzo della patch per hrtimer migliora significativamente il consumo rispetto ad un kernel 2.6.21 con la patch di powertop applicata e il resto dei consigli seguiti?

----------

## lavish

La patch di powertop non l'ho inclusa nell'howto perche' provandola sulla mia macchina ho notato una riduzione drastica delle performances rendendo il sistema molto meno "reattivo".

Con la patch hrt6 mi trovo senza alcun degrado di performances quasi costantemente in C4:

```
Cn          Avg residency (15s) Long term residency avg

C0 (cpu running)        ( 3.2%)

C1                0.0ms ( 0.0%)                   0.0ms

C2                0.8ms ( 0.4%)                   0.0ms

C3                0.5ms ( 0.1%)                   0.0ms

C4               13.0ms (96.3%)                  12.6ms

```

Inoltre abilita l'hpet timer su ICH4 che aiuta a ridurre notevolmente i wakeups.

Secondo me la differenza di risparmio e' evidente  :Smile:  Ad ogni modo la patch esiste anche per 2.6.21, quindi puoi provare ad applicarla ai gentoo-sources!

Ciao!

----------

## riverdragon

```
tomnote linux-2.6.21-gentoo-r2 # patch -p1 <../patches_2.6.21/patch-2.6.21.3-hrt1.patch 

patching file kernel/timer.c

patching file kernel/time/tick-broadcast.c

patching file kernel/time/clocksource.c

patching file arch/i386/kernel/hpet.c

patching file arch/x86_64/kernel/time.c

patching file drivers/input/misc/pcspkr.c

patching file include/asm-x86_64/i8253.h

patching file include/linux/timer.h

patching file kernel/time/tick-sched.c

patching file arch/i386/kernel/apic.c

patching file arch/i386/kernel/i8253.c

patching file include/linux/clockchips.h

patching file kernel/time/tick-common.c

patching file kernel/time/clockevents.c

patching file arch/i386/Kconfig

patching file arch/i386/kernel/time.c

patching file include/asm-i386/timer.h

patching file include/linux/time.h

patching file kernel/time/ntp.c

patching file kernel/hrtimer.c

patching file kernel/time/tick-oneshot.c

patching file drivers/char/rtc.c

patching file include/asm-x86_64/apic.h

patching file include/asm-x86_64/hpet.h

patching file include/asm-x86_64/timex.h

patching file arch/x86_64/Kconfig

patching file include/asm-i386/i8253.h

patching file arch/x86_64/kernel/tsc.c

patching file arch/x86_64/kernel/Makefile

patching file arch/x86_64/kernel/apic.c

patching file arch/x86_64/kernel/hpet.c

patching file arch/x86_64/kernel/i8259.c

patching file arch/x86_64/kernel/mce_amd.c

patching file arch/x86_64/kernel/smpboot.c

patching file drivers/acpi/processor_idle.c

patching file include/asm-i386/hpet.h

patching file include/asm-i386/tsc.h

patching file include/asm-x86_64/proto.h

patching file arch/x86_64/kernel/process.c

patching file arch/i386/kernel/quirks.c

patching file include/linux/pci_ids.h

patching file Makefile

Hunk #1 FAILED at 1.

1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
```

L'errore è dovuto al tentativo di cambiare il nome da ".3" a ".3-hrt1", quindi niente di grave. Ora compilo e ti farò sapere.

----------

## skypjack

Tanto di cappello...  :Wink: 

----------

## riverdragon

Nulla di particolare da segnalare, sul 2.6.21.

Ho applicato la patch al kernel -gentoo-r3 e funziona, come ho scritto prima; non ho applicato le altre patch (che ho poi scoperto essere già incluse nella patch cumulativa).

Il risultato è perfettamente paragonabile a quello che avevo prima.

Con la patch di powertop non avevo notato rallentamenti, così come ora non noto "riaccelerazioni".

Provo ad applicare qualche patch di gentoo al kernel 2.6.22-r4, vediamo come va.

----------

## lavish

 *riverdragon wrote:*   

> Ho applicato la patch al kernel -gentoo-r3 e funziona, come ho scritto prima; non ho applicato le altre patch (che ho poi scoperto essere già incluse nella patch cumulativa).

 

Quali altre patch intendi?

 *riverdragon wrote:*   

> Il risultato è perfettamente paragonabile a quello che avevo prima.

 

Puoi postare qualche risultato con powertip? Detto cosi' e' molto vago   :Confused:  La differenza per me e' abissale, non so come con il menu governor tu non possa notare cambiamenti

----------

## riverdragon

Le altre patch sarebbero quelle presenti qui sotto forma di archivio e qui. Il governor menu non ce l'ho perché il kernel è il 2.6.21; adesso sto compilando il 2.6.22-r4 con le patch per il vesafb-tng (che si applica senza problemi), per hrt (è uscita la versione nuova, la 7) e per ipw3945 (ho dovuto modificare la patch, ma ho scoperto che non funziona).

EDIT: questo è un responso di powertop

```
Cn         Permanenza media (15s)       Media sul lungo periodo

C0 (cpu occupata)      ( 3,8%)

C1                0,0ms ( 0,0%)                   0,0ms

C2                0,2ms ( 0,8%)                   0,0ms

C3                0,6ms ( 3,5%)                   0,5ms

C4                3,1ms (91,8%)                   2,9ms
```

Prima ero generalmente sull'87-88% nello stato C4, il miglioramento c'è ma non è così esagerato. La stima di durata della batteria è infatti stabile rispetto a prima.Last edited by riverdragon on Mon Jun 11, 2007 10:38 pm; edited 1 time in total

----------

## lavish

 *riverdragon wrote:*   

> Il governor menu non ce l'ho perché il kernel è il 2.6.21

 

Ah vero, hai usato hrt1! Si', in effetti con quella patch non cambia moltissimo

 *Quote:*   

> per hrt (è uscita la versione nuova, la 7)

 

 :Very Happy: 

----------

## riverdragon

Ho modificato il messaggio di prima.

Noto che ora ho finalmente attivo questo benedetto hpet (lo vedi con cat /sys/devices/system/clocksource/clocksource0/available_clocksource, da root) che prima nel 2.6.21 non avevo; perlomeno fino a prima di stasera, non mi sono premurato di controllare prima di passare al .22.

Vedo inoltre che tu hai lo stato C4 attivo per mooolto più tempo di me, immagino tu abbia pochissimi "risvegli" della cpu. Da me non scendono mai sotto i 300, e perlopiù sono sopra ai 500. La prima voce tra i colpevoli spesso è quella del gruppo "nvidia, HDA Intel, usb:ohci" (perché poi in una riga sola? così non si capisce il vero colpevole!).

Per la patch di firefox, io modificherei il nome dell'ebuild aggiungendo un -r0 in fondo; in questo modo se capita che viene rilasciato un ebuild ufficiale -r1 non vanno in conflitto, e così eviti anche eventuali conflitti di versione tra l'overlay locale e portage.

----------

## lavish

Prova a rieseguire powertop non da X e vedi se si abbassa notevolmente o no.

Io sono stabile sui 30, ma impegnandomi scendo fino a 5 wakeups/s  :Wink: 

----------

## lavish

 *riverdragon wrote:*   

> Per la patch di firefox, io modificherei il nome dell'ebuild aggiungendo un -r0 in fondo; in questo modo se capita che viene rilasciato un ebuild ufficiale -r1 non vanno in conflitto, e così eviti anche eventuali conflitti di versione tra l'overlay locale e portage.

 

Non mi pare ci sia alcun conflitto... se viene rilasciata una -r1 portage vorra' fare l'upgrade e amen. Qual e' il problema?

----------

## riverdragon

Eseguire powertop fuori da X... non ha molto senso, non è una situazione di utilizzo reale  :Wink: 

Il discorso dell'appendice -r0 è per cercare di risolvere eventuali problemi tra le versioni 2.0.0.4 ufficiale e 2.0.0.4 creata da te: il sistema giustamente non mi presenta alcun aggiornamento se non aggiungo l'appendice.

----------

## skypjack

Ehy, lavish, magari hai un'idea: io un Core Duo (non 2) che "fischia" (non ridere, letteralmente fa questo davvero) quando va in C3, da cui come soluzione inibire C3 e farlo variare fra C1 e C2 solamente. Questo ovviamente aumenta i miei consumi, ma mi permette di non impazzire. Sai di soluzioni alternative?

Grazie

ps: ovvio, ci ho provato, se sai niente no problem........ Resti un grande comunque!!  :Wink: 

----------

## lavish

 *riverdragon wrote:*   

> Eseguire powertop fuori da X... non ha molto senso, non è una situazione di utilizzo reale

 

E' solo per capire se si tratta del driver nvidia o no.

 *riverdragon wrote:*   

> Il discorso dell'appendice -r0 è per cercare di risolvere eventuali problemi tra le versioni 2.0.0.4 ufficiale e 2.0.0.4 creata da te: il sistema giustamente non mi presenta alcun aggiornamento se non aggiungo l'appendice.

 

Secondo me non cambia assolutamente nulla. Se esce una -r1 di firefox poi l'ebuild come lo chiami? -r2? E se esce una -r2? Non te ne accorgi nemmeno.

 *skypjack wrote:*   

> io un Core Duo (non 2) che "fischia" (non ridere, letteralmente fa questo davvero) quando va in C3, da cui come soluzione inibire C3 e farlo variare fra C1 e C2 solamente. Questo ovviamente aumenta i miei consumi, ma mi permette di non impazzire. Sai di soluzioni alternative?

 

 :Shocked: 

Che portatile hai? Soluzioni alternative per non scendere mai in C3 non me ne vengono nell'immediato.. potresti provare a cercare nella doc per il supporto a cpuidle e vedere se trovi qualcosa... ad ogni modo io se fossi in te mi farei sentire con la garanzia  :Smile: 

Ciao!

----------

## skypjack

Seeee... Magari!!

Ho un Dell inspiron, sembra che la cosa sia comune e frequente con i Centrino Duo (su tutti i pc, dipende dal processore) e non dannosa, l'unico problema è che è leggermente fastidiosa. La garanzia? Non mi danno retta, fanno scarica barile e concordano sul fatto che non è dannosa e il rumore è sopportabile...

Maledetti!!

----------

## lavish

 :Shocked: 

/me accarezza il suo centrino Dothan

 :Razz: 

----------

## skypjack

Il bello è che lo stesso effetto l'ho riscontrato da parte di conoscenti su Centrino Duo 2, anche se molto smorzato rispetto al mio caso.

----------

## riverdragon

Io ho un core duo, e questo problema non lo noto...

lavish, il tuo ebuild mi ha fatto sparire l'icona di firefox dai menu.

----------

## lavish

 *riverdragon wrote:*   

> Io ho un core duo, e questo problema non lo noto...
> 
> lavish, il tuo ebuild mi ha fatto sparire l'icona di firefox dai menu.

 

Il mio ebuild non puo' averti fatto sparire nulla visto che e' identico a quello in portage con l'aggiunta di una piccolissima patch.

Guardati l'ebuild e capirai che e' impossibile

----------

## riverdragon

Stasera provo a ricompilare, ma mi e` proprio sparita la voce nel menu...

----------

## skypjack

 *riverdragon wrote:*   

> Io ho un core duo, e questo problema non lo noto...

 

Infatti, nei miei mesi di ricerca e studio per capire cosa diavolo fosse ho scoperto che non tutti i Core Duo (più o meno 2) lo fanno, ma è una cosa random, anche se per ora ne ho già riscontrati tre fra le persone che conosco.

Ti auguro di non avere di questi problemi, ovviamente...  :Wink: 

----------

## riverdragon

Grazie, nel frattempo mi tocco  :Laughing: 

lavish, la voce nel menu è proprio scomparsa; ho ricompilato firefox "ufficiale" ed ora è tornata. Non riesco a capire come mai.

----------

## Onip

 *riverdragon wrote:*   

> 
> 
> lavish, la voce nel menu è proprio scomparsa; ho ricompilato firefox "ufficiale" ed ora è tornata. Non riesco a capire come mai.

 

credo che la risposta stia qui...

```
onip @ Hal9000 ~ $ ls /usr/portage/www-client/mozilla-firefox/files/

firefox.1  gentoo-default-prefs.js  icon  mozilla-filepicker.patch

onip @ Hal9000 ~ $ ls /usr/portage/www-client/mozilla-firefox/files/icon/

firefox-icon.png            mozilla-firefox-1.5.desktop

firefox-icon-unbranded.png  mozilla-firefox-1.5-unbranded.desktop

```

prova a copiare nella dir files dell'overlay tutti i file richiamati dall'ebuild di lavish, aiutandoti con

```
onip @ Hal9000 ~ $ grep FILESDIR /usr/portage/www-client/mozilla-firefox/mozilla-firefox-2.0.0.4.ebuild 

                epatch ${FILESDIR}/mozilla-filepicker.patch

                doicon "${FILESDIR}"/icon/firefox-icon.png

                newmenu "${FILESDIR}"/icon/mozilla-firefox-1.5.desktop \

                doicon "${FILESDIR}"/icon/firefox-icon-unbranded.png

                newmenu "${FILESDIR}"/icon/mozilla-firefox-1.5-unbranded.desktop \

        newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js

        newins "${FILESDIR}"/gentoo-default-prefs.js all-gentoo.js
```

Byez

----------

## MeMyselfAndI

@lavish: ottimo post, tuttavia io non riesco a scendere al di sotto dello steto C2 pur usando un kernel 2.6.22 e le patch allegate.... Ho letto sul sito di powertop che potrebbe essere dovuto al driver ipw2200, ma ora mia sorge una domanda: tu che scheda wireless hai ? No perche' ne ho visti pochi di portatili (pentium-m dothan senza una scheda ipw2200) 

Grazie mille  :Very Happy: 

Ciao

----------

## lavish

ipw2200  :Smile: 

Ma anche se produce un bel po' di wakeups/s (~15) riesco tranquillamente a stare la maggior parte del tempo in C4

Mi posti l'output di powertop?

----------

## riverdragon

Onip aveva ragione, copiando i file anche la voce nel menu rimane. Dovresti aggiornare il primo post, lavish, e aggiungere un

```
cp -r /usr/portage/www-client/mozilla-firefox/files/* /usr/local/portage/www-client/mozilla-firefox/files
```

prima del digest.

----------

## MeMyselfAndI

 *lavish wrote:*   

> ipw2200 
> 
> Ma anche se produce un bel po' di wakeups/s (~15) riesco tranquillamente a stare la maggior parte del tempo in C4
> 
> Mi posti l'output di powertop?

 

```

Cn          Avg residency (5s)  Long term residency avg

C0 (cpu running)        ( 2.7%)

C1                0.0ms ( 0.0%)                   0.0ms

C2                6.2ms (97.3%)                   6.2ms

C3                0.0ms ( 0.0%)                   0.0ms

C4                0.0ms ( 0.0%)                   0.0ms

Wakeups-from-idle per second : 156.6

no ACPI power usage estimate available

Top causes for wakeups:

  23.9% ( 49.8)                 X : do_setitimer (it_real_fn) 

  23.9% ( 49.8)         syndaemon : do_nanosleep (hrtimer_wakeup) 

   8.0% ( 16.6)    gnome-terminal : schedule_timeout (process_timeout) 

   6.9% ( 14.4)          epiphany : futex_wait (hrtimer_wakeup) 

   6.7% ( 14.0)       <interrupt> : libata 

   6.3% ( 13.2)       <interrupt> : uhci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3,

 ehci_hcd:usb4 

```

e all'avvio appare questo messaggio, di cui non ho capito ne la funzione ne se sia bene o male:

```

Marking TSC unstable due to: possible TSC halt in C2.

Time: hpet clocksource has been installed.

```

EDIT: Togliendo il modulo uhci_hcd riesco anche io a raggiungere lo stato c4...... ma devo rinunciare al mouse usb.

Che voi sappiate esiste una soluzione ?

----------

## Guglie

ho messo il kernel patchato 2.6.22-rc4-hrt7: il consumo si è abbassato un po', ma purtroppo sono sempre molto al di sopra dei vostri consumi  :Sad: 

```
Cn          Avg residency (10s) Long term residency avg

C0 (cpu running)        ( 2.1%)

C1                0.0ms ( 0.0%)                   0.0ms

C2                0.2ms ( 0.8%)                   1.6ms

C3                0.3ms ( 0.9%)                   0.3ms

C4                4.0ms (96.1%)                   4.3ms

Wakeups-from-idle per second : 310.7

Power usage (ACPI estimate): 14.1W (1.7 hours) (long term: 16.1W,/1.5h)

Top causes for wakeups:

  33.6% (108.9)       <interrupt> : i8042 

  20.8% ( 67.3)       <interrupt> : acpi 

  18.7% ( 60.7)       <interrupt> : ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:

   6.4% ( 20.8)     <kernel core> : hdaps_init (hdaps_mousedev_poll) 0000:01:00.0 

   5.2% ( 17.0)   xfce4-battery-p : schedule_timeout (process_timeout) 

   4.7% ( 15.3)       <interrupt> : extra timer interrupt 

   3.2% ( 10.5)                 X : do_setitimer (it_real_fn) 

   2.6% (  8.5)        orageclock : schedule_timeout (process_timeout)

   1.3% (  4.3)             urxvt : schedule_timeout (process_timeout)

   1.1% (  3.5)   xfce-mcs-manage : schedule_timeout (process_timeout)

   0.7% (  2.4)       <interrupt> : ide0

   0.6% (  2.0)          cpufreqd : queue_delayed_work_on (delayed_work_timer_fn) 
```

i maggiori wakeups sono acpi (potrebbe essere a causa thinkpad_acpi, che spero che fra un po' correggeranno) e i8042, che da quanto ho capito dovrebbe essere la tastiera (!), ma non riesco a eliminarlo nella configurazione del kernel.

per i vari ehci_hcd:* non saprei che fare (CONFIG_USB_SUSPEND è abilitato)

----------

## lavish

L'unica cosa da fare e' killare tutti i processi attivi, partendo da una configurazione minimale e attivarli uno a uno per vedere cos'e' la causa dei wakeups.

Quelli dovuti a i8042 sono generati da mouse e tastiera e non influiscono molto sul consumo energetico. Prova ad attendere una decina di secondi con powertop attivo Guglie, vedrai che spariranno  :Wink: 

Riguardo ai wakeups dell'ACPI, si', e' vero che thinkpad_acpi genera qualcosa, ma non certo 60/s. Molto probabilmente stai usando un system monitor che fa refresh selvaggi. Per questo il mio sysmonitor e' uno script sh con frequenza di aggiornamento ogni 5 secondi. Consideranto tutti i wakeups che genere ad ogni ciclo, complessivamente acpi da me sta fra 0.5-1 wakeup/s.

hdaps e' una gran figata, ma per cosa lo usi? Se non e' necessario puoi toglierlo... io lo carico solo quando mi serve.

Ultima cosa che vale sia per Guglie che per MeMyselfAndI: powertop puo' generare output parecchio strani a volte.. per esempio oggi mi segnava 300 wakeups/s su

```
ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb4, ipw2200, radeon@pci:0000:01:00.0, Intel 82801DB-ICH4, eth0
```

mentre stavo scaricando da firefox.

Poi ho capito che era giusto cosi' perche' non era ff a generarli ma ipw2200.

Si tratta solo di provare piu' e piu' configurazioni  :Wink: 

Cheers

----------

## Guglie

 *lavish wrote:*   

> L'unica cosa da fare e' killare tutti i processi attivi, partendo da una configurazione minimale e attivarli uno a uno per vedere cos'e' la causa dei wakeups.

 

avevi ragione: ho tolto xfce4-battery-panel e i wapeups di acpi sono scesi drasticamente. con la patch di radeon sono scesi pure quelli di ehci:*. hdaps l'ho messo come modulo e i wakeups di i8042 effettivamente non sembrano influire molto sul consumo.

grazie mille lavish  :Wink: 

```
     PowerTOP version 1.6       (C) 2007 Intel Corporation

Cn          Avg residency (20s) Long term residency avg

C0 (cpu running)        ( 0.1%)

C1                0.0ms ( 0.0%)                   0.0ms

C2                0.0ms ( 0.0%)                   3.3ms

C3                1.1ms ( 0.0%)                   0.7ms

C4               61.0ms (99.8%)                  10.9ms

Wakeups-from-idle per second : 16.4

Power usage (ACPI estimate): 13.4W (2.0 hours) (long term: 15.1W,/1.7h)

Top causes for wakeups:

  23.8% (  4.0)             urxvt : schedule_timeout (process_timeout)

  12.5% (  2.1)       <interrupt> : acpi

  11.9% (  2.0)          cpufreqd : queue_delayed_work_on (delayed_work_timer_fn)

  11.9% (  2.0)   xfce-mcs-manage : schedule_timeout (process_timeout)

  11.9% (  2.0)                 X : do_setitimer (it_real_fn)

   6.0% (  1.0)       xfce4-panel : schedule_timeout (process_timeout)

   4.8% (  0.8)       <interrupt> : extra timer interrupt

   3.0% (  0.5)       <interrupt> : ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:

   3.0% (  0.5)     <kernel core> : queue_delayed_work_on (delayed_work_timer_fn) 1:00.0

   3.0% (  0.5)                ip : e1000_intr (e1000_watchdog)

   2.1% (  0.3)          cpufreqd : do_setitimer (it_real_fn)

   1.5% (  0.2)     <kernel core> : neigh_table_init_no_netlink (neigh_periodic_timer) 
```

----------

## lavish

Aggiornato l'how-to ad hrt10 e aggiunto NO_HZ per amd64 (disponibile gia' da 2.6.22-rc4 e non da 2.6.23, come detto in precedenza da Linus   :Confused:  )

----------

## drizztbsd

Attenzione che il 2.6.22_rc4 non crea /dev/loop da solo.

Per sistemare sto problemino:

```
wget http://dev.gentoo.org/~drizzt/trash/loop.tar.bz2 ; sudo tar xpf loop.tar.bz2 -C /dev ; sudo tar xpf loop.tar.bz2 -C /lib/udev/devices
```

p.s. cancellate la roba in /lib/udev/devices quando fixxeranno il problema

----------

## comio

 *Drizzt Do` Urden wrote:*   

> Attenzione che il 2.6.22_rc4 non crea /dev/loop da solo.
> 
> Per sistemare sto problemino:
> 
> ```
> ...

 

non mi prendo responsabilità, ma ecco un ebuild che automizza la cosa:

```

-- DEPRECATO : vedi post successivo! --

cassini powersave-sources # cat /usr/portage/local/comio/sys-kernel/powersave-sources/powersave-sources-2.6.22_rc4.ebuild 

# Copyright 1999-2007 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $$

ETYPE="sources"

#K_WANT_GENPATCHES="base extras"

#K_GENPATCHES_VER="1"

K_NOSETEXTRAVERSION="yes"

K_SECURITY_UNSUPPORTED="1"

inherit kernel-2

detect_version

detect_arch

DESCRIPTION="Software Suspend 2 + Gentoo patchset sources + HRTimers"

HOMEPAGE="http://forums.gentoo.org/viewtopic-t-564588.html"

SUSPEND2_VERSION="2.2.10.1"

SUSPEND2_TARGET="2.6.22-rc4"

SUSPEND2_SRC="suspend2-${SUSPEND2_VERSION}-for-${SUSPEND2_TARGET}"

SUSPEND2_URI="http://www.suspend2.net/downloads/all/${SUSPEND2_SRC}.patch.bz2"

HRTIMERS_VERSION="11"

HRTIMERS_TARGET="2.6.22-rc4"

HRTIMERS_SRC="patch-${HRTIMERS_TARGET}-hrt${HRTIMERS_VERSION}"

HRTIMERS_URI="http://www.tglx.de/projects/hrtimers/${HRTIMERS_TARGET}/${HRTIMERS_SRC}.patch"

OTHERS_SRC="radeon_vblanks.patch"

OTHERS_URI="http://www.minimalblue.com/ftp/public/linux/powersave-patches/radeon_vblanks.patch"

DRIZZT_PATCH_SRC="loop"

DRIZZT_PATCH_URI="http://dev.gentoo.org/~drizzt/trash/${DRIZZT_PATCH_SRC}.tar.bz2"

UNIPATCH_LIST="${DISTDIR}/${HRTIMERS_SRC}.patch ${DISTDIR}/${OTHERS_SRC} ${DISTDIR}/${SUSPEND2_SRC}.patch.bz2"

UNIPATCH_STRICTORDER="yes"

SRC_URI="${KERNEL_URI} ${SUSPEND2_URI} ${HRTIMERS_URI} ${OTHERS_URI} ${DRIZZT_PATCH_URI}"

KEYWORDS="~amd64 ~x86"

RESTRICT=""

RDEPEND="${RDEPEND}

                >=sys-apps/suspend2-userui-0.7.1

                >=sys-power/hibernate-script-1.95"

K_EXTRAEINFO="If there are issues with this kernel, please direct any

queries to the suspend2-users mailing list:

http://lists.suspend2.net/mailman/listinfo/suspend2-users/"

src_unpack() {

        kernel-2_src_unpack

}

src_install() {

        kernel-2_src_install

        einfo "dodir..."

#       dodir /dev

        dodir /lib/udev/devices

        einfo "tar"

#       tar xpf ${DISTDIR}/${DRIZZT_PATCH_SRC}.tar.bz2 -C ${D}/dev

        tar xpf ${DISTDIR}/${DRIZZT_PATCH_SRC}.tar.bz2 -C ${D}/lib/udev/devices

}

pkg_postinst() {

        kernel-2_pkg_postinst

        einfo "For more info on this patchset, and how to report problems, see:"

        einfo "${HOMEPAGE}"

}

```

----------

## drizztbsd

Update

È uscito il kernel 2.6.22_rc5 che sistema il problema del /dev/loop

Ho aggiunto nel mio overlay l'ebuild per hrt1 + suspend2 + radeon porchetta: http://overlays.gentoo.org/dev/drizzt/browser/sys-kernel/powersave-sources/powersave-sources-2.6.22_rc5.ebuild

----------

## comio

 *Drizzt Do` Urden wrote:*   

> Update
> 
> È uscito il kernel 2.6.22_rc5 che sistema il problema del /dev/loop
> 
> Ho aggiunto nel mio overlay l'ebuild per hrt1 + suspend2 + radeon porchetta: http://overlays.gentoo.org/dev/drizzt/browser/sys-kernel/powersave-sources/powersave-sources-2.6.22_rc5.ebuild

 

Il kernel 2.6.22 si porta un po' di cambiamenti dietro. Ho fatto un paio di patch per le cose che uso:

patch per vmware-modules-1.0.0.15-r1 (serve per vmware-server):

http://www.comio.it/patch/vmware-modules-1.0.0.15-r1-kernel-2.6.22.patch

patch per vmware-modules-1.0.0.16 (serve per vmware-workstation e player):

http://www.comio.it/patch/vmware-modules-1.0.0.16-kernel-2.6.22.patch

patch per at-drivers-8.37.6-r1:

http://www.comio.it/patch/ati-drivers-8.37.6-r1-ioctl32.patch

Io ho usato autopatch di bashrc-ng per applicare le patch in oggetto.

ciao

luigi

----------

## comio

 *Drizzt Do` Urden wrote:*   

> Update
> 
> È uscito il kernel 2.6.22_rc5 che sistema il problema del /dev/loop
> 
> Ho aggiunto nel mio overlay l'ebuild per hrt1 + suspend2 + radeon porchetta: http://overlays.gentoo.org/dev/drizzt/browser/sys-kernel/powersave-sources/powersave-sources-2.6.22_rc5.ebuild

 

drizzt dovresti aggiustare il link. Inoltre ho notato un errore nell'espressione regolare per avere il numero di versione per hrt. Comunque non condivido di creare una "funzione" fra la revisione "-rX" ed il numero di versione di hrt. Il pacchetto ha dipendenze anche da suspend2 e da altre patch... diventa duro poi fare una revisione se qualche patch (non hrt) viene aggiornata. Preferisco quindi una gestione manuale  :Smile: 

imho

ciao

----------

## comio

Per chi fosse interessato, questo è l'ebuild del kernel che uso (powersave-sources-2.6.22.ebuild).

Feauture:

 Kernel Linux 2.6.22

 Gentoo Patches

 Suspend2 2.2.10.2

 High Resolution Timers patch

 Radeon vblanks patch

 Enable C3 patch e Bit Timers patch (da Powertop)

```

# Copyright 1999-2007 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header:$

ETYPE="sources"

K_WANT_GENPATCHES="base extras"

K_GENPATCHES_VER="1"

K_NOSETEXTRAVERSION="yes"

K_SECURITY_UNSUPPORTED="1"

inherit kernel-2

detect_version

detect_arch

DESCRIPTION="Software Suspend 2 + HRTimers"

HOMEPAGE="http://forums.gentoo.org/viewtopic-t-564588.html"

SUSPEND2_VERSION="2.2.10.2"

SUSPEND2_TARGET="2.6.22-rc6"

SUSPEND2_SRC="suspend2-${SUSPEND2_VERSION}-for-${SUSPEND2_TARGET}"

SUSPEND2_URI="http://www.suspend2.net/downloads/all/${SUSPEND2_SRC}.patch.bz2"

HRTIMERS_VERSION=1

HRTIMERS_TARGET="2.6.22"

HRTIMERS_SRC="patch-${HRTIMERS_TARGET}-hrt${HRTIMERS_VERSION}"

HRTIMERS_URI="http://www.tglx.de/projects/hrtimers/${HRTIMERS_TARGET}/${HRTIMERS_SRC}.patch"

RADEON_SRC="radeon_vblanks"

RADEON_URI="http://www.minimalblue.com/ftp/public/linux/powersave-patches/${RADEON_SRC}.patch"

ENABLEC3_SRC="enablec3"

ENABLEC3_URI="http://www.linuxpowertop.org/patches/${ENABLEC3_SRC}.patch"

BGTIMERS_SRC="kernel-2.6.22-rc1"

BGTIMERS_URI="http://www.linuxpowertop.org/patches/${BGTIMERS_SRC}.patch"

UNIPATCH_LIST="${DISTDIR}/${HRTIMERS_SRC}.patch ${DISTDIR}/${RADEON_SRC}.patch

        ${DISTDIR}/${BGTIMERS_SRC}.patch ${DISTDIR}/${SUSPEND2_SRC}.patch.bz2

        ${DISTDIR}/${ENABLEC3_SRC}.patch "

UNIPATCH_STRICTORDER="yes"

SRC_URI="${KERNEL_URI} ${SUSPEND2_URI} ${HRTIMERS_URI} ${RADEON_URI}

        ${BGTIMERS_URI} ${ENABLEC3_URI}

        ${GENPATCHES_URI} ${ARCH_URI}"

KEYWORDS="~amd64 ~x86"

RDEPEND="${RDEPEND}

                >=sys-apps/suspend2-userui-0.7.1

                >=sys-power/hibernate-script-1.95"

pkg_postinst() {

        kernel-2_pkg_postinst

        einfo "For more info on this patchset, and how to report problems, see:"

        einfo "${HOMEPAGE}"

}

```

----------

## lavish

Ottimo comio! Attualmente sono con l'rc7, ma aggiorno in serata con il tuo ebuild  :Smile: 

Solo un piccolo appunto "cosmetico": suspend2 ha cambiato nome in tuxonice

Ciao!

----------

## comio

 *lavish wrote:*   

> Ottimo comio! Attualmente sono con l'rc7, ma aggiorno in serata con il tuo ebuild 
> 
> Solo un piccolo appunto "cosmetico": suspend2 ha cambiato nome in tuxonice
> 
> Ciao!

 

se cambiate questa riga:

```

K_GENPATCHES_VER="1"

```

in

```

K_GENPATCHES_VER="2"

```

avete la -r1

----------

## lavish

comio, ma a te funziona? Qui non applica la patch per BGTIMERS...

Ho fatto un ebuild pure io, ma per decenza non lo posto (sarebbe il terzo  :Razz: )

----------

## comio

 *lavish wrote:*   

> comio, ma a te funziona? Qui non applica la patch per BGTIMERS...
> 
> Ho fatto un ebuild pure io, ma per decenza non lo posto (sarebbe il terzo )

 

```

>>> Unpacking linux-2.6.22.tar.bz2 to /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r1/work

 * genpatches-2.6.22-2.base.tar.bz2 unpacked

 * genpatches-2.6.22-2.extras.tar.bz2 unpacked

 * Applying 1000_linux-2.6.22.1.patch (-p0+) ...                                                                                                                                                         [ ok ]

 * Applying 2700_usbaudio-logitech-id.patch (-p0+) ...                                                                                                                                                   [ ok ]

 * Applying 2900_powernow-k8-acpi.patch (-p0+) ...                                                                                                                                                       [ ok ]

 * Applying 4105_dm-bbr.patch (-p0+) ...                                                                                                                                                                 [ ok ]

 * Applying 4200_fbsplash-0.9.2-r5.patch (-p0+) ...                                                                                                                                                      [ ok ]

 * Applying 4205_vesafb-tng-1.0-rc2.patch (-p0+) ...                                                                                                                                                     [ ok ]

 * Applying 4300_squashfs-3.2-r2.patch (-p0+) ...                                                                                                                                                        [ ok ]

 * Applying 4405_alpha-sysctl-uac.patch (-p0+) ...                                                                                                                                                       [ ok ]

 * Applying patch-2.6.22-hrt1.patch (-p0+) ...                                                                                                                                                           [ ok ]

 * Applying radeon_vblanks.patch (-p0+) ...                                                                                                                                                              [ ok ]

 * Applying kernel-2.6.22-rc1.patch (-p0+) ...                                                                                                                                                           [ ok ]

 * Applying suspend2-2.2.10.2-for-2.6.22-rc6.patch.patch (-p0+) ...                                                                                                                                      [ ok ]

 * Applying enablec3.patch (-p0+) ...    

```

A me applica tutte le patch (bigtimers è "kernel-2.6.22-rc1.patch")

Qualcuno ha il riferimento a qualche altra patch "powersave"-oriented?

ciao

----------

## drizztbsd

È colpa di patch stable che non digerisce le patch con CRLF (formato dos) come terminatore.

Ho fixxato l'ebuild, ora dovrebbe andare

----------

## lavish

Causa del problema individuata once again da Flameeyes (a cui vanno i credits)  :Wink: 

----------

## riverdragon

Ovvero, come si risolve il problema? Io ho scaricato le patch e le ho applicate a mano, ma l'unica che è riuscita a dare risultati è quella per hrtimers. Le altre due non sono riuscite a applicare niente di niente, sono fallite tutte le modifiche.

Per la cronaca, il metodo per applicare le patch è sempre il solito, da dentro la cartella dei sorgenti

```
patch -p1 </path/to/patch
```

EDIT: forse con questo comando presente nell'ebuild di drizzt?

```
sed 's/\r$//' "${DISTDIR}"/${BGTIMERS_SRC}.patch > "${T}"/${BGTIMERS_SRC}.patch
```

Che tradotto per me che applico le patch a mano diventerebbe

```
sed 's/\r$//' nomepatch.patch > nomepatch_fixed.patch
```

o sbaglio?

EDIT2: confermo, ora sono riuscito ad applicare correttamente sia la patch enablec3 che la patch kernel-2.6.22-r1.

----------

## lucapost

Dall'ultimo ebuild di comio postato:

```
> ~/ebuild /usr/local/overlays/local-portage/sys-kernel/powersave-sources/powersave-sources-2.6.22-r1.ebuild digest

Appending /usr/local/overlays/local-portage to PORTDIR_OVERLAY...

>>> Downloading 'http://distfiles.gentoo.org/distfiles/patch-2.6.22-hrt1.patch'

--17:30:54--  http://distfiles.gentoo.org/distfiles/patch-2.6.22-hrt1.patch

           => `/home/ftp/distfiles/patch-2.6.22-hrt1.patch'

Resolving distfiles.gentoo.org... 64.50.236.52, 216.165.129.135, 156.56.247.195, ...

Connecting to distfiles.gentoo.org|64.50.236.52|:80... connected.

HTTP request sent, awaiting response... 404 Not Found

17:30:55 ERROR 404: Not Found.

No digest file available and download failed.

>>> Downloading 'http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/patch-2.6.22-hrt1.patch'

--17:30:55--  http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/patch-2.6.22-hrt1.patch

           => `/home/ftp/distfiles/patch-2.6.22-hrt1.patch'

Resolving distro.ibiblio.org... 152.46.7.109

Connecting to distro.ibiblio.org|152.46.7.109|:80... connected.

HTTP request sent, awaiting response... 404 Not Found

17:30:57 ERROR 404: Not Found.

No digest file available and download failed.

>>> Downloading 'http://www.tglx.de/projects/hrtimers/2.6.22/patch-2.6.22-hrt1.patch'

--17:30:57--  http://www.tglx.de/projects/hrtimers/2.6.22/patch-2.6.22-hrt1.patch

           => `/home/ftp/distfiles/patch-2.6.22-hrt1.patch'

Resolving www.tglx.de... 213.239.205.147

Connecting to www.tglx.de|213.239.205.147|:80... connected.

HTTP request sent, awaiting response... 404 Not Found

17:31:02 ERROR 404: Not Found.

No digest file available and download failed.

!!! Couldn't download 'patch-2.6.22-hrt1.patch'. Aborting.

!!! File patch-2.6.22-hrt1.patch doesn't exist, can't update Manifest

```

Ho trovato solo questa: http://www.tglx.de/projects/hrtimers/2.6.22/patch-2.6.22-hrt3.patch, qualcuno l'ha già provata? Basta cambiare la voce HRTIMERS_VERSION=3, giusto?

----------

## comio

 *lucapost wrote:*   

> Dall'ultimo ebuild di comio postato:
> 
> ```
> > ... tante scritte...
> 
> ...

 

Sì ogni volta che fa una patch... cancella le precedenti da quel direttorio... cosa un po' fastidiosa.

comunque ecco l'ebuild aggiornato:

powersave-sources/powersave-sources-2.6.22-r2.ebuild

```

# Copyright 1999-2007 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header:$

ETYPE="sources"

K_WANT_GENPATCHES="base extras"

K_GENPATCHES_VER="2"

K_NOSETEXTRAVERSION="yes"

K_SECURITY_UNSUPPORTED="1"

inherit kernel-2

detect_version

detect_arch

DESCRIPTION="Software Suspend 2 + HRTimers"

HOMEPAGE="http://forums.gentoo.org/viewtopic-t-564588.html"

SUSPEND2_VERSION="2.2.10.2"

SUSPEND2_TARGET="2.6.22-rc6"

SUSPEND2_SRC="suspend2-${SUSPEND2_VERSION}-for-${SUSPEND2_TARGET}"

SUSPEND2_URI="http://www.suspend2.net/downloads/all/${SUSPEND2_SRC}.patch.bz2"

HRTIMERS_VERSION=3

HRTIMERS_TARGET="2.6.22"

HRTIMERS_SRC="patch-${HRTIMERS_TARGET}-hrt${HRTIMERS_VERSION}"

HRTIMERS_URI="http://www.tglx.de/projects/hrtimers/${HRTIMERS_TARGET}/${HRTIMERS_SRC}.patch"

RADEON_SRC="radeon_vblanks"

RADEON_URI="http://www.minimalblue.com/ftp/public/linux/powersave-patches/${RADEON_SRC}.patch"

ENABLEC3_SRC="enablec3"

ENABLEC3_URI="http://www.linuxpowertop.org/patches/${ENABLEC3_SRC}.patch"

BGTIMERS_SRC="kernel-2.6.22-rc1"

BGTIMERS_URI="http://www.linuxpowertop.org/patches/${BGTIMERS_SRC}.patch"

ONDEMAND_SRC="ondemand-fix"

ONDEMAND_URI="http://www.linuxpowertop.org/patches/${ONDEMAND_SRC}.patch"

APPLETOUCH_SRC="appletouch"

APPLETOUCH_URI="http://www.linuxpowertop.org/patches/${APPLETOUCH_SRC}.patch"

UNIPATCH_LIST="${DISTDIR}/${HRTIMERS_SRC}.patch ${DISTDIR}/${RADEON_SRC}.patch

        ${DISTDIR}/${BGTIMERS_SRC}.patch ${DISTDIR}/${SUSPEND2_SRC}.patch.bz2

        ${DISTDIR}/${ENABLEC3_SRC}.patch ${DISTDIR}/${ONDEMAND_SRC}.patch

        ${DISTDIR}/${APPLETOUCH_SRC}.patch"

UNIPATCH_STRICTORDER="yes"

SRC_URI="${KERNEL_URI} ${SUSPEND2_URI} ${HRTIMERS_URI} ${RADEON_URI}

        ${BGTIMERS_URI} ${ENABLEC3_URI} ${ONDEMAND_URI} ${APPLETOUCH_URI}

        ${GENPATCHES_URI} ${ARCH_URI}"

KEYWORDS="~amd64 ~x86"

RDEPEND="${RDEPEND}

                >=sys-apps/suspend2-userui-0.7.1

                >=sys-power/hibernate-script-1.95"

pkg_postinst() {

        kernel-2_pkg_postinst

        einfo "For more info on this patchset, and how to report problems, see:"

        einfo "${HOMEPAGE}"

}

```

----------

## lucapost

c'è qualcosa che non va anche in quest'ultimo ebuild:

```

....tante scritte....

 * Applying 4300_squashfs-3.2-r2.patch (-p0+) ...                                                                                                                                                             [ ok ]

 * Applying 4405_alpha-sysctl-uac.patch (-p0+) ...                                                                                                                                                            [ ok ]

 * Applying patch-2.6.22-hrt3.patch (-p0+) ...                                                                                                                                                                [ ok ]

 * Applying radeon_vblanks.patch (-p0+) ...                                                                                                                                                                   [ ok ]

 * Applying kernel-2.6.22-rc1.patch (-p0+) ...                                                                                                                                                                [ !! ]

 * Please attach /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/temp/kernel-2.6.22-rc1.err to any bug you may post.

!!! ERROR: sys-kernel/powersave-sources-2.6.22-r2 failed.

Call stack:

  ebuild.sh, line 1621:   Called dyn_unpack

  ebuild.sh, line 753:   Called qa_call 'src_unpack'

  ebuild.sh, line 44:   Called src_unpack

  ebuild.sh, line 1311:   Called kernel-2_src_unpack

  kernel-2.eclass, line 1010:   Called unipatch '  /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/genpatches-2.6.22-2.base.tar.bz2 /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/genpatches-2.6.22-2.extras.tar.bz2 /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/patch-2.6.22-hrt3.patch /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/radeon_vblanks.patch

        /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/kernel-2.6.22-rc1.patch /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/suspend2-2.2.10.2-for-2.6.22-rc6.patch.bz2

        /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/enablec3.patch /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/ondemand-fix.patch

        /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/distdir/appletouch.patch'

  kernel-2.eclass, line 851:   Called die

!!! Unable to dry-run patch.

!!! If you need support, post the topmost build error, and the call stack if relevant.

!!! A complete build log is located at '/var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/temp/build.log'.

!!! This ebuild is from an overlay: '/usr/local/overlays/local-portage'
```

----------

## comio

 *lucapost wrote:*   

> c'è qualcosa che non va anche in quest'ultimo ebuild:
> 
> ```
> 
> ....tante scritte....
> ...

 

cosa dice /var/tmp/portage/sys-kernel/powersave-sources-2.6.22-r2/temp/kernel-2.6.22-rc1.err'

giuro che io non ho avuto problemi :S

----------

## lucapost

ecco qua: http://www.infis.univ.trieste.it/~lucapost/kernel-2.6.22-rc1.err.txt

io non ci capisco nulla...

----------

## comio

 *lucapost wrote:*   

> ecco qua: http://www.infis.univ.trieste.it/~lucapost/kernel-2.6.22-rc1.err.txt
> 
> io non ci capisco nulla...

 

che versione di "patch" hai?

```

emerge -pv patch

```

ciao

----------

## lucapost

```
[ebuild   R   ] sys-devel/patch-2.5.9  USE="-build -static" 0 kB 
```

ho provato anche a ricompilare quest'ultimo pacchetto, ma ahimè...

----------

## comio

 *lucapost wrote:*   

> 
> 
> ```
> [ebuild   R   ] sys-devel/patch-2.5.9  USE="-build -static" 0 kB 
> ```
> ...

 

prova ad usare la -r1.

ciao

----------

## lucapost

Questo è l'ebuild di drizzt con le versioni aggiornate, compila correttamente.

```
# Copyright 1999-2007 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header:$

ETYPE="sources"

K_NOSETEXTRAVERSION="yes"

K_SECURITY_UNSUPPORTED="1"

inherit kernel-2

detect_version

detect_arch

DESCRIPTION="Software Suspend 2 + HRTimers"

HOMEPAGE="http://forums.gentoo.org/viewtopic-t-564588.html"

SUSPEND2_VERSION="2.2.10.2"

SUSPEND2_TARGET="2.6.22-rc6"

SUSPEND2_SRC="suspend2-${SUSPEND2_VERSION}-for-${SUSPEND2_TARGET}"

SUSPEND2_URI="http://www.suspend2.net/downloads/all/${SUSPEND2_SRC}.patch.bz2"

HRTIMERS_VERSION="3"

HRTIMERS_TARGET=${PV/_rc/-rc}

HRTIMERS_SRC="patch-${HRTIMERS_TARGET}-hrt${HRTIMERS_VERSION}"

HRTIMERS_URI="http://www.tglx.de/projects/hrtimers/${HRTIMERS_TARGET}/${HRTIMERS_SRC}.patch"

RADEON_SRC="radeon_vblanks"

RADEON_URI="http://www.minimalblue.com/ftp/public/linux/powersave-patches/${RADEON_SRC}.patch"

BGTIMERS_SRC="kernel-2.6.22-rc1"

BGTIMERS_URI="http://www.linuxpowertop.org/patches/${BGTIMERS_SRC}.patch"

UNIPATCH_LIST="${DISTDIR}/${HRTIMERS_SRC}.patch ${DISTDIR}/${RADEON_SRC}.patch

        ${T}/${BGTIMERS_SRC}.patch ${DISTDIR}/${SUSPEND2_SRC}.patch.bz2"

UNIPATCH_STRICTORDER="yes"

SRC_URI="${KERNEL_URI} ${SUSPEND2_URI} ${HRTIMERS_URI} ${RADEON_URI}

        ${BGTIMERS_URI}"

KEYWORDS="~amd64 ~x86"

RDEPEND="${RDEPEND}

                >=sys-apps/suspend2-userui-0.7.1

                >=sys-power/hibernate-script-1.95"

pkg_postinst() {

        kernel-2_pkg_postinst

        einfo "For more info on this patchset, and how to report problems, see:"

        einfo "${HOMEPAGE}"

}

pkg_setup() {

        ebegin "Apply a dos2unix to ${BGTIMERS_SRC}.patch"

        sed 's/\r$//' "${DISTDIR}"/${BGTIMERS_SRC}.patch > "${T}"/${BGTIMERS_SRC}.patch

        eend $?

}
```

----------

## comio

 *lucapost wrote:*   

> Questo è l'ebuild di drizzt con le versioni aggiornate, compila correttamente.
> 
> ```
> 
> pkg_setup() {
> ...

 

Aggiungerò questo. Ma con patch 2.5.9-r1 io non ho bisogno di cambiare in \cr :S

ciao

----------

## unz

```
HRTIMERS_VERSION="4" 
```

sta variabile può essere omessa o automatizzata tramite comando tipo HRTIMERS_VERSION="4" emerge powersave-sources ?

EDIT:

La versione 4 non compila. 

```
  GEN     .version

  CHK     include/linux/compile.h

  UPD     include/linux/compile.h

  CC      init/version.o

  LD      init/built-in.o

  LD      .tmp_vmlinux1

arch/i386/kernel/built-in.o: In function `hpet_enable':

(.init.text+0x87b4): undefined reference to `hpet_get_virt_address'

arch/i386/kernel/built-in.o: In function `hpet_late_init':

hpet.c:(.init.text+0x8ab2): undefined reference to `hpet_get_virt_address'

make: *** [.tmp_vmlinux1] Error 1

```

EDIT2: E' uscita la 5. Ho notato però che la versione del kernel nell'ebuild non è corretta, non porta l'aggiunta rc, che in teoria dovrebbe avere.

----------

## comio

meglio non automatizzare. preferisco fare un -rX ad ogni variazione.

 *unz wrote:*   

> 
> 
> ```
> HRTIMERS_VERSION="4" 
> ```
> ...

 

----------

## unz

Aggiungendo la rc, la patch schiatta. Senza 

```
* Applying patch-2.6.22-hrt5.patch (-p0+) ... [ok]
```

----------

## comio

 *unz wrote:*   

> Aggiungendo la rc, la patch schiatta. Senza 
> 
> ```
> * Applying patch-2.6.22-hrt5.patch (-p0+) ... [ok]
> ```
> ...

 

siamo alla rev. 6 di HRTIMER... troppi aggiornamenti in così poco tempo  :Smile: 

ciao

----------

## unz

 *comio wrote:*   

>  *unz wrote:*   Aggiungendo la rc, la patch schiatta. Senza 
> 
> ```
> * Applying patch-2.6.22-hrt5.patch (-p0+) ... [ok]
> ```
> ...

 

 :Shocked:  l'ho compilato alle 16:00

----------

## riverdragon

Comio, proveresti ad applicare la patch enablec3 a mano per poi scrivere qui i risultati?

Da me, sia sul kernel 2.6.22-gentoo che su 2.6.22-gentoo-r1, va a buon fine solo una delle modifiche, le altre saltano. Noto anche che nell'ebuild di drizzt tale patch non viene applicata.

Ho compilato il kernel comunque, e non ho notato stranezze, a parte le differenze di stima della durata della batteria da parte di acpi: a volte segnala circa tre ore, a volte non più di due ore e venti.

----------

## drizztbsd

Se esce una versione nuova è inutile che modificate l'ebuild (vero lucapost?)

Basta che lo rinominiate come powersave-sources-2.6.22-r6.ebuild (per hrt6, -r7 per hrt7 e così via)

----------

## comio

 *drizztbsd wrote:*   

> Se esce una versione nuova è inutile che modificate l'ebuild (vero lucapost?)
> 
> Basta che lo rinominiate come powersave-sources-2.6.22-r6.ebuild (per hrt6, -r7 per hrt7 e così via)

 

drizztbsd, capisco l'automatismo ma non lo condivido.

Ipotesi, esce una versione modificata di un'altra patch che non sia rhtimer... come fai? (penso a suspend2/tuxonice, piuttosto che alle gentoo-patches).

ciao

luigi

----------

## unz

Appoggio comio. In un primo momento anche io ero dell'idea di automatizzare, ma proprio la patch hrt è cambiata 3 volte in un giorno ... è dura da inseguire. E poi mica stiamo a compilare kernel ogni ora  :Very Happy: 

Tornando però al succo, e non all'installazione. Con questo kernel le applicazioni non sono molto sveglie, ci mettono un pò a rispondere, sebbene abbia impostato a 1000 la Timer Frequency.

Ci sono diverse opzioni che limitano i wakeups, ma forse ho esagerato. Avete una combinazione che sia una via di mezzo tra il risparmio di corrente e quello di tempo?

----------

## lavish

 *unz wrote:*   

> Tornando però al succo, e non all'installazione. Con questo kernel le applicazioni non sono molto sveglie, ci mettono un pò a rispondere, sebbene abbia impostato a 1000 la Timer Frequency.
> 
> Ci sono diverse opzioni che limitano i wakeups, ma forse ho esagerato. Avete una combinazione che sia una via di mezzo tra il risparmio di corrente e quello di tempo?

 

Usando le patch che ho esposto nel primo post di questo thread, io non noto un degrado di responsivita'  :Smile: 

----------

## unz

Effettivamente, dando come governor ondemand, il sistema si riprende. Se imposto powersave si addormenta molto di più rispetto al kernel gentoo che avevo prima.

----------

## cyclothymia

ma questa guida e quella al risparmio energetico presente nella documentazione ufficiale sono compatibili? cioe', possono essere applicate entrambe contemporaneamente?

----------

## lavish

 *cyclothymia wrote:*   

> ma questa guida e quella al risparmio energetico presente nella documentazione ufficiale sono compatibili? cioe', possono essere applicate entrambe contemporaneamente?

 

Yessir!

Questa e' una guida per ridurre i consumi specifica al kernel e ai programmi usati, mentre l'altra si occupa della gestione del sistema. Sono quindi completamente integrabili  :Wink: 

----------

## Apetrini

 *skypjack wrote:*   

> Ehy, lavish, magari hai un'idea: io un Core Duo (non 2) che "fischia" (non ridere, letteralmente fa questo davvero) quando va in C3, da cui come soluzione inibire C3 e farlo variare fra C1 e C2 solamente. Questo ovviamente aumenta i miei consumi, ma mi permette di non impazzire. Sai di soluzioni alternative?
> 
> Grazie
> 
> 

 

Prova con 

```
 echo 2 > /sys/module/processor/parameters/max_cstate
```

Ho trovato anche una mini guida http://www.thinkwiki.org/wiki/Problem_with_high_pitch_noises#Limit_ACPI_CPU_power_states

----------

## riverdragon

Mi permetto di segnalare http://www.lesswatts.org/ che è una nuova iniziativa di Intel.

Contiene un gran quantitativo di tips & tricks, e presenta un buon numero di progetti che puntano al risparmio energetico.

Spero che il kernel 2.6.23 non si faccia aspettare troppo perché sembra (almeno su x86) che porti un buon numero di migliorie e abbassi ulteriormente i consumi di un 2.6.22 tickless.

----------

## unz

Qualcuno ha aggiornato questo ebuild per il kernel 2.6.23?

----------

## lavish

 *unz wrote:*   

> Qualcuno ha aggiornato questo ebuild per il kernel 2.6.23?

 

Here you go http://www.minimalblue.com/ftp/public/gentoo/sys-kernel/powersave-sources/powersave-sources-2.6.23-r3.ebuild

 :Wink: 

----------

## lavish

Ebuild aggiornato con le ultime versioni di "tutto"  :Razz: 

http://www.minimalblue.com/ftp/public/gentoo/sys-kernel/powersave-sources/powersave-sources-2.6.23-r4.ebuild

----------

## MeMyselfAndI

 *lavish wrote:*   

> Ebuild aggiornato con le ultime versioni di "tutto" 
> 
> http://www.minimalblue.com/ftp/public/gentoo/sys-kernel/powersave-sources/powersave-sources-2.6.23-r4.ebuild

 

Se permetti un appunto manca il patchset "extra" che tra l'altro contiene il nuovo framebuffer che va a sostituire vesafb-tng.

----------

## lavish

 *MeMyselfAndI wrote:*   

>  *lavish wrote:*   Ebuild aggiornato con le ultime versioni di "tutto" 
> 
> http://www.minimalblue.com/ftp/public/gentoo/sys-kernel/powersave-sources/powersave-sources-2.6.23-r4.ebuild 
> 
> Se permetti un appunto manca il patchset "extra" che tra l'altro contiene il nuovo framebuffer che va a sostituire vesafb-tng.

 

Manca perche' non lo voglio nei miei sorgenti  :Razz: 

Se vi serve:

```

- K_WANT_GENPATCHES="base"

+ K_WANT_GENPATCHES="base extras"

```

That's all  :Wink: 

----------

## lavish

Aggiornamento di tuxonice

http://www.minimalblue.com/ftp/public/gentoo/sys-kernel/powersave-sources/powersave-sources-2.6.23-r5.ebuild

 :Wink: 

----------

## Scen

Grande lavish  :Cool: 

Ho provato questo patchset su un notebook, e devo dire che sembra funzionare bene (però devo ancora farmi le ossa nella configurazione di Gentoo Linux su notebook  :Razz: ).

Proposta: sarebbe mooolto comodo avere questo ebuild su un overlay (sunrise?) in modo da aggiornarlo e mantenerlo più facilmente.

BWT, ho visto che tempo fa drizzt l'aveva fatto, però non è + stato aggiornato.

----------

## lavish

 *Scen wrote:*   

> Proposta: sarebbe mooolto comodo avere questo ebuild su un overlay (sunrise?) in modo da aggiornarlo e mantenerlo più facilmente.

 

Proposta scartata  :Smile: 

Questo e' l'ultimo ebuild dei powersave-sources. Dal 2.6.24 non esisteranno piu', perche' le patch con i miglioramenti dal punto di vista dei consumi presenti in hrt, sono state incluse nel vanilla  :Smile: 

```
0 # uname -a

Linux blackhole 2.6.24-rc4 #1 Thu Dec 6 01:40:24 CET 2007 i686 Intel(R) Pentium(R) M processor 1.70GHz GenuineIntel GNU/Linux
```

 :Cool: 

----------

## Scen

 *lavish wrote:*   

> Proposta scartata 
> 
> Questo e' l'ultimo ebuild dei powersave-sources. Dal 2.6.24 non esisteranno piu', perche' le patch con i miglioramenti dal punto di vista dei consumi presenti in hrt, sono state incluse nel vanilla 
> 
> ```
> ...

 

Eh eh eh, buono a sapersi allora  :Cool: 

----------

