03
Aug 11

How I installed the Linaro’s toolchain

Last week, because of a distraction, I dd’ed my external hard disk, where I used to store my cross compilation setup. And yes, I lost everything: my OpenEmbedded working directory, my installation of the CodeSourcery toolchain, and a lot more.

But, as the people say, when the going gets rough, the rough get going. So I considered this mistake as a sane tabula rasa to start all over again, learning a few new tricks along the process.

My objective was to substitute the CodeSourcery toolchains for the Linaro’s one, because my main development boards are a beagle-board and a panda-board.

But I use Debian, not Ubuntu, where the Linaro’s toolchain can be deployed out-of-the-box. I had to compile it. For that I came aware of crosstool-ng, a nice utility, based on kconfig, to build toolchains, and also it supports Linaro in its last release.

To have only a toolchain is not enough. For example, my syslink wrapper depends upon libelf. A cross-compiled sysroot is also required. And for that I chose buildroot, which is another kconfig based utility to build complete embedded systems. And it integrates with crosstool-ng too!

Sadly, the version of crosstool-ng handled currently by buildroot is a bit older and do not include the Linaro’s toolchain. Nevertheless it was pretty much easy to modify in order to use the latest release of crosstool-ng (patch).

Now I will try to work with this environment, which, at first sight, looks comfortable and neat.

I have to add that OE is quite complete and it also includes the Linaro’s toolchain. Just I wanted to explore other options this time.