UBUNTU 10.04: COMPILARE KERNEL 3.3.7
Transcript
UBUNTU 10.04: COMPILARE KERNEL 3.3.7
UBUNTU 10.04: COMPILARE KERNEL 3.3.7 La procedura è sempre la stessa. Apriamo il terminale: portiamoci in /usr/src e prendiamoci i diritti necessari alle prossime operazioni 1 cd /usr/src/ 2 sudo -s a questo punto scarichiamo la versione del kernel in oggetto con il comando: wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.7.tar.bz2 Adesso dobbiamo scompattare l’archivio: 1 1tar -xvjf linux-3.3.7.tar.bz2 una volta scompattato l’archivio, se necessario, sarà possibilie scaricare le patch (Se rilasciate ovviamente). Dopo averle spostate all’interno della dir del kernel, si possono installare con: 1bzcat PATCH.bz2 | patch -p1 --dry-run Questo comando simula l’installazione della patch. se non ci saranno errori, provvederemo all’applicazione della patch vera e propria, semplicemente eliminando dal comando precedente il parametro –dry-run: 1bzcat NOME_DELLA_PATCH.bz2 | patch -p1 Ora recuperiamo (se esistente) un file di configurazione del vecchio kernel: Per controllare tra quelli disponibili: 1ls /boot/config-* quindi facciamo una copia di quello vecchio prescelto e lo mettiamo nella dir del kernel scompattato: 1cp /boot/config-2.6.32-28-generic linux-3.3.7/.config Ora, dopo essere usciti dalla dir del kernel, creiamo un link simbolico della stessa: 1 cd .. 2 ln -s linux-3.3.7 linux Entriamo nella dir (link) ed allineiamo le configurazioni rispondendo (sempre come suggerito se non con cognizione di causa assoluta) a tutte le domande inerenti le novità del kernel nuovo: 1 cd linux 2 make oldconfig Ora possiamo anche personalizzare le impostazioni del nuovo kernel: 1make menuconfig Nota: In caso di errore installare il pacchetto libncurses5-dev Nel caso si volessero informazioni sul proprio hardware disponibile, è possibile generare un report tramite lshw: 1lshw -html > myhw.html Le solite configurazioni raccomandate sono: «General Setup»: scegliere in "Kernel Compression mode" > Gzip 1 attivare "Support for paging of anonymous memory 2 3 (swap)" 4 attivare "Support for prefetching swapped memory" «Processor type and features»: «Processor family» scegliere il processore corretto. 1 attivare "Preemption Model-> Voluntary Kernel 2 3 Preemption (Desktop)" «High Memory Support» scegliere: 4 5 "off" (meno di 1 GB di RAM disponibili) 6 "1GB Low Memory Support" (1GB di RAM 7 disponibile) 8 "4GB" (più di 1GB di RAM ) «Timer frequency»: 1000 Hz 1 «Block layer -> IO Schedulers» 2 solo «CFQ I/O scheduler» 1 «Kernel hacking» deselezionare «Kernel debugging». 2 1 «Device Drivers -> Character devices» selezionare «Virtual terminal» 2 Una volta configurato a dovere, salvare ed uscire. Prima di lanciare la compilazione vera e propria, ripuliamo il sistema da eventuali altre compilazioni precedenti: 1make-kpkg --rootcmd fakeroot clean Se siamo in dotazione di un sistema multiprocessore, decidiamo di utilizzare compilazioni parallele: 1export CONCURRENCY_LEVEL=2 Ora lanciamo l’eterna compilazione: make-kpkg --rootcmd fakeroot --initrd kernel_image kernel_headers modules_image Dopo aver fatto la spesa e tutte le commissioni possibili, potete tornare al termianale ed installare i nuovi pacchetti del kernel 1 1 cd .. 2 dpkg -i *.deb Terminata l’installazione dei pacchetti, aggiorniamo l’initramfs: 1update-initramfs -c -k 3.3.7 e aggiungiamo la rispettiva voce nel config del GRUB: 1gedit /boot/grub/grub.cfg ci portiamo nella sezione: ### BEGIN /etc/grub.d/10_linux ### menuentry 'Ubuntu, con Linux 3.3.7' --class ubuntu --class gnu-linux --class gnu --class os { 1 recordfail 2 insmod ext2 3 set root='(hd0,1)' 4 search --no-floppy --fs-uuid --set 5 4e85fa69-f9bd-4c88-ad81-580e5f42f799 6 e come ultima stringa aggiungiamo (prima della ‘}’) 1initrd /boot/initrd.img-3.3.7 salviamo e riavviamo. A riavvio avvenuto, scegliamo nel grub il nostro fiammante kernel 3.3.7. Possiamo controllare l’avvenuta installazione del nuovo kernel, anche da terminale, digitando: 1uname -r Alcune spiegazioni sui target del comando di compilazione del kernel: “–initrd” (utilizzato nel comando di compilazione del kernel) crea un file immagine di una partizione speciale (initial ram disk). All’avvio del sistema viene caricata nella ram, montata temporaneamente come directory root con tutti i moduli necessari all’avvio del sistema. Poi verrà sostituita dalla partizione contenente il sistema vero e proprio. L’immagine initrd è usata nei kernel ufficiali (pieni di chipset, file system ecc..) e anche per caricare il bootsplash. “kernel_image” compila il kernel e tutti i moduli scelti nella configurazione, e crea un pacchetto .deb. “kernel_headers” crea il pacchetto .deb con tutti i file includes (.h) necessari in futuro alla compilazione di moduli esterni. “modules_image” compila i sorgenti dei moduli esterni scaricati a parte e posizionati in /usr/src/modules (es i driver video proprietari). VirtualBox can't boot from the file 32bit ISO because PAE is not enabled by default Se ottieni questo messaggio nel tentativo di utilizzare Ubuntu 12.04 su VirtualBox, è perchè la versione di Precise utilizza di default il kernel PAE. Per far sì che VB non si pianti al boot della iso, andare nelle impostazioni di sistema in Processore ed abilitare “PAE/NX”. Il tutto partirà senza problemi.
Documenti analoghi
Installazione RTAI
sudo aptitude install build-essential
sudo aptitude install libncurses5-dev
4.2 - Compilare i kernel alla maniera Debian Articolo di: Jonathan
naturalmente ci sono perfino i pacchetti delle sorgenti del kernel. Un veloce apt-cache search kernel-source
vi restituira' una lista di pacchetti delle sorgenti del kernel tutti pronti da usare.
P...