Gumstix notes

Update: Use this URL if your wget won’t resolve https connections: http://feeds.angstrom-distribution.org/feeds/unstable/ipk/glibc/armv7a/base/

The environment that has worked very well for me is to compile on-board (not cross-compiling) for anything small (see tip #2 below for how to get a compiler easily). That usually just works, is fast enough, and simplifies things a lot. When I need to compile something big, I’ve used distcc to get my desktop to help (over wifi). Below is an email from another guy in our lab who wrote down how to get that to work.

There’s a few other big tricks I’ve used.

1) If you’re using wifi, I wrote an article about getting that to work here: http://abarry.org/gumstix-wifi-wlan1-link-not-ready/

2) Add more repositories to the package manager. The default one barely has anything in it, but the main angstrom repo has a lot of stuff (much more like using apt-get) Again, this will only work with a network connection, but I think you can get a board that will give you that.

Page about it: http://gumstix.org/add-software-packages.html

Here’s the relevant part:

—–
By default, opkg uses the Gumstix repositories defined in the configurations files found under /etc/opkg/. This repository, however, does not contain all the packages you can build using OpenEmbedded. For example, we can add the armv7a baseĀ·Angstrom Distribution repository to our list of repositories.

$ opkg list | wc -l
17698
$ echo 'src/gz angstrom-base http://www.angstrom-distribution.org/feeds/unstable/ipk/glibc/armv7a/
base' > /etc/opkg/angstrom-base.conf
$ opkg update
...
$ opkg list | wc -l
21755

——

I highly recommend doing that. It made my life much simpler by allowing me to just install things like a compiler, etc.


distcc email


distcc worked like a charm once I finally figured out where the cross compiler was, and that the compilers needed to have the same name on the two systems. State estimator built, and runs as far as complaining about not getting a bot-param :-)

to get to the cross compiler setup environment according to:
http://www.gumstix.org/software-development/open-embedded/61-using-the-open-embedded-build-system.html

the cross compiler would then be in:

overo-oe/tmp/sysroots/i686-linux/usr/armv7a/bin/arm-angstrom-linux-gnueabi-gcc

To get distcc to work, I followed the distcc part of these instructions:
http://blog.kfish.org/2010/06/speeding-up-cross-compiling-with-ccache.html

The only other critical step was to create a symbolic link from the cross-compiler location to

/usr/local/bin/arm-angstrom-linux-gnueabi-gcc

Then to have Make to use distcc on the gumstix you need to do is set three environment variables:

export CC="distcc arm-angstrom-linux-gnueabi-gcc"
export CXX="distcc arm-angstrom-linux-gnueabi-g++"
export DISTCC_HOSTS="ip-of-desktop"