Gerard Braad

F/OSS & IT Consultant on Openness and Interoperability

You can follow more frequent updates via my Identi.ca profile (feed).

Friday, May 01, 2009

Linux distributions for ARM

Recently there is a lot of attention for the ARM port of Linux. This is of course related to the netbooks and specialized distributions like Maemo for the Nokia Internet Tablets and Android from Google. Earlier I wrote a short post about the Hasty Hippogriff release of the Mojo Project. This Nokia-sponsored project ported Ubuntu's Hardy Heron to the ARM architecture. It allowed a full desktop distribution to be run on hardware like BeagleBoard. Luckily the major distributions also have increased their support for ARM. openSUSE, Debian and Ubuntu officially announced their support for the ARM architecture in their next release. This will allow companies to use a distribution like openSUSE as a thin client solution or for hardware developers to use Debian as their base system.

The distributions I have tried are Fedora 10, Debian 5.0 (Lenny) and Ubuntu 9.04. Debian 5.0 (Lenny) and Ubuntu 9.04 (Jaunty Jackalope) are now released. Debian provides downloads and bootstrap tools in their distro and lots of documentation. Despite the announcement it seems Ubuntu only has a release candidate?! So the release schedule seemed to not apply for the ARM architecture. Fedora however did not official announce any ARM support, but has a wiki page which describe how to use their distribution. openSUSE recently released a testing milestone for their 11.2 release, but I was unable to find the packages necessary to make a base system. I do have to make a note here: the openSUSE Build Service (OBS) provides ARM support for building packages for Fedora 10, Debian 5.0 and Ubuntu 9.04.

Below you can find the images I have created or used to test the distributions and the information I have used. These images are all base systems to get you started. They can serve as a starting point to create a build environment.

Fedora 10
Fedora does not provide official downloads, but all the files are provided on the wiki. To ease the deployment from a Windows system I created a usable root image which you can download from dropbox or vipeers and the kernel (dropbox). The archive can be unpacked using a tool like Winrar.

With the following command will start the qemu environment without networking:

qemu-system-arm.exe -M versatilepb -kernel zImage-versatile-2.6.24-rc7.armv5tel -hda rootfs-f10.img -append "root=/dev/sda"

You can login with username: root, without a password.

Ubuntu 9.04
Canonical only provides a Release Candidate for their ARM port of Jaunty Jackalope. You can find a the downloads from the cdimage server, such as a general image and an image for the NSLU2. I however built a new rootfs using the information provided on the wiki and the build-arm-rootfs script. This script will use debootstrap and qemu to produce a usable tarball or qemu image. I used the script to create a tarball and dumped this in a mounted image (the same as done for the fedora image).

You can download the root image from dropbox or vipeers and the kernel (dropbox).

To start the environment:

qemu-system-arm.exe -M versatilepb -kernel vmlinuz-2.6.28-11-versatile -hda rootfs-jaunty.img -append "root=/dev/sda"

To login use the username: ubuntu and the password: ubuntu.

Debian 5.0
The ARM support for Ubuntu is no miracle, as their base distribution Debian has support for this architecture. The installation guide can be found on the debian website. Using the debootstrap tool you can easily create your own rootfs. On the webpage of Aurélien Jarno (aurel32) you can find a complete article which describe the process of getting debian running on an emulated ARM using qemu on Linux. The root images and kernel he uses can be found here.

To start the environment:

qemu-system-arm.exe -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -hda debian_lenny_arm_small.qcow -append "root=/dev/sda1"

To login using the username: user and password: user. The password for root is root.

Notes
Read the How to use Network if you want to enable networking for the qemu environment on Windows.

Followers