Xenclient is one of those projects where you do a fairly small check out, perform some configuration, press the go button, and it builds a small universe worth of software, downloading things as needed. In my experience build-breakage usually ensues in such situations.
Here is the winning combination I came up with to compile the system on Lenny. Installing and testing I will leave for another day.
The build needs to be done on an x86 32bit system. It should be possible to do this non-natively using a cross-compiler or a chroot. I didn't feel like enhancing the difficulty of the task at hand, so I just found a system on which I could run a native compile.
A mailing list post breifly discussing this topic can be found here
Ensure that the following packages are installed: build-essential, bison, flex, guilt, texinfo, git, bcc, gettext, rsync, iasl, locales, python, gawk and subversion.
Ensure that the en_US.UTF-8 locale is present on the system. This can be done this before the locales package is installed by running the following. Note that debconf-set-selections needs to run as root, which can be achieved by prefixing its invocation with sudo, assuming sudo is set up.
# echo "locales locales/locales_to_be_generated string en_US.UTF-8 UTF-8" | \ debconf-set-selections
Or this can be done by after the locales package is installed by running the following as root:
# dpkg-reconfigure locales
Check-out the initial source code.
# git clone http://xenbits.xen.org/git-http/xenclient/build.git # cd build
Unset some environment variables.
# unset MAKE # unset CFLAGSThe build system bailed-out early on and asked me to unset CFLAGS. I bailed-out of my MAKE="make -j3" build when the load went over 3000!
Copy the sample configuration, disable partd and select the 2.6.18 kernel. My preference was for the 2.6.27.5 kernel, but this failed to build.
# cp configs/xenclient_config ./.config # echo "# BR2_PACKAGE_PARTED is not set" >> .config # echo "BR2_XENCLIENT_KERNEL_2_6_18=y" >> .config # echo "# BR2_XENCLIENT_KERNEL_2_6_27 is not set" >> .config
Activate the configuration.
# make oldconfig
Build.
# makeThis may take quite a while. It will download things, though it is nice enough to cache most of the downloads in
Ponder the installation instructions in the
Fri, 22 May 2009 13:46:03 +1000| Permalink