La tanto attesa versione 3.4 è finalmente tra noi.
Le novità sono davvero tante e alcune veramente particolari, come già anticipato da Roberto.
Una maggiore integrazione con le ultime architetture Intel (Sandy Bridge ed Ivy Bridge) e dei miglioramenti nella gestione dei consumi energetici; oltre all'introduzione di nuovi driver per la gestione di diverse periferiche,
tra le quali le schede video della serie Radeon HD 7000 di AMD e la APU Trinity sono alcune delle novità che dovrebbero far felice più di qualcuno.
Ho pensato di aggiornare la mia precedente guida per la compilazione ed ottimizzazione del kernel su
Ubuntu a 64 bit e derivate, per accontentare quanti di voi vorranno cimentarsi nella compilazione del nuovo kernel.
Ho avuto modo già di illustravi, nei precedenti post, i vantaggi derivanti da una compilazione del kernel con ottimizzazione relativa al tipo di processore.
Non voglio tediarvi ulteriormente...
Avviate 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.
sudo apt-get install fakeroot build-essential
crash kexec-tools makedumpfile kernel-wedge libncurses5 binutils-dev
libelf-dev libdw-dev libnewt-dev libncurses5-dev
- Creazione cartella contenente il sorgente del kernel e le patch
all'interno della nostra Home (al termine di tutte le operazioni essa
conterrà anche il nostro kernel bello e compilato in singoli
pacchetti).
- Download del kernel e
delle patch.
- Attendete il termine
del download prima i dare il comando successivo (per ogni singolo
comando).
- Scompattazione
Kernel, creazione collegamento simbolico, accesso alla cartella.
- Applicazione Patch al
Kernel.
- Assegnazione diritti
accesso ed esecuzione ai vari scripts.
- Creazione nuovo
profilo di compilazione per Core i7.
cp tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.8 tools/hv/hv_kvp_daemon.8
- Pulizia ed
aggiornamento dei file di configurazione.
- 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, SOLO ALLA SECONDA
RICHIESTA DOVETE RISPONDERE
AFFERMATIVAMENTE.
Rispondete “N” alla prima domanda, “Y” alla seconda.
Ora 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, su di 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
10 - Usciamo dal menù sempre Selezionando la voce “Exit” presente nella parte bassa dello schermo
12 – Rispondiamo “Yes” alla domanda che ci verrà posta all'uscita, salveremo le modifiche apportate alle configurazione base.
Rispondete “N” alla successive domanda presenti a schermo.
Ora 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, su di 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
10 - Usciamo dal menù sempre Selezionando la voce “Exit” presente nella parte bassa dello schermo
12 – Rispondiamo “Yes” alla domanda che ci verrà posta all'uscita, salveremo le modifiche apportate alle configurazione base.
Rispondete “N” alla successive domanda presenti a schermo.
- Copia delle impostazioni generiche e impostazione della nostra
configurazione come predefinita all'interno del processo di
compilazione
cp
debian.master/abi/3.2.0-24.37/amd64/generic.modules
debian.master/abi/3.2.0-24.37/amd64/i7.modules
sed -i s/getall\ amd64\ generic\
virtual/getall\ amd64\ generic\ virtual\ i7/g
debian.master/etc/getabis
sed -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.
- Scrittura di tutte le modifiche sul disco.
sync
- Pulizia
prima
dell'inizio
della
compilazione
vera e
propria.
- Compilazione delle
dipendenze, sorgente e header.
- Avvio del processo di
compilazione del kernel.
-
Terminata
la
compilazione
saliamo di
un livello
nella
struttura
delle
directory
create,
ripuliamo
quello che
non serve
più e,
infine,
diamo il
comando per
l'installazione
del nuovo
kernel.
cd ..
cd ..
rm
linux
rm -rf linux-3.4
sudo dpkg -i linux-image-3.4.0-030400-i7_3.4.0-030400.201205210521_amd64.deb linux-headers-3.4.0-030400-i7_3.4.0-030400.201205210521_amd64.deb linux-headers-3.4.0-030400_3.4.0-030400.201205210521_all.deb
Riavviamo per utilizzare il nuovo Kernel.
sudo apt-get purge linux-image-3.4.0-030400-i7 linux-headers-3.4.0-030400-i7
linux-headers-3.4.0-030400
E riavviamo.
In caso di problemi con schede grafiche nVidia ecco una soluzione, avviate il terminale e digitate:
cd /usr/src/linux-headers-3.4.0-030400-i7/arch/x86/include
sudo cp -v generated/asm/unistd* ./asm
Attendo i vostri feedback, buon lavoro... ;-)