Many Linux developers in these years are working on porting Linux software on ARM architectures. Debian in particular offers the full distribution to be installed on supported devices, and I wanted to try it out. There are already images prepared for the Versatile platform (thanks to Aurélien Jarno), and with them it is possible to try Debian for ARM without owning an ARM platform, using QEMU.
The “qemu-system-arm” program must be installed. In Debian it is under the “qemu” package, in Ubuntu it is under the “qemu-kvm-extras” package.
I ran the following commands to download the ARM images and run the simulator:
$ wget http://people.debian.org/~aurel32/qemu/arm/debian_lenny_arm_small.qcow2 $ wget http://people.debian.org/~aurel32/qemu/arm/initrd.img-2.6.26-2-versatile $ wget http://people.debian.org/~aurel32/qemu/arm/vmlinuz-2.6.26-2-versatile $ qemu-system-arm -m 128M -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -initrd initrd.img-2.6.26-2-versatile -hda debian_lenny_arm_small.qcow2 -append "root=/dev/sda1"
The system slowly boots inside QEMU, and then a prompt appears; the root password is simply “root“. The system is already configured to be connected to the net, so it is really easy to install packages. I wanted to see a full blown graphical environment running, and LXDE is a good compromise between lightweight and functionality. I ran the following commands, and they worked for about an hour:
# aptitude update # aptitude safe-upgrade # aptitude install lxde
LXDE depends on X server, but the X environment is not configured to run immediately. I found here a solution that involves simply editing “/etc/X11/xorg.conf“, using an editor such as “vim” or “nano” that are already installed on the basic system. The X server must be told to use the framebuffer device, so a line must be added in the “Device” section:
... Section "Device" ... Driver "fbdev" EndSection ...
Then to start the graphic environment the ARM system can be rebooted, or simply the following command can be run:
# invoke-rc.d gdm start
The graphical login appears. The downloaded image already comes with an active user (username: “user“, password: “user“) that can log in and use the desktop. Once the environment is up, running the “free” command shows that around 100MiB are used, and the “df” command reports around 900MB of used disk space.
The QEMU emulation is quite slow, but it’s fast enough to try the software and understand what can already run on ARM. Meanwhile the Debian port continues with great speed, and many applications have already been ported to the “testing” and “unstable” branches, such as the lightweight web browser “Midori” and the video player “gnome-mplayer“.

Entries
Aapo
2010/10/18
Currently my (ARM-)cross compiler produces
a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
I cross-compiled simple ” int main() {return 0;} ” and drop it to qemu-debian-arm, but I can’t run it. Binaries inside debian-arm (e.g. bash) is
/bin/bash: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.6.12, not stripped
So differences are SYSV and 2.6.8 -> 2.6.12. What these means (or how I should proceed with it?)
Balau
2010/10/19
I suspect the difference is not just that: the linking must point to the same library versions compiled with compatible GCC version.
With my toolchain I get:
$ arm-none-linux-gnueabi-readelf -dl main|grep lib[Requesting program interpreter: /lib/ld-linux.so.3]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
I’m not sure what is the correct toolchain to cross-compile something to be run into this Debian system. The only way I know works for sure is installing gcc inside the QEMU guest and compiling from there, but it’s really slow!
I guess you could try the emdebian toolchains.
satish
2012/02/15
i am doing project on pda & i am using UBUNTU 11.10 version.
i want to download QEMU. for that i am using sudo apt-get install qemu-system command..
but it is giving me error showing- E: Unable to locate package qemu-system
please help me.
Balau
2012/02/15
I don’t have Ubuntu 11.10 installed so I can’t reproduce your problem.
From the package search I see that qemu-system should be present in the “universe” section.
Try do do “sudo apt-get update” and then retry the installation.
You can also search the package with “apt-cache search qemu”, or use the graphical interface (Synaptic).
You can also try to install the “qemu-kvm-extras” package, which in older releases was the one containing the “qemu-system-arm” program.