Seabright Technology Header Image

Posts under ‘Linaro’

Linaro is hiring!

Interested in working with us on improving the performance of Linux on ARM? We’re looking for motivated engineers to work in our toolchain team on compiler technology, developer tools, and low level performance libraries. You will use your specialised knowledge to work in the open, work upstream, and make ARM flavoured improvements to a range [...]

Running Raspbian inside Linaro QEMU

Raspbian is a hard float build of Debian wheezy for the ARMv6K processor in the Raspberry Pi. Here’s yet another set of instructions for running the image under QEMU, this time using the pre-built Linaro goodness that comes with Ubuntu Precise. This is a hack that happens to work – see Peter’s comment below for [...]

Using vision to measure wheel speed

One of my after-hours projects is to get my Traxxas Rustler XL-5 to take itself for a drive. The first steps are measuring the open loop response, including how the PWM drive into the motor controller turns into a no-load wheel RPM. I don’t have a tacho but I do have a web cam, an [...]

Value profile optimisations in GCC

I’m looking into profile guided optimisation (PGO) in GCC as a future topic for the Linaro Toolchain team. PGO works by having you build your program twice: once to instrument and record what the program actually does and then again using that profile to better optimise. One optimisation is to track the values used in [...]

Kernel not booting with Linaro GCC?

Is your ARM Linux kernel not booting when building with Linaro GCC or FSF GCC 4.7? Does it halt shortly after showing ‘Uncompressing Linux’? You may have run into an interaction between older kernels and the new unaligned access support in GCC. This affects Linaro GCC from 4.6-2011.11 onwards, GCC from 4.7.0 on, and kernels [...]

Faster archiving of GCC by doing less

We squirrel away the results of each Linaro GCC auto build so that they can be used for later benchmarking, testing, or regression hunting. This was taking around 25 minutes on a PandaBoard which, even on a 16 hour build, is too long. The old method was: Install to $build/install Copy $build/install to gcc-linaro-$version-$buildid so [...]

Load when building GCC

As part of our development process, we take each merge request or commit and build it natively on all of our supported architectures. It’s a bit painful on ARM as GCC is properly big, so a three stage quad language bootstrap plus the testsuite can take 19 hours. I thought I’d profile one of the [...]

Cross testing under QEMU

We use QEMU to test programs built by the toolchain binary release for correctness. I’ve written up the instructions for spinning up your own at: It’s focused on simplicity – getting a running, SSH only Cortex-A9 up and going as soon as possible. It’s not the latest, not graphical, and doesn’t replace the deeper [...]

Using the cloud for large Launchpad uploads

We host Linaro GCC up on Launchpad. It’s a bit tricky uploading a ~70 MB tarball over a non-resuming web form from New Zealand so I use VNC, Chromium, and an EC2 instance with a nice fat pipe instead. Here’s how. On EC2: SSH in with a bonus tunnel for the VNC server using ssh [...]

Using the Linaro LEB on a BeagleBone

A bonus about going to Linaro Connect is I can satisfy my gadget urges without paying for the extra postage to get things to NZ. This trip included a BeagleBone from Farnell’s. I’ve written some terse notes on using the Linaro LEB on it and setting up the USB network gadget for easy networking.