Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-users

Re: [Xen-users] Howto compiling Xen 3.2 on Debian/Ubuntu (was: Compiling

To: Kalle <kalle@xxxxxxxxxxx>
Subject: Re: [Xen-users] Howto compiling Xen 3.2 on Debian/Ubuntu (was: Compiling Xen-3.2.0)
From: Jeremie Le Hen <jeremie@xxxxxxxxxx>
Date: Thu, 24 Jan 2008 23:25:49 +0100
Cc: Xen-users@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 24 Jan 2008 14:30:25 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <Pine.LNX.4.64.0801242021180.15468@xxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
References: <1241F505DD3E2145B9BE36BDC4342CFE024049@xxxxxxxxxxxxxxxxxxxxxx> <20080123131434.GF86598@xxxxxxxxxxxxxxxxxxxxxxxx> <1241F505DD3E2145B9BE36BDC4342CFE02404B@xxxxxxxxxxxxxxxxxxxxxx> <20080123152640.GG86598@xxxxxxxxxxxxxxxxxxxxxxxx> <1241F505DD3E2145B9BE36BDC4342CFE024054@xxxxxxxxxxxxxxxxxxxxxx> <D16159AA-A1F0-4737-8A1F-EEE43CFE87A9@xxxxxxxxxxxxxxx> <fe9771a80801240448p6d5f5239ld0d72abecb6efe0c@xxxxxxxxxxxxxx> <3B1DDC21-E595-491F-AD87-D6F11211DC97@xxxxxxxxxxxxxxx> <20080124175739.GD8109@xxxxxxxxxxxxxxxxxxxxxxxx> <Pine.LNX.4.64.0801242021180.15468@xxxxxxxxxxxxxxxxxx>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.15 (2007-04-06)
Kalle,

On Thu, Jan 24, 2008 at 08:35:36PM +0200, Kalle wrote:
> > I finally carried out "make world" with Xen 3.2 after much struggle.
> > The problems occured in the kernel part of the world.
> 
>  I newer got 'make world' run succesfully.
>  Problem was that it can't download the kernel using mercurial.
>  Lenny and Etch both saffered this issue.

I've narrowed down the problem to buildconfig/select-repository.
In buildconfig/src.hg-clone you have (code intentionally clipped down):

% LINUX_SRC_PATH ?= .:..         # From mk.linux-2.6-xen
% LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg
% XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) 
$(LINUX_SRC_PATH))
%
% $(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
%         set -e ; \
%         if [ ! -e $(LINUX_SRCDIR)/.hg ] ; then \
%             __repo=$(XEN_LINUX_HGREPO) ; \
%             if [ -d $${__repo} ] ; then \
%                 echo "Linking $${__repo} to $(LINUX_SRCDIR)." ; \
%                 ln -s $${__repo} $(LINUX_SRCDIR) ; \
%             else \
%                 echo "Cloning $${__repo} to $(LINUX_SRCDIR)." ; \
%                 $(HG) clone $${__repo#file://} $(LINUX_SRCDIR) ; \
%             fi ; \
%             [...]

"set -e" means the while piece of script would fail if a single command
fails (without being catched).  OTOH buildconfig/select-repository
searches for ${LINUX_SRCDIR} in the colon-separated directory list
${LINUX_SRC_PATH}.  If it doesn't find ${LINUX_SRCDIR}, it fails with
"exit 1", so the script fails.

BTW, there is an obvious lack of synchronisation between the makefiles
and select-repository because the latter skips unconditionally "." while
${LINUX_SRC_PATH} unconditionally contains "." :-).

It happens that cloning Xensource's kernel source tree with Mercurial
besides Xen 3.2 directory leads the build infrastructure in a valid
path.

> > First, contrary to xen-3.1.0-src.tgz, xen-3.2.0.tar.gz doesn't come
> > along with the linux-2.6-xen-sparse/ and patches/ directories which
> > allow to build a xen-infied kernel from a vanilla kernel source.
> > Therefore it is impossible to use "make world XEN_LINUX_SOURCE=tarball".
> >
> 
>  That's shame, because I really would have those patches.
>  Other way would be that someone has documents about the ne "architecture".

>From what I've understood reading the buildconfig/ directory content,
you have two ways to fetch the kernel source.
- The default, named "hg-clone", uses Mercurial.
- The other one, "tarball", fetches the vanilla Linux kernel source but
  I think this one is non-functional because of lack of the
  aforementioned stuff.

You can switch to one or the other using XEN_LINUX_SOURCE make variable.
For instance:
% make dist XEN_LINUX_SOURCE=tarball

> > It is necessary, at least from my own understanding, to "make
> > prep-kernels" in order to create the kernel build directory.  Indeed if
> > you put your .config file directory into the kernel tree, the kernel's
> > build system will complain about its cleanliness and will ask you to run
> > "make mrproper".  The reason is that the kernel is not built directly in
> > the source tree -- as most of people used to do -- but instead uses a
> > separate directory to store produced object files, thus the assumption
> > about the cleanliness.
> >
> > So I devised with the following process to build Xen 3.2.
> > % mkdir build
> > % wget http://bits.xensource.com/oss-xen/release/3.2.0/xen-3.2.0.tar.gz
> > % tar xzf xen-3.2.0.tar.gz
> > % # Download the xenifid kernel tree manually, but NOT in xen-3.2.0/
> > % # because the buildconfig/select-repository script would skip it.
> > % # ! xen-3.2.0/ and linux-2.6.18-xen.hg/ must be at the same level !
> > % hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg
> > % cd xen-3.2.0
> > % make prep-kernels
> > % cp /boot/config-2.6.18-my build-linux-2.6.18-xen_x86_32/.config
> > % make dist
> 
> 
>  This is almoust same way I go.
> 
>  - Instead of 'make prep-kernels' I used 'make linux-2.6-xen-config 
>  CONFIGMODE=menuconfig'
>   -> Make little changes to kernel for my needs.
> 
>  - And instead of 'make dist' I used 'make linux-2.6-xen-build'
> 
>  - After that i did 'make install' but if I remember correctly i needed todo 
>  Grub's menu.lst, initrd and copy vmlinuz and modules to right places by 
>  myself.

Yes you are right.  Actually "make dist" does not install Xen.  It just
builds everything and create the layout in dist/.  I let the user
install the stuff following his requirements.

>  I still would like to know that is there any patches available.
>  Or is the only way to go mercurial?

Currently, it seems they are not provided any more with Xen 3.2.  I
don't know if this is a lack time or a 

>  How does this new "system" works?

See above.  I think a thorough explanation should be in the wiki.

>  I supposed that 'linux-2.6.18-xen.hg' ships with already patched?
>  Cos i don't see any patching happening when do 'make anything'

Yes.


Regards,
-- 
Jeremie Le Hen
< jeremie at le-hen dot org >< ttz at chchile dot org >

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users