Static ARM Binaries of Common GNU Utilities

Why, you ask?

Simple answer: because I couldn't find them anywhere else. I use a venerable Buffalo Terastation and sometimes log into the thing directly. Despite being weedy (128MB of memory, cut-down Linux OS) it's always switched on so a good place to leave long-running services. And it runs a bunch of customized backup scripts. Sadly the apps in its weedy little Linux stack leave much to be desired so finally I got around to cross-compiling the things I missed the most.

Cross-compiling was done using Uwe Hermann's excellent ARM toolchain. It took a couple of ugly hacks to persuade them to build - particularly to discourage autoconf from bombing out because its ARM-specific test binaries wouldn't run on my x86 build host!

Binaries are gzipped, so remember to gunzip them before transferring to your embedded system. If you have one /usr/local/bin is probably the best place to install them.


Will They Work for Me?

So long as you have a modern ARM processor with an FPU, an /etc/passwd and some kind of libc it's worth a try! Since they're static binaries there should be no outside dependencies apart from a couple of simple calls to libc. They work well on my Buffalo Terastation and even a friends Chumby.

Notes:

  1. Binaries are built with a view to functionality rather than size - since they're a couple of MB really weedy ARM systems might run into trouble loading them.
  2. Those reliant on user account functions (e.g. getpwuid() ) won't work on Android - it doesn't have an /etc/passwd


Works on my Terastation...

root@TS-HTGL4F5:~# cat /proc/cpuinfo 
Processor       : ARM926EJ-Sid(wb) rev 0 (v5l)
BogoMIPS        : 498.07
Features        : swp half thumb fastmult edsp java 
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 0
...
Hardware        : MV-88fxx81
Revision        : 0000

root@TS-HTGL4F5:~# uname -a
Linux TS-HTGL4F5 2.6.16.16-arm1 #16 Tue Jun 26 22:13:13 JST 2007 armv5tejl unknown

And on a friend's Android phone...

Processor        : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 1009.58
Features        : swp half thumb fastmult vfp edsp thumbee neon
CPU implementer        : 0x51
CPU architecture: 7
CPU variant        : 0x1
CPU part        : 0x00f
CPU revision        : 1

Hardware        : vision
Revision        : 0080
Serial                : 0000000000000000

And...


DISCLAIMER

These binaries are provided as-is with no warranty. They work for me but I accept no responsibility if they run over your house, set fire to your cat or delete your data. Or (more likely) just crash.


LICENSE

This page contains simple builds of standard GNU utilities cross-compiled and statically linked for the ARM architecture for your convenience. Source links are provided and I encourage you to have a go at rolling your own.

Who Are You?

Contact me on mock@mocko.org.uk.



GNU Screen 4.0.3

Static ARM binary / GNU source


GNU Tar 1.26

Static ARM binary / GNU source

Why replace the `tar` your small ARM system (probably) already has? Most likely because it's an old BusyBox version that doesn't support filenames longer than 100 characters. This broke my backups until I noticed and installed the GNU version to use instead.


Updated 2011-08-06.