Lavorando col nuovo Xen 3.4 su Debian Lenny e su openSUSE 11.2, mi sono imbattuto in una problematica che personalmente ho dovuto affrontare molto ma molto di rado:

Assegnare un device fisico ad una macchina virtuale (domU).

Seguendo le vecchie procedure per il vecchio Xen, apparentemente al boot della dom0 la risorsa fisica veniva riservata, ma poi non funzionava nulla, ovvero, la macchina virtuale non partiva restituendo il seguente errore:

Error: pci: 0000:0d:08.0: non-page-aligned MMIO BAR found.

ho cercato soluzioni in lungo e in largo, senza giungere a nulla, finché non mi sono imbattuto in una patch del sorgente di Xen 3.4….
ebbene, leggendo il codice sorgente della patch è saltato fuori che con il nuovo Xen la sintassi per assegnare una risorsa è cambiata e nessuno lo sa!

Vengo quindi ad illustrare la procedura corretta:

per prima cosa, nella dom0 rifare l’initrd includendo il modulo “pciback“;

adesso con lspci andiamo a trovare l’ID della nostra scheda fisica:

# lspci
08:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
08:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
0a:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
0a:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
0d:08.0 Communication controller: Digium, Inc. Wildcard TE220 dual-span T1/E1/J1 card 3.3V
0f:0d.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)

come parametro aggiuntivo del kernel xen, al grub si deve inserire questo:

guestdev=0000:0d:08.0 reassign_resources

nel file di configurazione della macchina virtuale basta aggiungere questa riga:

pci = [ ‘0d:08.0′ ]

fatto 😮 adesso basta riavviare la nostra dom0 e la pci verrà riservata per la macchina virtuale…

Happy Xen