Problemi di temperatura di Ubuntu 10.04 Lucid Lynx - Soluzione - Parte 2: Powernowd, LM-Sensors e Plymouth

Posted by RedBlue on May 29, 2010 · 5 mins read

Ed ecco la seconda ed ultima parte della guida per sistemare (non voglio ancora scrivere risolvere) il problema di Lucid con la temperatura, dovuto al driver ATI open source. Il grosso è stato fatto con la prima parte, ora daremo una sistemata allo scaling della CPU, installeremo una piccola applet che ci consentirà di monitorare in tempo reale la temperatura (per essere sicuri che tutto vada al meglio), e riconfigureremo Plymouth, il nuovo splashscreen di avvio e chiusura del sistema operativo, che con i driver proprietari non va daccordissimo..

Primo passo - Installare Powernowd

In realtà questo non c'entra nulla col comparto video, ma smanettando mi sono reso conto che sul mio notebook le applet di variazione della frequenza della CPU funzionavano regolarmente senza che fosse installato né PowernowdCpufreqdCpufrequtils.. Mah.. Misteri di Linux.. Cmq a scanso di equivoci ho provveduto ad installare Powernowd (Cpufreqd ancora non sono riuscito a configurarlo come si deve, quindi preferisco non usarlo), dando semplicemente:

sudo apt-get install powernowd

Secondo passo - Configurare i sensori di temperatura

Per prima cosa provvediamo ad installare il necessario per usare i sensori di temperatura probabilmente presenti sul nostro notebook:

sudo apt-get install lm-sensors sensors-applet

Poi, sempre da linea di comando, vediamo quali moduli dobbiamo caricare all'avvio:

sudo sensors-detect

A questo punto rispondete sempre yes alle varie domande che vi verrano poste e alla fine vi verranno indicati dei moduli da caricare all'avvio; inseriteli in /etc/modules e riavviate, poi aggiungete al pannello l'applet Hardware Sensors Monitor e il gioco è fatto.. ;)

Ehm.. Quasi.. Perchè ad esempio il modulo relativo al sensore di temperatura del mio notebook, chiamato k10temp, non è incluso ancora nel kernel, lo sarà dalla versione 2.6.34, purtroppo però i driver ATI proprietari non sono ancora compatibili con tale kernel (cosa provata e riprovata, fidatevi), quindi è necessario provvedere a compilare questo benedetto modulo "a manina"..

ATTENZIONE!! Questa parte della guida è rivolta solo a coloro che non posso usare direttamente i sensori di temperatura, precisamente mi riferisco al seguente hardware indicato dal comando sensors-detect, indicato anche qui, sulla pagina ufficiale del progetto:

Family 10h CPU, family 11h CPU

Bene, se avete questo sensore, scaricate i sorgenti del modulo da qui, decomprimeteli in una directory e poi, prima di passare alla compilazione vera e propria, installate i sorgenti del kernel:

sudo apt-get install linux-source

A questo punto entrate nella directory dove avete decompresso i sorgenti ed eseguite il make in questo modo:

sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

Poi carichiamo temporaneamente il modulo, per testare se funziona:

sudo insmod k10temp.ko

Ed effettuiamo il test:

sensors

Se funziona vedremo visualizzate le informazioni sul/sui sensore/i, oltre ovviamente alle temperature, altrimenti possiamo cancellare tutto e fermarci, vuol dire che il sensore non è compatibile nemmeno con questo modulo. Se il sensore ora viene letto, possiamo aggiungere il modulo al sistema permanentemente e caricarlo all'avvio:

sudo cp k10temp.ko /lib/modules/$(uname -r)/kernel/drivers/hwmon
sudo depmod
sudo modprobe k10temp
echo 'k10temp' | sudo tee -a /etc/modules >/dev/null

E riavviamo.. A questo punto l'applet di cui parlavo prima dovrebbe funzionare correttamente.. ;)

Terzo passo - Riconfigurare Plymouth

Il problema è che Plymouth usa il KMS (Kernel Mode Settings, praticamente è il kernel ad adattare la risoluzione dello schermo), pienamente supportato dai driver open, ma non dai proprietari (che invece ricorrono a X.Org).. Procediamo installando per prima cosa hwinfo e v86d:

sudo apt-get hwinfo v86d

Diamo il comando:

sudo hwinfo --framebuffer

Otterremo una lista di linee tipo questa:

Mode 0x0323: 1024x768 (+4096), 24 bits

Scegliamo la risoluzione che vogliamo (io ho indicato quella che ho scelto) e prendiamone nota, poi dobbiamo fare lo stesso con il monitor:

xrandr

A questo punto abbiamo tutto, ovviamente scegliamo una risoluzione compatibile con quelle visualizzate prima. Supponiamo di usare la stessa che ho scelto io, dobbiamo riconfigurare Grub:

sudo gedit /etc/default/grub

Dovete modifica le due linee corrispondenti a GRUB_CMDLINE_LINUX_DEFAULT e GRUB_GFXMODE e modificatele in:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1024x768-24,mtrr=3,scroll=ywrap"
GRUB_GFXMODE=1024x768

Ovviamente se scegliete una risoluzione diversa dovete mettere quella.. Ora modifichiamo il seguente file:

sudo gedit /etc/initramfs-tools/modules

Aggiungendo alla fine la linea:

uvesafb mode_option=1024x768-24 mtrr=3 scroll=ywrap

Ovviamente anche qui se avete scelto una risoluzione diversa dovete indicare quella. Non ci resta che dare:

echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

Abbiamo quasi finito, dobbiamo solo aggiornare i file di sistema:

sudo update-grub2
sudo update-initramfs -u

Ora possiamo riavviare e testare il corretto funzionamento di Plymouth.

Mi rendo conto che è una procedura molto lunga (spero che siate riusciti ad arrivare fino alla fine prima di addormentarvi), ma ho ritenuto di non spezzettare ulteriormente questa guida, in modo da avere un sistema che torni a funzionare correttamente (almeno spero!!) in un tempo ragionevole..

Alla prossima..