Debian GNU/kFreeBSD compilare il kernel

 

Come compilare il kernel in Debian GNU/kFreeBSD?, col metodo Debian o con quello FreeBsd? Diciamo che per quelli come me che usano prevalentemente Debian, all'inizio si trovano un pò spaesati, forse per la troppa facilità 🙂 ,ma questo è normale quando ci si avvicina ad un qualcosa che non conosci bene e devi imparare. Comunque il mio sistema è:

edmond@GnuKfreeBsd:~$ uname -a
GNU/kFreeBSD GnuKfreeBsd 8.1-1-686-smp #0 Tue Aug 17 23:24:32 CEST 2010 i686 i386 Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz GNU/kFreeBSD

per iniziare la compilazione dobbiamo avere un pò di strumenti quindi:

# apt-get build-dep kfreebsd-8

poi:

# apt-get source kfreebsd-8

# cd kfreebsd-8-8.1

andare nel percorso del file .config della nostra architettura:

esempio:

/home/edmond/kfreebsd-8-8.1/debian/arch/i386/686-smp.config

ed effettuare i cambiamenti.

step finale:

# dpkg-buildpackage opzione_di_compilazione

esempio:

# dpkg-buildpackage -B -uc

fare riferimento al man dpkg-buildpackage

Driver nouveau con kernel 2.6.33 e Debian

 

Il progetto nouveau mira alla creazione di driver di alta qualità per schede grafiche nvidia, e siccome era un po che volevo testarli, finalmente mi sono deciso. Inizio subito con il dire che per il momento il 3D non è supportato integralmente ,quindi per chi vuole compiz obbligatoriamente attivo e meglio che lasci perdere, mentre per chi vuole una Debian o altro con software open al 100%, forse è venuto il momento di provare questi driver nouveau, che a me sinceramente hanno stupito per velocità. Comunque per maggiori informazioni consiglio di visitare il sito. Per chi vuole testarli basta seguire i passi indicati di seguito, tenendo presente che io uso Debian Sid:

Inserire i repo experimental, dato che alcuni pacchetti li troviamo là:

deb https://ftp.it.debian.org/debian/ experimental main contrib non-free
deb-src https://ftp.it.debian.org/debian/ experimental main contrib non-free

a questo punto installiamo ciò che ci serve:

# apt-get update

# apt-get install linux-source-2.6.33 libdrm-nouveau1 libdrm2 xserver-xorg-video-nouveau

adesso dobbiamo ricompilare il kernel, perchè dobbiamo abilitare i nostri driver open nouveau, che troviamo nel percorso:

Device Drivers  —> Staging drivers  —>  Nouveau (nVidia) cards

una volta finita la compilazione ed installato il nuovo kernel, prima di riavviare ricordiamoci di modificare xorg.conf oppure XF86Config nella sezione device:

# nano /etc/X11/XF86Config

sostituire nvidia o nv con nouveau

Section "Device"
    Identifier     "Device0"
    Driver         "nouveau"
EndSection

una volta avviato il nuovo kernel non ci rimane altro che testare i nostri driver open:

$ lsmod | grep nouveau

Snellire il kernel

Riporto quello che ho sperimentato, nello smanettamento del kernel .Qua abbiamo visto come ricompilare il kernel, adesso invece vediamo come snellirlo un po , e rendere quindi la compilazione più veloce. Quello che io ho fatto, è stato eliminare alcuni componenti inutili, non solo per il mio pc, ma addirittura inutili per tutti i pc o quasi, di ultima generazione. Andare nella sezione Bus-options e disattivare ISA support ,a patto che non si abbia un pc vecchio che supporti questa scheda. Disattivare il Support for pci hotplug , che serve per chi vuole far funzionare ulteriori processori durante il funzionamento del pc. Nella sezione Device Drivers, disattivare Memory Technology Device (MTD) support, chi non usa le porte parallele, può disattivare anche quelle, alla voce Parallel port support. Nella sezione Input device support disattivare Touchscreen interface, e per chi non gioca come me anche Joystick interface. Per quanto riguarda la scheda grafica, sempre nella sezione Device Drivers – Grafic support, io ho tenuto solo i driver della mia scheda Nvidia. Ci sono altri smanettamenti che si possono fare, per snellire il kernel, ma io ho sperimentato solamente questi, specialmente prima, quando avevo un pc poco performante, e cercavo di aumentarne le prestazione, mentre adesso avendo un pc potente

 

Computer
Processor 2x Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
Memory 2076MB (943MB used)
Operating System Debian GNU/Linux lenny/sid
User Name edmond (edmond)
Date/Time lun 24 set 2007 21:42:22 CEST

eseguo la ricompilazione a volte solo per diletto, oppure solo quando ne ho effettivamente bisogno, come il problema di qualche mese fa con i driver Nvidia e la paravirtualizzazione.

kernel + patch Kolivas

 

Io sulla mia Debian ho ricompilato il kernel, sia per ottimizzarlo, sia per inserire la patch di Kolivas. Questo è il mio:

 

uname -a

Linux Debian 2.6.22-ck1-edmondk #1 SMP Tue Aug 21 18:58:10 CEST 2007 i686 GNU/Linux

Iniziamo ad installare, se non è gia stato fatto un po di roba

 

apt-get install build-essential bin86 kernel-package libncurses5 libncurses5-dev fakeroot module-init-tools

dopodichè andiamo qua e scarichiamo il kernel 2.6.22 e non il 2.6.22.6, dato che le patch si applicano sempre alla versione base del kernel. Scarichiamo anche da qui la patch di Kolivas. Quindi iniziamo l'operazione. Dato che è sconsigliato ricompilare il kernel da root, aggiungiamo il nostro utente al gruppo src

 

# adduser edmond src

dopodichè rifare il login, affinchè si faccia parte veramente del gruppo src, per controllare basta dare il comando

 

groups

copiamo il kernel in /usr/src

 

$ cp linux-2.6.22.tar.bz2 /usr/src

copiamo la patch sempre in /usr/src

 

$ cp patch-2.6.22-ck1.bz2 /usr/src

spostiamoci in

 

$ cd /usr/src

scompattiamo

 

$ tar jxf linux-2.6.22.tar.bz2

creiamo un link simbolico di nome linux

 

$ ln -sf linux-2.6.22 linux

poi

 

$ cd linux

adesso dobbiamo applicare la patch kolivas

 

bzcat ../patch-2.6.22.1.bz2 | patch -p1

poi

 

make menuconfig

la prima cosa che ho fatto , e stato quella di andare alla voce Processor type and features inquanto il kernel anche se porta nel nome l'estensione -i686, è ottimizzato in maniera generica. Quindi alla voce Processor family ho scelto Core 2/newer xeon ( mi portava pentium se non sbaglio).

 

kernel.png

 

Dopodichè salviamo

 

make-kpkg --initrd --append_to_version -edmond kernel_image kernel_headers

al posto di edmond mettete la vostra sigla

 

quando la compilazione sarà finita in /usr/src trovate i pacchetti

 

cd ..

ls

linux-headers-2.6.22-ck1-edmondk_2.6.22-ck1-edmondk-10.00.Custom_i386.deb linux-image-2.6.22-ck1-edmondk_2.6.22-ck1-edmondk-10.00.Custom_i386.deb

 

installiamo i pacchetti con

 

dpkg -i linux-headers-2.6.22-ck1-edmondk_2.6.22-ck1-edmondk-10.00.Custom_i386.deb linux-image-2.6.22-ck1-edmondk_2.6.22-ck1-edmondk-10.00.Custom_i386.deb

A questo punto il nuovo kernel è installato, riavviamo ed incrociamo le dita ehheeheh.

kernel.org

the-linux-kernel-archives.png

 

Questo è il sito ufficiale del kernel linux, dove risiedono le varie versioni del kernel, é importante fare un po di chiarezza, e dare qualche spiegazione. Iniziamo con il dire che, il sito mette a disposizione, sia alcune versioni precedenti, sia alcune versioni di prova. Attualmente vi sono presenti i codici sorgenti delle versioni di kernel 2.2 – 2.4 – 2.6 e possiamo dire che più alto è il numero di versione, più recente è il kernel . Al momento la versione stabile è la 2.6.22.6. Il primo numero ( 2 ), indica che si tratta della seconda generazione del kernel linux. La sottoversione ( 6 ) indica che si tratta del cosiddetto kernel stabile, e lo si riconosce dal fatto che porta il numero pari, quindi significa che è stato giudicato "abile e arruolato" da Linus Torvald in persona. Il terzo ed il quarto numero ( 22.6 ) indicano l’attuale livello di patch, e cioè: la ventiduesima versione ufficializzata del kernel 2.6, fornita del sesto livello di patch. I cambiamenti introdotti nella quarta cifra, non sono altro che bugfix o aggiornamenti di sicurezza, una specie di service-pack insomma. Nel sito troviamo anche delle versioni che portano l’abbreviazione -rc, ed -rc-git cioè Relaese Candidate, e non sono altro (se tutto va bene ) i prossimi kernel stabili. Il numero posto dopo -rc indica di quale Realese Candidate si tratta. Poi in ultimo ci sono le patch, indicate con l’abbreviazione -mm e da un numero di revisione. Questa patch è quella di Andrew Morton, e porta funzioni importanti nella versione ufficiale del kernel.