Quick start on setting up a armhf chroot on an existing Debian system

First it is necessary to debootstrap the chroot. It is necessary to tell debootstrap what archive to use.

debootstrap --arch=armhf sid /chroots/sid-armhf http://ftp.debian.org/debian/

If you are using an x86 machine you can use qemu-debootstrap from the qemu-user-static package instead;

qemu-debootstrap --arch=armhf sid /chroots/sid-armhf http://ftp.debian.org/debian/

Now chroot in, and mount proc as normal.

chroot /chroots/sid-armhf
mount -t proc proc /proc

If you're using qemu-bootstrap and schroot, the mounting of /proc can be automated through the configuration file.

It is recommended to create a /usr/sbin/policy-rc.d to prevent daemons from starting up inside the chroot. The file should be chmod 755. The following contents works fine (taken from pbuilder).

echo "************************************" >&2
echo "All rc.d operations denied by policy" >&2
echo "************************************" >&2
exit 101

Next you must edit /etc/apt/sources.list as the one generated by debootstrap is unusable. The list below covers both binary and source for armhf.

deb http://ftp.debian.org/debian sid main
deb-src http://ftp.debian.org/debian sid main

After editing source.list run apt-get update, install debian-archive-keyring (you will get a signature check warning at this stage) apt-get update again (since apt doesn't seem to recheck signatures until you apt-get update) and you should be able to install build-essential as normal.