Comments on Installing Xen 3.3 With Kernel 2.6.27 On Ubuntu 8.10 (x86_64)

Installing Xen 3.3 With Kernel 2.6.27 On Ubuntu 8.10 (x86_64) This tutorial shows how you can install Xen 3.3 on an Ubuntu 8.10 host (dom0). Xen 3.3 is available from the Ubuntu 8.10 repositories, but the Ubuntu 8.10 kernels (2.6.27-x) are domU kernels, i.e., they work for Xen guests (domU), but not for the host (dom0). Therefore we need to build our own dom0 kernel. This guide explains how to do this with a 2.6.27 kernel.

10 Comment(s)

Add comment

Please register in our forum first to comment.

Comments

By: Boris
By: Ranjan

Hi, I am able to compile successfully but when I do an ls -l I can't see an entry like the one below which means that for some reason this has not been downloaded into /boot. As such I can't boot into any kernel since this has to be loaded first.

-rw-r--r-- 1 root root 470144 2008-10-06 20:15 xen-3.3.gz

 

Has anyone faced this problem ?

Thanks

Ranjan

By: Detlef

I followed this very useful description and successfully made my new XEN kernel for amd_64. However after compilation the kernel didn't boot on my rented webserver. As I have no console access during the bootphase the cause was not directly visible.

When I compared the size of the /lib/modules directory and the original initrd files  I realized that it was probably due to missing drivers (raid support etc). So I modified the kernel generation by copying the original kernel config file 

cp /boot/config-2.6.27-11-server ~/build/linux-2.6.27-xen/.config

before running the menuconfig. So all the kernel setting were similar to the normal Ubuntu kernel and the similar modules were compiled and added. However with the default setting the created initrd was 50 Mbytes in size compared to the normal 9Mbytes.

This can be controlled by changing the /etc/initramfs-tools/initramfs.conf The change of

MODULES=most

to 

MODULES=dep

before creating the new initrd let the system only included the used modules in the initrd.

Here the size of my installation

ls -la /boot/*2.6.27.5* /boot/*2.6.27-11*

-rw-r--r-- 1 root root 1258976 Mar 19 14:47 /boot/System.map-2.6.27.5
-rw-r--r-- 1 root root   87245 Mar 19 14:47 /boot/config-2.6.27.5
-rw-r--r-- 1 root root 9208093 Mar 19 14:49 /boot/initrd.img-2.6.27.5
-rw-r--r-- 1 root root 2195195 Mar 19 14:47 /boot/vmlinuz-2.6.27.5

-rw-r--r-- 1 root root 1354638 Jan 29 21:23 /boot/System.map-2.6.27-11-server
-rw-r--r-- 1 root root  504280 Jan 29 21:23 /boot/abi-2.6.27-11-server
-rw-r--r-- 1 root root   85313 Jan 29 21:23 /boot/config-2.6.27-11-server
-rw-r--r-- 1 root root 8984287 Mar 19 07:45 /boot/initrd.img-2.6.27-11-server
-rw-r--r-- 1 root root    1130 Jan 29 21:27 /boot/vmcoreinfo-2.6.27-11-server
-rw-r--r-- 1 root root 2341536 Jan 29 21:23 /boot/vmlinuz-2.6.27-11-server

 

 

By: Anonymous

I get an error when building the kernel :(

WARNING: modpost: Found 1 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
  GEN     .version
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
arch/x86/kernel/built-in.o: In function `timer_interrupt':
/usr/src/linux-2.6.27-xen.hg/arch/x86/kernel/time_32-xen.c:469:
undefined reference to `__udivdi3'
make: *** [.tmp_vmlinux1] Error 1

By: Anonymous

you need to use older (e.g. gcc-4.2) 

if it is possible dont use Ubuntu 8.10 as system where you would be compile xen kernel 

By: amir

root@ubunzzo:/usr/src/linux-2.6.29.2-xen# vi /usr/src/linux-2.6.29.2-xen/arch/x86/kernel/time_32-xen.c

My attempt after reading reference (2) was successful, I inserted the asm(“”:”+r”(delta)) to the timer_interrupt function at the while scope at line number around 500.

        /* System-wide jiffy work. */
        if (delta >= NS_PER_TICK) {
                do_div(delta, NS_PER_TICK);
                processed_system_time += delta * NS_PER_TICK;
                while (delta > HZ) {

                        asm("":"+r"(delta));

                        do_timer(HZ);
                        delta -= HZ;
                }
                do_timer(delta);
        }

* This works because this asm fools gcc compiler not to use optimization.

source : http://mulps.wordpress.com/2009/05/29/compiling-xen-kernel-2-6-29-2/

By: Tapas

I also had the same issue here is the solution some one from community helped

By: Wodin

No need for "sudo su" when "sudo -i" will do.

By: Taner

Hi,

I used your instruction  to install Xen 3.3 on top of my Ubuntu 9.04 Desktop amd64 (ext4). Unfortunately my Xen Kernel didn't boot up. There are the following errors.

Begin: Running /scripts/local-premount ...
19+0 records in
19+0 records out

kinit: name_to_dev_t(/dev/disk/by-uuid/874b696f-fd43-4c6d-9493-a8a01941bbc0) = dev(8,4)
kinit: trying to resume from /dev/disk/by-uuid/874b696f-fd43-4c6d-9493-a8a01941bbc0
kinit: No resume image, doing normal boot...
Done.
mount: mounting /dev/sda1 on /root failed: No such file or directory
Done.
mount: mounting /dev on /root/dev failed: No such file or directory
Done.
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
Target filesystem doesn't have /sbin/init.
No init found. Try passing init= bootarg.


By: Anonymous

I am having problem in this step "hg clone http://xenbits.xensource.com/ext/linux-2.6.27-xen.hg". I am behind proxy. I am getting error "destination directory: linux-2.6.27-xen.hg
abort: error: Connection timed out". Should i set http_proxy or anything else.

 Thank you.