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

On a recent sid, /etc/apt/sources.list as generated by debootstrap was usable. If it is not, please use the following example. 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

On a recent sid, debian-archive-keyring was already installed. If it is not, please run apt-get update and install debian-archive-keyring. (You will get a signature check warning.) Then please run apt-get update again (apt will not use the keyring before you do) and you should be able to install build-essential as normal.