Ubuntu ported to ARM
Apr 18, 2008 — by LinuxDevices Staff — from the LinuxDevices Archive — 44 viewsA Nokia-sponsored project is porting Ubuntu Linux to the ARM architecture. The “Handheld Mojo” team has completed ARM builds of Feisty Fawn (dubbed “Frisky Firedrake”) and Gutsy Gibbon (“Grumpy Griffin”), with Hardy Heron compilation starting soon.
digg this story |
Mojo's Ubuntu port for ARM can be tested in QEMU, an open source emulator that supports various ARM architectures. Or, it can be run in a chrooted environment from an SD flash memory card installed on Nokia's Linux-based N8xx series Internet tablets. Since the ports are built for ARM Ltd.'s ARMv5EL and ARMv6EL-VFP architectures, they should also run on lots of other devices with ARM9 and ARM11 cores.
With a few exceptions, most Ubuntu software compiles fine for ARM, according to Andrew Christian, the engineering fellow at Nokia who leads the effort. Notable exceptions are Java, Mono, G77 (a Fortran compiler), and the software that depends on them.
Speaking at the Embedded Linux Conference in Mountain View this week, Christian showed an N800 tablet running the GIMP, an open source image processing package that he said worked well on the device.
Christian told attendees that cross-compiling is much faster than native compilation. However, he said that most Debian (and by extension, Ubuntu) packages are not correctly set up for cross-build environments. For that reason, his team found it better to compile natively, because less human intervention is required.
In setting up a native build environment, Mojo went to the extent of assembling its own single-board computer around an ARM-based Intel processor. Installed in 1U rackmount cases, and stacked up in a rack, the boards can collectively compile the 25,000 binaries comprising a full Ubuntu distribution (some packages build more than one object file) in about 10 days, Christian said. He commented that cooling fans installed in the cases were “probably overkill.”
To bootstrap a native ARM development toolchain, Christian used the ARM EABI port contributed to Debian in early 2007 by single-board computer vendor ADS. This saved considerable time, he said.
Christian also said he thought Debian should change how it packages source code for ARM's several variations. Instead of treating each as a completely separate architecture, the project should use the Deb package format's directory structure to organize sub-architectures, and the architecture field in the format's meta-data to specify where the package ought to build, with “ARM-all” being one possible option.
In an interview with LinuxDevices, Christian said that his team looked forward to creating more powerful native ARM build systems. In particular, he was encouraged to try commodity ARM-based NAS servers that could be modified to accept up to 2GB of RAM, according to reports from hobbyists around the Internet. The current Mojo boards top out at 256MB, and become memory-bound building large packages like KDE, he said.
As an alternative to ARM-based machines, Mojo is also testing x86 servers with QEMU-ARM emulation software. QEMU is reportedly faster than real ARM hardware when run on newer x86-based PCs.
Besides Christian, other key developers working on the port include Brian Avery, veteran of HP's iPaq Linux port, and George France, former maintainer of the Linux kernel for the Alpha architecture.
Analysis
Dr. Ari Jaaksi (Click for Dr. Jaaksi's paper, “Building consumer products with open source software”) |
Nokia has long been a pioneer in the application of desktop software on embedded devices. For example, its Linux based Internet tablets run full-blown X11 and GTK+, instead of a lightweight “embedded” development framework like Qt/Embedded. And, rather than an embedded browser like Opera, Nokia's newest TabletOSes include a “MicroB” browser derived from Firefox. Desktop software is better tested, more familiar to users, and more compatible, Nokia's director of open source, Dr. Ari Jaaksi, is fond of observing.
As Intel launches Atom Centrino into the device market, Mojo's ports could help narrow x86's “software advantage.” While ARM may always win over x86 on low power and small size, due to legacy functions like instruction set decoding in x86, x86 does benefit from a massive body of well-tested software. And, as x86 pioneer Glenn Henry explained in a recent interview, “software begets more software.”
Software superiority has arguably enabled x86 to dominate the desktop and server markets over more “elegant” RISC-based architectures in the past. Why will things be any different in the long run in the mobile space? On the other hand, ARM is well-entrenched in devices, handily beating out Intel in embedded project starts for the last several years, according to LinuxDevices.com reader surveys.
Hopefully, Mojo will also consider an ARMv7 port, given that Texas Instruments has promised to offer inexpensive developer kits for its OMAP35xx parts. Based on dual-issue Cortex-A8 cores, these parts clock up to 600MHz, and thus could offer the performance of a hypothetical 1.2GHz ARM11 part within the power budget of a 600MHz ARM11.
Meanwhile, Ubuntu is gaining better support for devices with small screens and limited input devices, thanks to work by the Ubuntu Mobile and Embedded team, and its forebear, EmbeddedUbuntu, as well as Intel's Moblin project.
Availability
More details about the Mojo project — including downloads of Ubuntu for ARM — are available here.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.