zava\.zava\@libero\.it
2008-Jan-25 09:42 UTC
Fwd:Re: [Xen-users] Howto compiling Xen 3.2 on Debian/Ubuntu
Thanks to all of you it works! Now some questions...what about xen-tools and xen hypervisor? Are the debian one ok / compatible or they have to be compiled from source? Thanks. Jeremie Le Hen ha scritto:> 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, >_______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users