[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] Howto compiling Xen 3.2 on Debian/Ubuntu (was: Compiling Xen-3.2.0)
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |