News: 0.9.6 release April 2, 2009

What is Firmware Linux?

Firmware Linux is an embedded Linux build system, designed to eliminate the need for cross compiling.

The build system is a series of bash scripts which create a small native Linux development environment for each target, runnable on real hardware or under emulators such as QEMU.

Currently supported targets include arm, mips, powerpc, and x86, x86-64. Partial support is available for sparc, sh4, and m68k.

For more information, see the documentation page.

Downloading Firmware Linux

Source Code

The current source tarball is Firmware Linux version 0.9.6. This is the series of shell scripts you run to create the various binary images. See the README for usage instructions, and the release notes.

Several prebuilt binary images are available, based on the current Firmware Linux release.

System Images

System images provide a complete native development environment, based on seven packages: Linux, uClibc, BusyBox, binutils, gcc, make, and bash. (The build also uses the toybox, genext2fs, uClibc++, and distcc packages, but does not depend on them to achieve a self-hosting OS image.)

System image tarballs contain an ext2 root filesystem image and a kernel configured to boot under the emulator QEMU. Use the "./run-emulator.sh" script to use qemu to emulate the appropriate target system, giving you a shell prompt within the native development environment. (Type "exit" when finished.)

Root filesystem tarballs

If you prefer to package your own filesystem images, or use QEMU's application emulation mode, you can download each target's root filesystem packaged in a tarball.

Cross compilers

Prebuilt binary cross compilers for use on i686 or x86-64 hosts.

Development

The project maintains a development repository using the Mercurial source control system. This includes RSS feeds for each checkin and for new releases.

Questions about Firmware Linux should be addressed to the project's mailing list, the IRC channel #firmware on irc.freenode.org. The project maintainer's blog often includes notes about ongoing Firmware Linux development.