Mondo IT

recensioni, articoli e approfondimenti sul mondo IT

Compilare kernel dom0

with 4 comments

Spesso accade che ci troviamo il kernel del dom0 un pò datato, o a causa di politiche della ditribuzione che staimo utilizzando (sicurezza, stabilità, mancato supporto come fa ubuntu :@ ). Ecco allora come fare per avere il nostro kernel sempre aggiornato. Questa guida si riferisce all’ultima versione di kernel-patch disponibili per xen.

Più in generale non è possibile installare qualsiasi kernel su dom0, bensì solo quelli per cui sono state sviluppate le patch apposite.

Innanzitutto scarichiamo quello che ci serve: il kernel linux-2.6.30.3 dal sito ufficiale, il pacchetto delle patch su googlecode. Spostiamo il file compresso in /usr/src e decomprimiamo i sorgenti del kernel con il comando sudo tar -xvf linux-2.6.30.3.tar.bz. Creo la cartella /usr/src/linux-2.6.30.3/patch. Sposto il file xen-patches-2.6.30-3.tar.bz2 in usr/src/linux-2.6.30.3/patch. Usiamo questo script per applicare le patch

#!/bin/bash
for P in `ls patch/6*.patch1 | sort `
do
patch -p1 -s -i $P
if [ $? = 0 ]; then
echo $P applied
else
echo "Error processing "$P
exit 1
fi
done

Ora ci assicuriamo che siano così attive queste voci(di default lo sono):

Processor type and features ->
[*] Symmetric multi-processing support
[ ] Support sparse irq numbering
[*] Enable MPS table
[*] Enable Xen compatible kernel
[*] Single-depth WCHAN output
Processor family (Generic-x86-64) --->
[ ] Configure Maximum number of SMP Processors and NUMA Nodes
(64) Maximum number of CPUs
Preemption Model (No Forced Preemption (Server)) --->
[ ] Machine Check Exception

Device Drivers -> XEN
[*] Privileged Guest (domain 0)
<*> Backend driver support
<*> Block-device backend driver
<*> Block-device tap backend driver
<*> Block-device tap backend driver 2
>*> Network-device backend driver
(8) Maximum simultaneous transmit requests (as a power of 2)
[ ] Pipelined transmitter (DANGEROUS)
< > Network-device loopback driver
<*> PCI-device backend driver
PCI Backend Mode (Virtual PCI) —>
[ ] PCI Backend Debugging
< > TPM-device backend driver
<M> SCSI backend driver
<M> USB backend driver
<M> Block-device frontend driver
<M> Network-device frontend driver
<M> Network-device frontend driver acceleration for Solarflare NICs
<M> SCSI frontend driver
<M> USB frontend driver
[*] Taking the HCD statistics (for debug)
<*> User-space granted page access driver
<*> Framebuffer-device frontend driver

Abbiamo inoltre bisogno di attivare la funzionalità bridging nel kernel. Ci assicuriamo che ci siano “802.1d Ethernet Bridging” (in “Networking options”) e  “Universal TUN/TAP device driver support” (in “Network device support”).

Finalmente possiamo compilare:

make

make install

make modules_install

mkintramfs -o /boot/initrd.img-2.6.30.3 2.3.30.3

Ora apriamo il file /boot/grub/menu.lst e da root inseriamo:

title           Xen 3.3 / Ubuntu 8.04.3 LTS, kernel 2.6.30.3-xen
root            (hd0,0)
kernel          /boot/xen-3.3.gz
module          /boot/vmlinuz-2.6.30.3 root=UUID=7d8057c5-f4cd-4467-99d7-bb6f46def3c6 ro console=tty0 pciback.ide=(00:19.0)
module          /boot/initrd.img-2.6.30.3
quiet

Ovviamente c’è da adattare la versione dell’hypervisor installata sulla vostra macchina e le opzioni da dare a grub e al kernel…

Ora riavviamo e il nostro kernel nuovo fiammante è pronto per essere utilizzato.

Annunci

Written by Michele Paolino

03/09/2009 a 12:49

4 Risposte

Subscribe to comments with RSS.

  1. Complimenti per la tua guida, effettivamente in giro non c’è nulla di così chiaro e specialmente in italiano. Volevo chiederti un piccolo upgrade, io avrei bisogno di utilizzare xen 3.4.1, come faccio ad utilizzare l’ultimo kernel con l’ultima versione di xen?

    angeloalfa

    28/09/2009 at 19:26

  2. l’ultimissimo kernel utilizzabile per il dom0 è tutt’ora ancora il 2.6.30.3…quando saranno disponibili altri kernel ne avrai conferma qui:
    http://code.google.com/p/gentoo-xen-kernel/downloads/list
    Per quanto riguarda la versione dell’hypervisor essa è indipendente dalla versione del dom0.
    buon lavoro,
    ciao 😉

    neonum6

    28/09/2009 at 19:45

  3. Quindi dato che a me interessano le nuove funzionalità introdotte con con xen 3.4.1 posso tenere anche il kernel predefinito 2.6.18?
    Grazie per la tempestività della risposto e che sto preparando a tesi su questo argomento e sono ancora in alto mare, mi sarebbero molto utili i tuoi suggerimenti.
    Ciao grazie

    angeloalfa

    28/09/2009 at 19:49

  4. no puoi installare xen 3.4.1 e compilare come dom0 il kernel 2.6.30.3.
    Non puoi compilare il 2.6.31.1 perchè la patch non è ancora stata rilasciata.
    In bocca al lupo per la tua tesi 😀

    neonum6

    28/09/2009 at 20:00


Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: