Hi Aurelien,

I attempted to build qemu from the current git debian-unstable branch, and it 
seems that such implementation of binfmt support doesn't allow chrooting into 
foreign target systems using qemu.

$ sudo chroot /srv/schroot/sid-armel/ ls
chroot: failed to run command `ls': Exec format error

$ ls -l /srv/schroot/sid-armel/{usr/bin/qemu-arm-static,usr/lib/qemu-user-
static/*}
-rwxr-xr-x 1 root root 1350244 Dec  2 15:08 /srv/schroot/sid-
armel/usr/bin/qemu-arm-static
-rwxr-xr-x 1 root root     684 Dec  3 10:08 /srv/schroot/sid-
armel/usr/lib/qemu-user-static/qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  3 10:32 /srv/schroot/sid-
armel/usr/lib/qemu-user-static/qemu-binfmt-arm -> qemu-binfmtfs/binfmt_misc/

$ ls -l /{usr/bin/qemu-arm-static,usr/lib/qemu-user-static/*}
-rwxr-xr-x 1 root root 1350244 Dec  2 10:48 /usr/bin/qemu-arm-static
-rwxr-xr-x 1 root root     684 Dec  2 10:02 /usr/lib/qemu-user-static/qemu-
binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-alpha -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-arm -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-armeb -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-cris -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-i386 -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-m68k -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-microblaze -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-mips -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-mipsel -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-ppc -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-ppc64 -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-ppc64abi32 -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-sh4 -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-sh4eb -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-sparc -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-sparc32plus -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-sparc64 -> qemu-binfmt
lrwxrwxrwx 1 root root      11 Dec  2 14:45 /usr/lib/qemu-user-static/qemu-
binfmt-x86_64 -> qemu-binfmt

I coundn't debug it much so I'm not sure, but I suspect this is because the 
binfmt qemu-through format is registered on shell script wrapper 
(/usr/lib/qemu-user-static/qemu-binfmt-arm), and when you chroot, there is no 
native script interpreter available to execute that wrapper.

The invocation without chrooting works well:

$ LD_LIBRARY_PATH=/srv/schroot/sid-armel/usr/lib:/srv/schroot/sid-armel/lib 
/srv/schroot/sid-armel/bin/ls
build  Desktop  download



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to