– Aggiornata al 10/04/2012 – Kernel Patch per problema Wi-Fi Atheros inclusa
Ho aggiornato il link del sorgente del kernel perché punti ad una versione opportunamente modificata, buon divertimento.
il “Terminale” e digitate al prompt, nell’ordine così come vi
appaiono, i comandi che via via troverete nel corso della lettura.
Ogni comando è preceduto da una rapida spiegazione.
Installazione librerie, compilatori e tutto il necessario. Ad ogni
comando date “Invio”, inserite la vostra password ed attendete che
il sistema faccia il resto.
apt-get install fakeroot build-essential crash kexec-tools
makedumpfile kernel-wedge libncurses5 binutils-dev libelf-dev
libdw-dev libnewt-dev libncurses5-dev
apt-get –no-install-recommends install asciidoc xmlto
apt-get build-dep linux
Creazione cartella contenente il sorgente del kernel e delle patch
all’interno della nostra Home (al termine di tutte le operazioni essa
conterrà anche il nostro kernel bello e compilato in singoli
pacchetti).
~/Kernel_3.3.1
~/Kernel_3.3.1
Download del kernel e delle patch.
wget
-c http://dl.dropbox.com/u/56720744/linux-3.3.1.tar.bz2
il termine del download prima il dare il comando successivo (per ogni
singolo comando).
-c
http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/0001-base-packaging.patch
-c
http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/0002-debian-changelog.patch
-c
http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/0003-default-configs.patch
Scompattazione Kernel, creazione collegamento simbolico, accesso alla
cartella.
xjvf linux-3.3.1.tar.bz2
-s linux-3.3.1 linux
linux
Applicazione patch al Kernel
-p1 < ../0001-base-packaging.patch
-p1 < ../0002-debian-changelog.patch
-p1 < ../0003-default-configs.patch
Assegnazione diritti accesso ed esecuzione ai vari scripts
-Rv +x debian/rules
-Rv +x debian/scripts/
Creazione nuovo profilo di compilazione per Core i7
debian.master/config/i386/config.flavour.generic
debian.master/config/i386/config.flavour.i7
Pulizia ed aggiornamento dei file di configurazione
debian/rules clean
debian/rules updateconfigs
Modifica del file di configurazione per adattare il Kernel alle
nostre richieste: è un passaggio fondamentale da eseguire con
estrema attenzione. All’esecuzione del comando il terminale farà
apparire una serie di domande, RISPONDETE AFFERMATIVAMENTE SOLO ALLA SEGUENTE RICHIESTA: “Do
you want to edit config: i386/config.flavour.i7? [Y/n]”.
fakeroot
debian/rules editconfigs
siete entrati nella configurazione del kernel, procedete in questo
modo (per selezionare intendo muoversi su e giù con le frecce del
cursore e poi dare invio):
1 – Selezionare “Processor type
and features”
2 – Selezionare “Processor family
(Generic-x86-64)”
3 – Selezionare “Core 2/newer
Xeon
4 – Scorrete tutte le voci in basso fino a trovare
“Preemption Model …”
(Questa voce determina come la vostra CPU si “dedicherà” alla gestione dei vari compiti/programmi in
esecuzione nel vostro sistema unitamente alla voce “Timer
frequency…”. È possibile privilegiare una più rapida risposta
del sistema a scapito però dei tempi di esecuzione reali dei vari
processi. Consiglio vivamente di lasciare “Desktop”).
5 –
Scorrete tutte le voci in basso fino a trovare “Timer frequency
…”
(Ora se avete un fisso potete selezionare la voce 1000Hz,
un portatile non superate soglia 300Hz. In rete ho trovato infinite
differenti spiegazioni e consigli sull’uso di tale parametro, a meno
che non utilizziate sul vostro sistema delle applicazioni
professionali per la gestione di audio e video, settate tale valore su
300Hz).
6 – Tornate al menù precedente Selezionando la voce
“Exit” presente nella parte bassa dello schermo
7 –
Selezionate “Networking support …”
8 – Selezionate
“Networking options …”
9 – Scorrete tutte le voci in
basso fino a trovare “The IPv6 protocol”, pigiate sulla vostra
tastiera la lettera “M” (in fase di compilazione verrà
creato un modulo del kernel per il protocollo IPv6 che sarà
possibile bannare per impedirne l’uso da parte del sistema in maniera
definitiva).
10 – Tornate al menù precedente Selezionando la
voce “Exit” presente nella parte bassa dello schermo
11 –
Tornate al menù precedente Selezionando la voce “Exit” presente
nella parte bassa dello schermo
12 – Usciamo dal menù sempre
Selezionando la voce “Exit” presente nella parte bassa dello
schermo
13 – Rispondiamo “Yes” alla domanda che ci verrà
posta all’uscita, salveremo le modifiche apportate alle
configurazione base. Rispondete “N” alle successive
domande presenti a schermo.
Copia delle impostazioni generiche ed impostazione della nostra
configurazione come predefinita all’interno del processo di
compilazione
cp
debian.master/abi/3.2.0-20.33/i386/generic
debian.master/abi/3.2.0-20.33/i386/i7
debian.master/abi/3.2.0-20.33/i386/generic.modules
debian.master/abi/3.2.0-20.33/i386/i7.modules
-i s/getall i386 generic virtual/getall i386 generic virtual
i7/g debian.master/etc/getabis
-i s/= generic virtual/= generic virtual i7/g
debian.master/rules.d/i386.mk
debian.master/control.d/vars.generic debian.master/control.d/vars.i7
-i s/supported=”Generic”/supported=”Nehalem”/g
debian.master/control.d/vars.i7
-i s/target=”Geared toward x86_64/target=”Geared
toward i7/g debian.master/control.d/vars.i7
–
Ottimizzazione del kernel attraverso le variabili -mtune e -march, il
compilatore si occuperà di produrre un kernel ottimizzato per
architetture Intel Dual Core / Core i-xx
sed
-i s/= gcc/= gcc -march=corei7 -mtune=corei7/g Makefile
-i s/= g++/= g++ -march=corei7 -mtune=corei7/g Makefile
-i s/core2/corei7/g arch/x86/Makefile
-i s/core2/corei7/g arch/x86/Makefile_32.cpu
– Scrittura di tutte le modifiche sul disco
sync
fakeroot
debian/rules clean
skipmodule=true fakeroot debian/rules binary-indep
skipabi=true skipmodule=true no_dumpfile=yes fakeroot debian/rules
binary-i7
quello che non serve più e, infine, diamo il comando per
l’installazione del nuovo kernel.
cd
..
linux
rm
-rf linux-3.3.1
sudo dpkg -i
linux-image-3.3.1-030301-i7_3.3.1-030301.201204021435_i386.deb
linux-headers-3.3.1-030301-i7_3.3.1-030301.201204021435_i386.deb
linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb
Riavviamo
per utilizzare il nuovo Kernel.