45
contributi
Riga 91: | Riga 91: | ||
== Installazione == | == Installazione == | ||
{{Box|Nota|per una migliore comprensione delle procedure che seguono, fate rifermineto la guida sul [[Debian Kernel Howto|kernel alla debian-way]]}} | |||
Prima di procedere è necessario installare alcuni pacchetti: | |||
<pre> # apt-get install module-init-tools kernel-package libncurses5-dev fakeroot lrzip schedtool time </pre> | |||
gli ultimi due pacchetti sono opzionali, anche se senza <code>schedtool</code> non potremmo usare gran parte delle potenzialità offerte dalle patch, mentre per quanto riguarda <code>time</code>, è utile solo se si vuole misurare la performance. | |||
La patch <code>-ck</code> più recente può essere scaricata dal sito di Con Kolivas, al seguente indirizzo: | |||
* http://users.on.net/~ckolivas/kernel/ | |||
Sulla stessa pagina troverete il link per scaricare i sorgenti del kernel vanilla. <br/> Se la vostra Debian utilizza una versione precedente rispetto all'ultima release, potrete trovare la patch [http://ck.kolivas.org/patches/ qui], mentre i sorgenti da patchare dovrete cercarli tra gli archivi di [http://www.kernel.org/pub/linux/kernel/ kernel.org]. | |||
Attualmente l'ultimo patch set <code>-ck</code> è il <code>4.0-ck1</code>, ed il file patch da scaricare è <code>patch-4.0-ck1.lrz </code>. Di seguito si userà, come esempio, il kernel 4.0 e le patch <code>-ck1</code> per tale kernel. | |||
Spostate i due archivi appena scaricati in una directory nella nostra home, ad esempio in <code>~/src/</code> e scompattate i sorgenti | |||
<pre>$ cd ~/src/ | |||
$ tar -xvf linux-4.0.tar.xz</pre> | |||
Una volta scompattati i sorgenti possiamo applicare la patch con: | |||
<pre>$ cd linux-4.0 | |||
$ lrzcat ../patch-4.0-ck1.lrz | patch -p1</pre> | |||
<pre>$ cd | |||
$ | |||
Per una questione di ordine conviene rinominare la directory dei sorgenti in modo da rispecchiare la patch usata: | Per una questione di ordine conviene rinominare la directory dei sorgenti in modo da rispecchiare la patch usata: | ||
<pre>$ cd / | <pre>$ cd ../ | ||
$ mv linux- | $ mv linux-4.0 linux-4.0-ck1</pre> | ||
Per la configurazione, la strada più semplice è quella di copiare la configurazione funzionante di un kernel di versione simile a quello che state per compilare, ad esempio | |||
<pre> $ cd linux- | <pre> $ cd linux-4.0-ck1 | ||
$ cp /boot/config- | $ cp /boot/config-3.16.0-4-amd64 . | ||
$ make oldconfig </pre> | $ make oldconfig </pre> | ||
Rispetto ai kernel standard la patch cambia alcune risposte predefinite in modo da ottenere un sistema adatto a un uso Desktop con bassa latenza, quindi, a meno che non abbiate diverse esigenze, potete lasciare tutte le risposte di default e passare alla compilazione. | |||
Se siete interessati [http://ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt qui] trovate alcuni suggerimenti per configurazioni da abbinare al BFS, a seconda del tipo di computer e dell'uso che si intende farne. | |||
Una volta terminata la configurazione è possibile compilare il kernel, ovviamente [[Debian Kernel Howto|alla debian-way]]. Se abbiamo già in esecuzione un kernel <code>-ck</code> possiamo lanciare la compilazione in modalità SCHED_IDLEPRIO: | |||
<pre> $ schedtool -D -e time fakeroot make-kpkg --append-to-version -desktop --revision 0.1 kernel_image</pre> | <pre> $ schedtool -D -e time fakeroot make-kpkg --append-to-version -desktop --revision 0.1 kernel_image</pre> | ||
Riga 127: | Riga 132: | ||
In questo modo non ci accorgeremo nemmeno della compilazione durante il normale utilizzo interattivo del computer, infatti la compilazione avverrà '''solo''' quando la CPU sarà in idle. Il tempo di compilazione aumenta in maniera impercettibile. Verrà anche stampata la durata della compilazione grazie al comando <code>time</code>. | In questo modo non ci accorgeremo nemmeno della compilazione durante il normale utilizzo interattivo del computer, infatti la compilazione avverrà '''solo''' quando la CPU sarà in idle. Il tempo di compilazione aumenta in maniera impercettibile. Verrà anche stampata la durata della compilazione grazie al comando <code>time</code>. | ||
Se non abbiamo un kernel <code>-ck</code> | Se non abbiamo un kernel <code>-ck</code> potremo comunque usare la modalità SCHED_BATCH, cambiando semplicemente l'opzione <code>-D</code> con <code>-B</code>. In questo modo la compilazione avrà priorità minore di tutti i processi SCHED_NORMAL. Durante la compilazione il sistema sarà abbastanza responsivo anche se non come nel caso precedente. | ||
Ultima possibilità, nel caso abbiate un kernel vecchio o non abbiate installato gli <code>schedtool</code> è quella di lanciare la compilazione con nice 19 (la più bassa priorità di un processo SCHED_NORMAL): | Ultima possibilità, nel caso abbiate un kernel vecchio o non abbiate installato gli <code>schedtool</code> è quella di lanciare la compilazione con nice 19 (la più bassa priorità di un processo SCHED_NORMAL): | ||
Riga 135: | Riga 140: | ||
Ovviamente non è necessario compilare ''a bassa priorità'', ma i casi precedenti sono stati riportati come esempio pratico di utilizzo degli <code>schedtool</code> e delle funzionalità delle patch <code>-ck</code>. | Ovviamente non è necessario compilare ''a bassa priorità'', ma i casi precedenti sono stati riportati come esempio pratico di utilizzo degli <code>schedtool</code> e delle funzionalità delle patch <code>-ck</code>. | ||
Una volta terminanta la compilazione sarà sufficiente acquisire i privilegi di root e installare il nuovo kernel con dpkg: | |||
<pre>$ cd ../ | |||
# dpkg -i linux-image-4.0.0-ck1-bfs_1_amd64.deb</pre> | |||
== Utilizzo e Tuning == | == Utilizzo e Tuning == |
contributi