Wednesday, February 16, 2011

Installing Xen 4.0 on Ubuntu 9.04

Your boss pointed gun at your head and gave you two hours to make things work (I have had the privilege of working with one such person)
and to save your life you are searching various places on internet
You posted on a lot of forums and rather than getting any solution to your original problem what you were said to read is Eric Stevens non sensical guide
http://www.catb.org/~esr/faqs/smart-questions.html
and because of people like Eric Stevens using Linux or what ever becomes a real pain when most of the time on a forum the people who will give you some rant actually do not understand the issue.


Coming to real point

You downloaded Xen 4.0 on Ubuntu and now realized
the instructions here
https://help.ubuntu.com/community/Xen
are shit.
Then you are at the correct place.
What they don't tell you is to install dpkg-dev bridge-utils libncurses5-dev debhelper fakeroot
build-dep

typed
make world KERNELS="linux-2.6-xen0 linux-2.6-xenU"
as normal user you will get some thing similar.

select-repository: Searching `.:..' for linux-2.6.18-xen.hg
select-repository: Ignoring `.'
Unable to determine path to Linux source tree.
Falling back to linux-2.6.18-xen Mercurial repository.
Cloning http://xenbits.xensource.com/linux-2.6.18-xen.hg to linux-2.6.18-xen.hg.
/bin/sh: hg: not found
make[3]: *** [linux-2.6.18-xen.hg/.valid-src] Error 127
make[3]: Leaving directory `/home/tapas/xen-4.0.1'
make[2]: *** [linux-2.6-xen0-install] Error 2
make[2]: Leaving directory `/home/tapas/xen-4.0.1'
make[1]: *** [install-kernels] Error 1
make[1]: Leaving directory `/home/tapas/xen-4.0.1'
make: *** [world] Error 2

Solution of above problem

install the mercurial tool hg that is why you got above error.
sudo apt-get install mercurial







After this you some how started the process again

# configuration written to .config
#
make[4]: Leaving directory `/home/tapas/xen-4.0.1/linux-2.6.18-xen.hg'
make -C build-linux-2.6.18-xen0_x86_32 ARCH=$(sh buildconfigs/select-linux-arch linux-2.6.18-xen.hg) prepare
select-linux-arch: i386
make[4]: Entering directory `/home/tapas/xen-4.0.1/build-linux-2.6.18-xen0_x86_32'
make -C /home/tapas/xen-4.0.1/linux-2.6.18-xen.hg O=/home/tapas/xen-4.0.1/build-linux-2.6.18-xen0_x86_32 prepare
GEN     /home/tapas/xen-4.0.1/build-linux-2.6.18-xen0_x86_32/Makefile
scripts/kconfig/conf -s arch/i386/Kconfig
Using /home/tapas/xen-4.0.1/linux-2.6.18-xen.hg as source for kernel
GEN     /home/tapas/xen-4.0.1/build-linux-2.6.18-xen0_x86_32/Makefile
CHK     include/linux/version.h
UPD     include/linux/version.h
CHK     include/linux/utsrelease.h
UPD     include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-i386
awk: line 2: function gensub never defined
/home/tapas/xen-4.0.1/linux-2.6.18-xen.hg/scripts/Makefile.build:74: *** 'Your awk program does not define gensub.  Use gawk or another awk with gensub'.  Stop.
make[6]: *** [scripts_basic] Error 2
make[5]: *** [prepare] Error 2
make[4]: *** [prepare] Error 2
make[4]: Leaving directory `/home/tapas/xen-4.0.1/build-linux-2.6.18-xen0_x86_32'
make[3]: *** [build-linux-2.6.18-xen0_x86_32/include/linux/autoconf.h] Error 2
make[3]: Leaving directory `/home/tapas/xen-4.0.1'
make[2]: *** [linux-2.6-xen0-install] Error 2
make[2]: Leaving directory `/home/tapas/xen-4.0.1'
make[1]: *** [install-kernels] Error 1
make[1]: Leaving directory `/home/tapas/xen-4.0.1'
make: *** [world] Error 2

What your screwed up boss did not knew is to have following
apt-get build-dep xen-3.3
tapas@tapas:~/xen-4.0.1$
tapas@tapas:~/xen-4.0.1$ sudo apt-get build-dep xen-3.3
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting libcurl4-openssl-dev instead of libcurl3-dev
Note, selecting libpci-dev instead of pciutils-dev
The following NEW packages will be installed:
  comerr-dev diffstat dvipdfmx gawk graphviz lacheck latex-beamer latex-xcolor
  libaa1-dev libasound2-dev libaudio-dev libaudio2 libaudiofile-dev
  libcaca-dev libcurl3 libcurl4-openssl-dev libdirectfb-dev libdirectfb-extra
  libesd0-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libidn11-dev
  libjpeg62-dev libkadm55 libkrb5-dev libldap2-dev libnetpbm10 libpci-dev
  libpng12-dev libsdl1.2-dev libslang2-dev libsysfs-dev libvncserver-dev
  libvncserver0 libxext-dev lmodern mesa-common-dev netpbm pgf prosper ps2eps
  python-all python-all-dev python2.5 python2.5-dev python2.5-minimal quilt
  tex-common texlive-base texlive-base-bin texlive-base-bin-doc texlive-common
  texlive-doc-base texlive-extra-utils texlive-fonts-recommended
  texlive-fonts-recommended-doc texlive-generic-recommended texlive-latex-base
  texlive-latex-base-doc texlive-latex-recommended
  texlive-latex-recommended-doc texlive-pstricks texlive-pstricks-doc tipa
  transfig ttf-liberation x11proto-xext-dev
0 upgraded, 68 newly installed, 0 to remove and 0 not upgraded.
Need to get 147MB of archives.
After this operation, 321MB of additional disk space will be used.
Do you want to continue [Y/n]? Y

Now for your good health when you are doing circus with source codes it is always good to have them in /usr/src

make xen
make tools
make stubdom
make install-xen
make install-tools
make install-stubdom
and then compile dom0 kernel following
http://wiki.xensource.com/xenwiki/XenParavirtOps.
or perhaps a "make world" (without anything after that) might do
all the steps, but I prefer doing it one by one

mkdir linux-2.6-pvops.git.tmp
+ rmdir linux-2.6-pvops.git.tmp
+ git clone -o xen -n git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-pvops.git.tmp
/bin/sh: git: not found
make[3]: *** [linux-2.6-pvops.git/.valid-src] Error 127
make[3]: Leaving directory `/usr/src/xen-4.0.1'
make[2]: *** [linux-2.6-pvops-install] Error 2
make[2]: Leaving directory `/usr/src/xen-4.0.1'
make[1]: *** [install-kernels] Error 1
make[1]: Leaving directory `/usr/src/xen-4.0.1'
make: *** [world] Error 2
root@tapas:/usr/src/xen-4.0.1# aptitude install git
Reading package lists... Done

Solution for your stupid boss

aptitude install git-core

Then after this a circus which lasted for about 4 hours or more I got following
elif make -C linux-2.6-pvops.git ARCH=$(sh buildconfigs/select-linux-arch linux-2.6-pvops.git) defconfig O=$(/bin/pwd)/build-linux-2.6-pvops_x86_32 ; then \
   echo "Configured build-linux-2.6-pvops_x86_32 using defconfig" ; \
 else \
          echo "No configuration method found for this kernel" ; \
 fi
sed: can't read linux-2.6-pvops.git/Makefile: No such file or directory
make[3]: *** [build-linux-2.6-pvops_x86_32/include/linux/autoconf.h] Error 2
make[3]: Leaving directory `/usr/src/xen-4.0.1'
make[2]: *** [linux-2.6-pvops-install] Error 2
make[2]: Leaving directory `/usr/src/xen-4.0.1'
make[1]: *** [install-kernels] Error 1
make[1]: Leaving directory `/usr/src/xen-4.0.1'
make: *** [world] Error 2


My internet connection keeps disconnection so my make world stops

+ git clone -o xen -n git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-pvops.git.tmp
Initialized empty Git repository in /usr/src/xen-4.0.1/linux-2.6-pvops.git.tmp/.git/
fatal: Unable to look up git.kernel.org (port 9418) (Name or service not known)
make[3]: *** [linux-2.6-pvops.git/.valid-src] Error 128
make[3]: Leaving directory `/usr/src/xen-4.0.1'
make[2]: *** [linux-2.6-pvops-install] Error 2
make[2]: Leaving directory `/usr/src/xen-4.0.1'
make[1]: *** [install-kernels] Error 1
make[1]: Leaving directory `/usr/src/xen-4.0.1'
make: *** [world] Error 2

No comments: