Since the only devices I own that have ARM processors are low-performance ones, I needed to set up a Virtual Machine to build packages and d-i images. Here is how I proceeded, in hope it might be useful to someone.

First, I've retrieved the d-i kernel and initrd from Then,

$ qemu-img create hdd 6Gio
$ qemu-system-arm -hda hdd -kernel vmlinuz-2.6.30-2-versatile -initrd initrd.gz -M versatilepb

Once the system was isntalled, I needed to retrieve the in-image kernel and initrd:

# mount -o loop,offset=32256 hdd /mnt/
$ cp /mnt/boot/vmlinuz ./
$ cp /mnt/boot/initrd.img ./
# umount /mnt

To run the system:

$ qemu-system-arm -hda hdd -kernel vmlinuz -initrd initrd.img -M versatilepb -append "root=/dev/sda1"

A not-so-trivial thing to do was to set up a virtual interface to ssh and scp to the VM. I have made a (quick) shell script to do that (and launch qemu with the good params). It's far from perfect but fits my needs. Here it is.

Don't forget to enable NAT on the host side:

# sysctl -w net.ipv4.ip_forward=1
# iptables -A POSTROUTING -t nat -j MASQUERADE -s