# installazione/configurazione XEN

## brigante

Ciao a tutti,

ragazzi, ho il dubbio di non aver capito molto bene cio' che e' descritto nella guida all' installazione e configurazione di XEN su Gentoo, quindi chiedo se qualcuno puo' darmi qualche indicazione di dove sbaglio, perche' sono sicuro che sono io a non fare le cose come invece dovrei...

allora, seguendo i passaggi della guida, dopo aver ricompilato l' intero world con le nuove USE-FLAGS...

```
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer -mno-tls-direct-seg-refs"
```

procedo ed installo: 

```
app-emulation/xen

app-emulation/xen-tools

sys-kernel/xen-sources

```

ora il mio kernel dventa il 2.6.34-xen-r4; vado in /usr/src/linux, (che punta allo stesso) e configuro il kernel.

una volta configurato do':

```
make && make_modules_install
```

ora la questione e':

1 - devo reboottare nel nuovo kernel appena configurato ?

   oppure: 

2 - posso procedere con la configurazione del Domain0 ?

perche':

- se procedo con il bootare nel nuovo kernel l' immagine vmlinuz e' in /usr/src/linux/arch/x86/boot, in .../x86_64/.. c'e' solo il link.

ottengo sempre l' "invalid magic number"

sia se metto linux /boot/vmlinuz - sia se metto linux /boot/xen.gz, (che e' un link a xen-4.0.0.gz), ed il boot logicamente non viene effettuato, (i comandi sono dati dalla minimal-shell di GRUB-2 di ubuntu, dove attualmente mi parte anche la Gentoo BOX di sempre praticamente...)

- se invece continuo con la compilazione del Domain0, (come sembra dovrei fare secondo la guida...), succede che al comando descritto nella guida, ovvero al:

```
make O=~/build/dom0 && make O=~/build/dom0 modules_install
```

( naturalmente prima ho dato sia: mkdir -p ~/build/dom0 ~/build/domU  ;  sia:   make O=~/build/dom0 menuconfig )

ottengo quest' errore:

```
hacklab linux-2.6.34-xen-r4 # make O=~/build/dom0 && make O=~/build/dom0 modules_install

  GEN     /root/build/dom0/Makefile

  HOSTLD  scripts/kconfig/conf

scripts/kconfig/conf -s arch/x86/Kconfig

  Using /usr/src/linux-2.6.34-xen-r4 as source for kernel

  /usr/src/linux-2.6.34-xen-r4 is not clean, please run '[b]make mrproper[/b]'

  in the '/usr/src/linux-2.6.34-xen-r4' directory.

make[1]: *** [prepare3] Error 1

make: *** [sub-make] Error 2
```

ma se logicamente do il make mrproper, perdo la configurazione ed e' quindi inutile no ?

qualcuno sa come dovrei muovermi ?

personalmente credo di non aver compreso io la questione di come lavora Xen, allora provo a spiegarmi in parole povere...

Xen e' un ipervisor, che gestisce multipli domini, il Domain0 e' il dominio principale, il DomainU e' il dominio invece che andra' a lavorare servendosi del Domain0. (Praticamente Server=0 MacchineVirtuali=U)

il Domain0 e' il dominio che utilizza l' hardware fisico della macchina, il DomainU invece, (che puo' essere anche in/da remoto), utilizza risorse della box in uso alla connessione con il Domain0, che e' il dominio che gestisce ed amministra gli altri DomainU.

ora, da quello che io ho capito - al boot della macchina viene scelto di bootare con xen.gz, per fare in modo di utilizzare in seguito il servizio xend e passare alla creazione/configurazione degli altri DomainU

ma come posso configurare il Domain0 se mi richiede in continuazione il make mrproper della conf del kernel ?

sto cercando di leggere la documentazione di XEN, ma in questo caso non mi sta aiutando, continuero' logicamente ma a puro scopo di approfondimento, per trovare "forse", (ma lo spero...), una valida alternativa a VMware-Server.

grazie a tutti, capite benissimo che in questo caso qualsiasi info e' ben accetta  :Smile: 

----------

## Elbryan

Allora!

 *brigante wrote:*   

> Ciao a tutti,
> 
> ragazzi, ho il dubbio di non aver capito molto bene cio' che e' descritto nella guida all' installazione e configurazione di XEN su Gentoo, quindi chiedo se qualcuno puo' darmi qualche indicazione di dove sbaglio, perche' sono sicuro che sono io a non fare le cose come invece dovrei...
> 
> allora, seguendo i passaggi della guida, dopo aver ricompilato l' intero world con le nuove USE-FLAGS...
> ...

 

Puoi fare più o meno quello che vuoi, nel senso: nulla ti vieta di partire con un dom0 e fare le cose dopo; nulla ti vieta di fare tutto subito e dare

un solo reboot.

 *brigante wrote:*   

> 
> 
> perche':
> 
> - se procedo con il bootare nel nuovo kernel l' immagine vmlinuz e' in /usr/src/linux/arch/x86/boot, in .../x86_64/.. c'e' solo il link.
> ...

 

Una volta finita la compilazione del dom0 tu dovresti ottenere un kernel compilato, se non ti da errori.

Io qui ti consiglio d'installarlo usando il solito

```
make install
```

che va sempre che è uno splendore (assumendo che tu abbia la /boot montata e tutto configurato correttamente).

Mi raccomando che devi avere una boot tipo questa:

```

lrwxrwxrwx  1 root root   21 24 ott 20.44 vmlinuz -> vmlinuz-2.6.34-xen-r4

-rw-r--r--  1 root root 3,5M 16 set 22.53 vmlinuz-2.6.34-xen-r3

-rw-r--r--  1 root root 3,5M 24 ott 20.44 vmlinuz-2.6.34-xen-r4

lrwxrwxrwx  1 root root   21 16 set 22.53 vmlinuz.old -> vmlinuz-2.6.34-xen-r3

-rw-r--r--  1 root root 489K  8 gen  2010 xen-3.4.2.gz

lrwxrwxrwx  1 root root   12  8 gen  2010 xen-3.4.gz -> xen-3.4.2.gz

lrwxrwxrwx  1 root root   12  8 gen  2010 xen-3.gz -> xen-3.4.2.gz

lrwxrwxrwx  1 root root   12  8 gen  2010 xen.gz -> xen-3.4.2.gz

-rw-r--r--  1 root root 1,1M  8 gen  2010 xen-syms-3.4.2

```

Dico tipo perché non è detto che tu abbia tutti quei "gz" che non sono altro che symlink ad un unico kernel di boostrap di Xen.

In pratica XEN funziona con "due kernel". E' un'affermazione non proprio corretta però il risultato che ottieni è che parte lo xen-3.4.2 che tirerà

su un micro layer (che si comporta come un kernel normale, solo che è limitato alle primitive sull'hardware) il quale farà partire a sua volta

il kernel dom0 che tu compili.

 *brigante wrote:*   

> 
> 
> - se invece continuo con la compilazione del Domain0, (come sembra dovrei fare secondo la guida...), succede che al comando descritto nella guida, ovvero al:
> 
> ```
> ...

 

Guarda, io ti consiglio di fare una cosa molto più semplice e che ti toglierà di mezzo questo problema.

Per fartela capire ti mostro subito quello che ho io sul mio server:

```

lrwxrwxrwx  1 root root   19 24 ott 20.00 linux -> linux-2.6.34-xen-r4

drwxr-xr-x 25 root root 4,0K 24 ott 22.33 linux-2.6.32-hardened-r22

drwxr-xr-x 24 root root 4,0K 24 ott 20.44 linux-2.6.34-xen-r4

drwxr-xr-x 24 root root 4,0K 25 ott 00.23 linux-2.6.34-xen-r4-domU

```

Una directory per il kernel dom0, una copia fisica dello stesso per il domU (che puoi ottenere dando un semplice cp -r blabla blabla-domU seguito da

un gustoso make mrproper in modo da avere il tree pulito dal quale creare il nuovo file di configurazione del tuo domU).

Poi io ho un altro kernel hardened che uso per una mia macchina guest, che per ora puoi ignorare.

 *brigante wrote:*   

> 
> 
> personalmente credo di non aver compreso io la questione di come lavora Xen, allora provo a spiegarmi in parole povere...
> 
> Xen e' un ipervisor, che gestisce multipli domini, il Domain0 e' il dominio principale, il DomainU e' il dominio invece che andra' a lavorare servendosi del Domain0. (Praticamente Server=0 MacchineVirtuali=U)
> ...

 

Allora XEN sì, è un hypervisor, ovvero un layer che si pone tra l'hardware ed il sistema operativo. Dom0 è il boss (ne avrai uno solo) e domU sono le varie guest.

Dire che il domU utilizza solo le risorse del dom0 non è completamente corretto: nel 90% dei casi è così ma, tramite un processo chiamato PCI Passthrough (questo è il link al mio blog, ndr) puoi passare delle vere e proprie periferiche anche ai guest (ma per ora questo è ben oltre le tue aspettative, suppongo).

Se ci sono altri problemi, chiedi pure.

Ciao!

----------

## brigante

mitico elbrayan  :Wink: 

grazie a te sono finalmente riuscito ad avviare il dom0, appena ho un po' di time spero di poter approfondire di piu' tutto il discorso XEN.

grazie  :Wink: 

----------

