Visualizzazione post con etichetta core. Mostra tutti i post
Visualizzazione post con etichetta core. Mostra tutti i post

sabato 14 novembre 2009

Ubuntu: personalizzare il kernel

Verifichiamo la release correntemente installata con il comando
uname -r

sul mio sistema l'output del comando e'
2.6.31.4-custom

ma ovviamente puo' variare su ogni sistema, continueremo ad usare questo come esempio per questo post.
Installiamo ora i sorgenti del kernel (ricordatevi di cambiare numero di versione se necessario)
sudo apt-get install linux-source-2.6.31 kernel-package libncurses5-dev fakeroot

I sorgenti vengono installati (come file tar compresso) nella directory /usr/src
D'ora in poi lavoreremo con credenziali di amministratore, lanciamo quindi il comando
sudo -s

Ora ci spostiamo nella directory contenente il kernel e lo scompattiamo (e' necessaria l'utility bunzip2 contenuta nel pacchetto bzip2):
cd /usr/src
bunzip2 linux-source-2.6.31.tar.bz2
tar xvf linux-source-2.6.31.tar
ln -s linux-source-2.6.31 linux

Facciamo una copia della configurazione del kernel in esecuzione per velocizzare il processo di configurazione del nuovo kernel (attenzione al carattere ` , non e' un apice singolo, bensi' un apice inverso che sulla tastiera italiana si ottiene con AltGr+' e corrisponde al codice ASCII 96):
cp /boot/config-`uname -r` /usr/src/linux/.config

Lanciamo l'utility che ci consente di personalizzare (o customizzare) il vostro kernel:
cd /usr/src/linux
make menuconfig

Prima di tutto scendete in fondo al menu e selezionate la voce
Load an Alternate Configuration File

seguite le istruzioni per caricare il file .config (basta premere INVIO)
Potete quindi cominciare a configurare il vostro kernel abilitando o disabilitando funzioni o moduli. Quando avete finito selezionate la voce
Exit

e salvate la configurazione quando richiesto.
Eseguiamo un make clean per verificare che tutto sia a posto:
make-kpkg clean

Lanciamo finalmente la compilazione:
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

ATTENZIONE!!! Se avete un dual core, un quad core o un sistema multiprocessore, potete ottimizzare la compilazione utilizzando la variabile di ambiente CONCURRENCY_LEVEL settata al doppio del numero dei processori o dei core.
Per sapere quanti processori/core ci sono sul nostro sistema possiamo lanciare il comando:
grep -c '^processor' /proc/cpuinfo

nel mio caso (dual core) ottengo un 2 quindi devo settare la variabile CONCURRENCY_LEVEL a 4.
Rivediamo il comando di compilazione del kernel alla luce di quanto appena detto:
CONCURRENCY_LEVEL=4 fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

Questo processo genera due file .deb nella directory /usr/src (al posto degli asterischi troverete il numero di versione del kernel compilato):
linux-image*****.deb
linux-headers*****.deb

potete installare entrambi i pacchetti con il comando (torno al mio esempio):
dpkg -i linux-image-2.6.31.4-custom_2.6.31.4-custom-10.00.Custom_amd64.deb
dpkg -i linux-headers-2.6.31.4-custom_2.6.31.4-custom-10.00.Custom_amd64.deb

ATTENZIONE!!!

Quello appena installato viene configurato dal sistema come il kernel di default, se con questo la macchina non partisse dovete riavviare e premere ESC all'apparire di GRUB per poter selezionare il kernel precedente.

mercoledì 15 aprile 2009

lm-sensors su asus P5QC


Dopo aver installato Jaunty Jackalope volevo tener d'occhio le temperature del sistema ma purtroppo il sensors-applet mi dava solo la temperatura dei dischi.

Dopo una breve indagine ho deciso di scaricare l'ultima release di lm-sensors (3.1.0) visto che la 3.0.2 fornita con Jaunty non funzionava correttamente.

Rimuovere la versione installata con il comando:
sudo apt-get remove --purge lm-sensors

Scaricare il sorgente dal sito http://www.lm-sensors.org e scompattarlo in una directory di vostra scelta.

Entrare in quella directory e lanciare il comando:
make user

Potreste ricevere degli errori in quanto non sono presenti i pacchetti bison e flex, rimediare con il seguente comando:
sudo apt-get install bison flex

Seguito dal comando:
make clean; make user

(se dimenticate il make clean, riceverete alcune segnalazioni come la seguente: lib/libsensors.so: undefined reference to 'sensors_yylex')

A questo punto installiamo il pacchetto:
sudo make install

Per configurare i sensori presenti lanciamo il comando (selezionate sempre l'opzione YES):
sudo sensors-detect

Vengono rilevati i sensori presenti sulla macchina e creato un file di configurazione che si occupa di caricare i moduli necessari.

Per la Asus P5QC vengono rilevati i moduli coretemp e w83627ehf pero' se provate a eseguire il comando:
sudo modprobe w83627ehf

riceverete molto probabilmente un errore del tipo:
FATAL: Error inserting w83627ehf (/lib/modules/2.6.18-6-686/kernel/drivers/hwmon/w83627ehf.ko): No such device

In questo caso provate a lanciare il comando:
sudo modprobe w83627ehf force_id=0x8860q

Se questa volta il modulo viene caricato senza problemi, bisogna editare il file /etc/modprobe.d/aliases.conf (se non esiste createlo pure) inserendo la linea seguente:
options w83627ehf force_id=0x8860

Dalla cartella contenente i sorgenti di lm-sensors eseguiamo i seguenti comandi:
cd prog/init
sudo cp lm_sensors.init /etc/init.d/lm_sensors

Editare il file /etc/init.d/lm_sensors ed eseguire le seguenti modifiche (quello fornito e' scritto per girare su sistemi Red Hat):
Sostituire "echo_failure" con "echo FAILED"
Sostituire "echo_warning" con "echo WARNING"
Sostituire "echo_success" con "echo OK"
commentare la linea contenente la stringa ". /etc/init.d/functions"
Sostituire "/var/lock/subsys/lm_sensors" con "/var/lock/lm_sensors"

Aggiornare l'init script per i vari runlevel:
uprdate-rc.d lm_sensors defaults

Potete eseguire un reboot e vedere se i sensori lavorano correttamente tramite il comando sensors, l'applet sensors-applet o il programma gkrellm, al solito se non li avete ancora installati sul vostro sistema (sensors viene installato da lm-sensors):
sudo apt-get install sensors-applet
sudo apt-get install gkrellm

sabato 13 settembre 2008

Tilda: crash con segmentation fault

Ultimamente capita sempre piu' spesso che mi sparisca tilda (una console che appare al semplice premere il tasto F1).

Se provo a lanciarla da terminale ottengo un bel segmentation fault (core dump).

Soluzione: rimuovere o rinominare la cartella ~/.tilda