July 5, 2012

4 Fine Linux ARM Distros

The ARM platform is exploding like a mad wet cat out of the bath. Here are four good distros cram-full of ARM fun.

Linux has had ARM support since forever, but it's been bumpy. There are hundreds of vendors of ARM devices (see Tiny Pluggable Linux ARM Computers Are Red-Hot for a sampling), all shoving their own personal hacked code out the door as fast as possible. This made Linux support complicated and unwieldy, to the point that Linus Torvalds threatened to stop accepting ARM changes in the mainline Linux kernel.

So, in classic Linux fashion, vendors and developers banded together and coordinated and consolidated their efforts, formed the Linaro non-profit engineering organization, and performed a sizable cleanup of redundant and bad code. Jonathan Corbet, editor of Linux Weekly News, predicts that "ARM will take its place as one of the primary Linux architectures" in 2012. This seems a safe prediction as ARM-based mobile devices are going to continue to sell like ice water in hell.

Android is also expected to harmonize, over time, with the mainline Linux kernel. So this confluence of ARM events means that we who like to play with stuff will have a little easier time of it. Me, I dream of embedded and mobile devices being as friendly to experimentation as the x86 platform. Don't laugh, it could happen. So which Linux is best for ARM? Why, lots of them.

There are a lot of different ARM processors, so this guide should help you sort them out. Wikipedia has an invaluable table that lists all the ARM microprocessor cores, so when you see terms like ARMv5TE or ARM9TDMI or Cortex-something, consult this table to know what the heck these are.


Arch Linux ARM

Arch Linux ARM is based on the excellent Arch Linux distribution. It's an active, fast-moving rolling release that is compatible with Arch, and in fine Arch fashion has good documentation. It's a complete Linux distribution with thousands of packages. This is the one I recommend to ARM noobs; it's lightweight, efficient, and the community support is quite good.

Arch Linux ARM runs on any processor that supports ARMv5TE or higher, which includes fun cheap boards and gadgets like Pogoplug, SheevaPlug, TonidoPlug, Raspberry Pi, BeagleBoard, CuBox, PandaBoard, and TrimSlice. Adventurous users have installed it on various smartphones.

Ubuntu ARM

Ubuntu is everywhere, including ARM devices. Like Arch ARM, Ubuntu ARM is a complete distribution with thousands of packages, both desktop and server. For example, you can install a complete LAMP stack and Drupal on a PandaBoard.

UNR, the Ubuntu Netbook Remix made an early attempt at an Ubuntu ARM netbook spin. One of its most promising features, in my un-humble opinion, was using the Enlightenment Foundation Libraries to power a beautiful 2D user interface with similar features to its 3D desktop. This made it possible to have a rich environment on ARM, which is plagued with licensing hassles for graphics hardware.

But UNR went away with Ubuntu 11.04. Or rather, it was "unified" with Ubuntu Desktop, and the UNR ARM port went away. The current Ubuntu ARM port supports ARMv7 and up, and targets the Thumb-2 instruction set, which is the modern 32-bit ARM instruction set. So this targets the newer higher-powered devices that support good video, audio, networking, and decent processing power for running applications.

Debian ARM

Debian has always supported more hardware architectures than any other Linux distribution, including ARM. The nomenclature is a bit confusing until you understand that it's specific to each ARM version. The first Debian ARM port was arm-linux-gnu, which supported ARMv3. arm-linux-gnu packages are in the arm section. The last arm packages appeared in Lenny. These were replaced with arm-linux-gnueabi in Lenny in the armel section, supporting ARMv4t and up. armel has been replaced by the arm-linux-gnueabihf port, armhf in Wheezy. armhf is ARMv7 and up, with the Thumb-2 instruction set.

The Debian documentation is rather shy of installation and hacking how-to's. This page in the Bodhi Linux forums, Debian ARM on Android tablets is a good starting point.

Fedora ARM

Fedora's ARM port has lagged behind Debian, Ubuntu, and Arch ARM, though it found new energy for Fedora 17, and it should be pretty solid for Fedora 18.

The interesting bit is a proposal to promote it to a primary Fedora architecture, from its current secondary status. Just as the names imply, a secondary architecture (SA) doesn't have to meet the same standards as a primary architecture (PA). All of the packages in a PA must build and work correctly, while an SA can sit on the back burner and not get a lot of attention. The proposal is looking to a future of 64-bit enterprise ARM servers, and ARM becoming the dominant hardware architecture over x86_64.

Fedora needs to get moving, because Canonical has already been grooming their original design manufacturers (ODMs) to make Ubuntu the first operating system ready to run ARMv8. There are two interesting PDFs to read on Index of /uhs/2011: Ubuntu-ARM-knowledge.pdf and Ubuntu ARM Roadmap.pdf. These have a lot of useful information on ARM and Canonical's roadmap.

The trusty old x86_64 platform has served us well for many years now, but its dominance is being challenged by ARM. As always there will be hurdles to openness, such as patents and loony experiments like Windows locking down the ARM bootloader. Maybe someday technological progress will be limited only by our ingenuity, rather than by lockin and lockdown.