by Philoo » Sun Mar 04, 2012 2:02 pm
Some people might feel this is obvious but this got me crazy for a couple days and I thought I'd share my finding.
if you follow
http://archlinuxarm.org/developers/distcc-cross-compiling exactly as written, your toolchain probably won't build.
Between "Install crosstool-ng" and "Downloading a CrossTool Configuration" you need
$this->bbcode_second_pass_quote('', '
')provide the tarball of the kernel used on your target
if not present create ~/cross/src folder
in that folder download the tarball of the kernel source of your target.
in my case with the cloud engine kernel for the pogoplug pro it is
http://download.pogoplug.com/opensource ... r2.tar.bz2 . depending on your hardware or project you may want or need a different kernel.
In the "Downloading a CrossTool Configuration" section before "./ct-ng build" you need to update your .config to reflect your custom kernel. For the pogoplugpro use the v5 configuration file.
The archlinux guide recommends not to use ./ct-ng menuconfig so I manually updated the file ~/cross/bin/.config
with the following
$this->bbcode_second_pass_quote('', '
')CT_KERNEL_LINUX_CUSTOM_LOCATION="${HOME}/cross/src/pogopro-linux-2.6.31.6-r2.tar.bz2"
then you can ct-ng build . It took about 2 hrs on my laptop (2x2.4GHz, 4GB ram, ubuntu 64bits, had to slow the processor speed half way through, it was having a heatstroke.)
Finally, if you want to cross-compile locally (as opposed to using dist-cc with the plug as master) you need to use the CROSS_COMPILE macro in your Makefile or command line e.g:
make CROSS_COMPILE=~/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi- all