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
|