mercoledì 29 giugno 2011

Kernel 2.6.38: la batteria si scarica rapidamente? La soluzione

In queste ore sta facendo molto parlare di se il workaround di Phoronix che risolve un bug del kernel 2.6.38.

Questo bug portava ad un aumento sensibile dei consumi e quindi minor durate delle batterie dei portatili.

Occorre però fare chiarezza su un paio di cose:
  1. questo è davvero un bug del kernel? Vedremo che la risposta è un: ni.
  2. Tutti i sistemi ne sono affetti? Vedremo che la risposta è: no.
Ma facciamo un passo indietro.

Il problema è nato tempo fa a causa di questo commit al kernel che nelle ultime righe dice:
"If ASPM is disabled because the BIOS doesn't hand over control then we won't touch the registers".

Se il bios non è in grado di rilevare e gestire l'ASPM (Active State Power Management), il sistema di gestione dello stato di alimentazione per dispositivi PCI Express che trova sulla macchina, e disattiva questa funzionalità, il kernel semplicemente si attiene a questa segnalazione e non va a forzare la riattivazione dell'ASPM.

Il problema allora non è del kernel, bensì del bios.

A mio avviso questa è una scelta corretta. Non è il kernel che deve occuparsi di gestire l'infinità di hardware in circolazione, è il produttore che deve assicurarsi che almeno sulla sua macchina ci sia compatibilità totale fra bios e hardware, almeno così come esce dalla fabbrica, ed il sistema operativo deve potersi fidare di quanto dice il bios.

Da tutto ciò si deduce anche che non tutti i computer hanno questo problema, ma solo quelli dove il bios e hardware non collaborano.

Per scoprire se il proprio sistema è affetto dal problema, da terminale è sufficiente dare il comando (riportato da telperion che ringrazio):

dmesg | grep aspm

Se il comando NON restituisce risultati, NON ci sono problemi.

Se malauguratamente invece riscontrate problemi, gli amici di Chimera Revo vi indicheranno la soluzione.

Ciao ciao.
GdS