WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

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