Following bellow is brief instruction of mentioned set up loading xen back-end, evtchn, gntdev devices separately from pvops kernel 2.6.32.24 under Xen 4.0.1 on top Ubuntu Maverick Meerkat Desktop. Due to Desktop environment we have first to disable Network Manager and restart networking manually updating /etc/network/interfaces. This step is not required on the Ubuntu 10.10 Server. Libvirt 0.8.3 is available via Maverick Meerkat repositories. Two patches have been applied to official 4.0.1 tar’s ball. First one updates xen back-end rules, second one allows to load Ubuntu 10.10 PV Guest via standard trick with install same HVM first and using a ready image to load PV DomU via pygrub.
Disable Network manager
# chkconfig network-manager off
# gedit /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Restart netwoking :-
# /etc/init.d/networking restart
Install required packages
apt-get install libcurl4-openssl-dev \
xserver-xorg-dev \
mercurial gitk \
build-essential \
libncurses5-dev \
uuid-dev gawk \
gettext texinfo bcc \
libncurses5-dev dpkg-dev debhelper \
iasl texinfo bridge-utils bison flex
apt-get build-dep xen-3.3
Now git clone and checkout branch xen/stable
cd /usr/src
git clone
git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x
Build kernel in Debian way
Get .config file
aptitude install kernel-package fakeroot
export CONCURRENCY_LEVEL=(number_of_cores) +1
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-pv kernel-image kernel-headers
dpkg -i ../linux-image-2.6.32.24-pv_2.6.32.24-pv-10.00.Custom_amd64.deb
Edit /etc/modules
root@boris-System-P5Q3:~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
lp
rtc
xen-evtchn
xen-gntdev
xen-netback
xen-blkback
xenfs
blktap
Extract Xen 4.0.1 archive :-
cd /usr/src
gunzip xen-4.0.1.tar.gz
tar -xvf xen-4.0.1.tar
cd xen-4.0.1
Apply following patch to xen-4.0.1 folder
--- .orig/tools/hotplug/Linux/xen-backend.rules 2010-10-05 14:08:56.436012895 +0400
+++ /tools/hotplug/Linux/xen-backend.rules 2010-10-05 11:48:38.694087211 +0400
@@ -9,3 +9,5 @@
KERNEL=="evtchn", NAME="xen/%k"
KERNEL=="blktap[0-9]*", NAME="xen/%k"
KERNEL=="pci_iomul", NAME="xen/%k"
+KERNEL=="gntdev", NAME="xen/%k"
+KERNELS=="xen", KERNEL=="xvd*", SUBSYSTEM=="block", OPTIONS+="last_rule"
At this point create grub2-fix.patch1 as raw content of http://xenbits.xensource.com/xen-unstable.hg?rev/6eaab8297681 Changeset 22238 pygrub: support grub2 “(hdX,msdosY)” partition syntax
patch -p1 -s -i ../grub2-fix.patch1
make xen
make tools
make install-xen
make install-tools PYTHON_PREFIX_ARG=
Set up xend,xendomains to run as services
update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21 20
Reboot in Xen with grub entry
menuentry "Xen 4.0.1 / Ubuntu 10.10 kernel 2.6.32.24" {
insmod ext2
set root='(hd1,5)'
multiboot (hd1,5)/boot/xen.gz dummy=dummy dom0_mem=1024M
module (hd1,5)/boot/vmlinuz-2.6.32.24-pv dummy=dummy root=/dev/sdb5 ro console=tty0
module (hd1,5)/boot/initrd.img-2.6.32.24-pv
}
Verify Xen environment :-
root@boris-System-P5Q3:~# xm info
host : boris-System-P5Q3
release : 2.6.32.24-pv
version : #1 SMP Thu Oct 14 20:47:56 MSD 2010
machine : x86_64
nr_cpus : 4
nr_nodes : 1
cores_per_socket : 4
threads_per_core : 1
cpu_mhz : 2833
hw_caps : bfebfbff:20100800:00000000:00000940:0408e3fd:00000000:00000001:00000000
virt_caps : hvm
total_memory : 8190
free_memory : 7070
node_to_cpu : node0:0-3
node_to_memory : node0:7070
node_to_dma32_mem : node0:3259
max_node_id : 0
xen_major : 4
xen_minor : 0
xen_extra : .1
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler : credit
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset : unavailable
xen_commandline : dummy=dummy dom0_mem=1024M
cc_compiler : gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)
cc_compile_by : root
cc_compile_domain :
cc_compile_date : Fri Oct 15 10:17:36 MSD 2010
xend_config_format : 4
root@boris-System-P5Q3:~# brctl show
bridge name bridge id STP enabled interfaces
eth0 8000.90e6ba2d11eb no peth0
virbr0 8000.000000000000 yes
Install libvirt 0.8.3 :-
# apt-get install virtinst python-libvirt \
virt-viewer virt-manager
Comment out (xend-unix-server yes) in /etc/xen/xend-config.sxp and export variable VIRSH_DEFAULT_CONNECT_URI via root’s .bashrc
export VIRSH_DEFAULT_CONNECT_URI="xen:///"
Then reboot Xen Host.
root@boris-System-P5Q3:~# virsh version
Compiled against library: libvir 0.8.3
Using library: libvir 0.8.3
Using API: Xen 3.0.1
Running hypervisor: Xen 4.0.0
References
1.http://wiki.xen.org/xenwiki/Xen4.0
Tutorials to install Xen 4.0
* Xen 4.0 on Ubuntu 10.04: https://bderzhavets.wordpress.com/2010/04/24/set-up-ubuntu-10-04-server-pv-domu-at-xen-4-0-dom0-pvops-2-6-32-10-kernel-dom0-on-top-of-ubuntu-10-04-server/
Hi Boris,
I am trying to install xen-4.0.1 on Ubuntu Desktop 10.10 following the above tutorial. I tried to apply the hotplug patch (mentioned above). It gave error saying “malformed patch at line 4”. I edited the patch to the following, it still gives me error “malformed patch at line 8″
— .orig/tools/hotplug/Linux/xen-backend.rules 2010-10-05 14:08:56.436012895 +0400
+++ /tools/hotplug/Linux/xen-backend.rules 2010-10-05 11:48:38.694087211 +0400
@@ -9,3 +9,5 @@
+KERNEL==”evtchn”, NAME=”xen/%k”
+KERNEL==”blktap[0-9]*”, NAME=”xen/%k”
+KERNEL==”pci_iomul”, NAME=”xen/%k”
+KERNEL==”gntdev”, NAME=”xen/%k”
+KERNELS==”xen”, KERNEL==”xvd*”, SUBSYSTEM==”block”, OPTIONS+=”last_rule”
Replace the + you added with a space. Add a space before the OPTIONS line. Anything after the line beginning with the @@ needs a space, +, or -. Check out the “Unified format” section of for further info.
Add two lines to tools/hotplug/Linux/xen-backend.rules
manually.
Hi Boris,
Your instructions are clear and easy to follow. Thank you. But hit a snag and hope you can help me. The error shown below is where I have stopped.
I just did a fresh install of ubuntu 10.10, then your instructions up to “Build kernel in Debian way” (I recommend changing that line to “make menuconfig” and then what actions to take when in the menu).
I did “make menuconfig”, exited, then “make”. Make failed after almost half an hour with the following:
CC drivers/pci/xen-pcifront.o
drivers/pci/xen-pcifront.c:372: error: variable ‘pci_frontend_ops’ has initializer but incomplete type
drivers/pci/xen-pcifront.c:373: error: unknown field ‘enable_msi’ specified in initializer
drivers/pci/xen-pcifront.c:373: warning: excess elements in struct initializer
drivers/pci/xen-pcifront.c:373: warning: (near initialization for ‘pci_frontend_ops’)
drivers/pci/xen-pcifront.c:374: error: unknown field ‘disable_msi’ specified in initializer
drivers/pci/xen-pcifront.c:374: warning: excess elements in struct initializer
drivers/pci/xen-pcifront.c:374: warning: (near initialization for ‘pci_frontend_ops’)
drivers/pci/xen-pcifront.c:375: error: unknown field ‘enable_msix’ specified in initializer
drivers/pci/xen-pcifront.c:375: warning: excess elements in struct initializer
drivers/pci/xen-pcifront.c:375: warning: (near initialization for ‘pci_frontend_ops’)
drivers/pci/xen-pcifront.c:376: error: unknown field ‘disable_msix’ specified in initializer
drivers/pci/xen-pcifront.c:376: warning: excess elements in struct initializer
drivers/pci/xen-pcifront.c:376: warning: (near initialization for ‘pci_frontend_ops’)
drivers/pci/xen-pcifront.c: In function ‘pci_frontend_registrar’:
drivers/pci/xen-pcifront.c:382: error: ‘xen_pci_frontend’ undeclared (first use in this function)
drivers/pci/xen-pcifront.c:382: error: (Each undeclared identifier is reported only once
drivers/pci/xen-pcifront.c:382: error: for each function it appears in.)
drivers/pci/xen-pcifront.c: In function ‘pcifront_scan_bus’:
drivers/pci/xen-pcifront.c:421: warning: unused variable ‘err’
How do I proceed?
I’ve just forwarded to you ready .config file via xen-users
mailing list.
Thank you.
I am trying it out now.
Won’t know if it fixes the problem for a while.
Nevertheless, thank you for responding quickly.
I also updated post with link to
http://pastebin.com/mzn8WQXa
right after snapshot. That’s working 64-bit config
Sorry to say, but there is another error:
LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o: In function `xen_acpi_processor_get_info’:
/usr/src/linux-2.6-xen/drivers/acpi/processor_xen.c:204: undefined reference to `xen_pcpu_index’
Please, escalate to xen-devel mailing list.
Try
# make oldconfig
first
“Howto” you tried to follow did have been moderated.
Please, view :-
http://www.linuxtoday.com/infrastructure/2010101502135OSSV
I would also suggest another one :-
http://www.linuxtoday.com/infrastructure/2010101902635OSSV
Per my opinion 2.6.34.7 xenified aka Suse is pretty stable
and fast.
nice instructions
Great post!
Thanks for the info
Well…
The kernel boots fine.
But I can’t get a working Grub menu entry :
dpkg: version ‘/boot/xen.gz’ has bad syntax: invalid character in version number
Any idea ?
Nice work. I’m still waiting patiently for XEN to be brought into the mainstream Ubuntu server installation.
Is there a quick way to only install the necessary grub entry? As the majority reference symlinks back to xen-4.0.1.gz, why have them?
Thanks for the info, all was going fine until I tried to build XEN tools it exits with the following error.
/usr/include/gnu/stubs.h:7: fatal error: gnu/stubs-32.h: No such file or directory
compilation terminated.
make[10]: *** [tcgbios.o] Error 1
make[10]: Leaving directory `/usr/src/xen-4.0.1/tools/firmware/rombios/32bit/tcgbios’
make[9]: *** [subdir-all-tcgbios] Error 2
make[9]: Leaving directory `/usr/src/xen-4.0.1/tools/firmware/rombios/32bit’
make[8]: *** [subdirs-all] Error 2
make[8]: Leaving directory `/usr/src/xen-4.0.1/tools/firmware/rombios/32bit’
make[7]: *** [subdir-all-32bit] Error 2
make[7]: Leaving directory `/usr/src/xen-4.0.1/tools/firmware/rombios’
make[6]: *** [subdirs-all] Error 2
make[6]: Leaving directory `/usr/src/xen-4.0.1/tools/firmware/rombios’
make[5]: *** [subdir-all-rombios] Error 2
make[5]: Leaving directory `/usr/src/xen-4.0.1/tools/firmware’
make[4]: *** [subdirs-all] Error 2
Are you on 32 bit system ?
no currently using 64 bit system.
Linux virtual 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:45:36 UTC 2010 x86_64 GNU/Linux
Found the answer at http://wiki.xensource.com/xenwiki/Xen4.0
needed gcc-multilib
— .orig/tools/hotplug/Linux/xen-backend.rules 2010-10-05 14:08:56.436012895 +0400
+++ /tools/hotplug/Linux/xen-backend.rules 2010-10-05 11:48:38.694087211 +0400
@@ -9,3 +9,5 @@
+KERNEL==”evtchn”, NAME=”xen/%k”
+KERNEL==”blktap[0-9]*”, NAME=”xen/%k”
+KERNEL==”pci_iomul”, NAME=”xen/%k”
+KERNEL==”gntdev”, NAME=”xen/%k”
+KERNELS==”xen”, KERNEL==”xvd*”, SUBSYSTEM==”block”, OPTIONS+=”last_rule”
cant apply this patch
dnyanesh@dnyanesh-desktop:~/Downloads/xen-4.0.1$ patch -p1 -s -i ../grub2-fix.patch1
patch: **** malformed patch at line 8:
dnyanesh@dnyanesh-desktop:~/Downloads/xen-4.0.1$
what is missing?
please help me
Hi,
I solved the problem of patching but i got a new problem.
When i boot into xen it shows only console output
It doesn’t show gnome environment.
What is the problem ?
this is my grub menu entry
menuentry “Xen 4.0.1 / Ubuntu 10.10 kernel 2.6.32.26” {
insmod ext2
set root='(hd0,msdos4)’
multiboot (hd0,msdos4)/boot/xen.gz dummy=dummy dom0_mem=1024M
module (hd0,msdos4)/boot/vmlinuz-2.6.32.26-pv dummy=dummy root=/dev/sda4 ro console=tty0
module (hd0,msdos4)/boot/initrd.img-2.6.32.26-pv
}
please help me…..
hey,
please help me.
after booting in xen it doesn’t start gnome/gdm.
It only shows consol tty0
what i have to do to start gnome-session.
please please help me….
I have follow all the instructions in this guide.
But when i boot on Xen, in grub menu, Xen looks like to load, but it stop at Dom0 has maximum 24 VCPUs. And i can’t do anything.
Can you help me ?
Thanks
Regards
I am again building new xen-kernel using above instructions.
whether can i use provided .config file on my PC.
My PC is 32-bit PC.
Before this i have build the xen-kernel successfully, but it doesn’t start the gnome-session ,It directly login to tty1 console.
what should i do to fix this at this time.
Please help me.
thank you.
What are you supposed to do with the .config file after it is downloaded? I am new to this so please bear with me.
Place it into build directory and run :-
# make oldconfig
in the linux-2.6-xen directory?
It probably would make sense to add a step that explains what to do with the .config file and which folder to copy it to.
Also, should this go in the root of the specified directory or some other child folder.
> In the linux-2.6-xen directory?
Yes.
> It probably would make sense to add a step that explains
> what to do with the .config file and which folder to
> copy it to.
I am sorry, it’s just a blog been written on my own.
Detail manuals are written in another places by another
persons 🙂
Followed the guide but I always come up to a device not found error.
Described here : http://serverfault.com/questions/208777/installing-xen-4-0-1-from-source-on-ubuntu-10-10
[…] 参考:https://bderzhavets.wordpress.com/2010/10/15/set-up-xen-4-0-1-libvirt-0-8-3-on-top-of-ubuntu-10-10-de… 本作品采用知识共享署名 2.5 中国大陆许可协议进行许可。 […]
Do you have the 2.6.32.27-pv’s .config file?http://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git is already update their kernel from 2.6.32.24-pv to 2.6.32.27-pv, so there are a lot mistakes.
Or do you have linux-2.6.32.24-pv ops?please,give me a copy~
[…] https://bderzhavets.wordpress.com/2010/10/15/set-up-xen-4-0-1-libvirt-0-8-3-on-top-of-ubuntu-10-10-de… […]
Hi , I have implemented Your Instruction and don’t see any error while installation.When I reboot again with Xen Kernel and type:
$ xm info
Then Have the following error:
Error: Unable to connect to xend: No such file or directory. Is xend running?
More information :
/boot/grub/grub.cfg:
menuentry ‘Ubuntu, with Linux 2.6.32.43-pv’ –class ubuntu –class gnu-linux –class gnu –class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)’
search –no-floppy –fs-uuid –set 353ccbf3-2a35-4c62-bcff-492ad7cb0a23
multiboot /boot/xen.gz dummy=dummy dom0_mem=1024M
module /boot/vmlinuz-2.6.32.43-pv dummy=dummy root=UUID=353ccbf3-2a35-4c62-bcff-492ad7cb0a23 ro quiet splash
module /boot/initrd.img-2.6.32.43-pv
}
Please help me.
thank you.
Excellent post. I used to be checking constantly this blog and I’m inspired! Extremely useful info specifically the closing part 🙂 I take care of such info a lot. I used to be looking for this particular information for a very long time. Thanks and good luck.