[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

fakechroot + qemu user emulation


my goal is to build an armel rootfs without the need of super user

using fakeroot, doing a debootstrap or multistrap is possible without
the need of becoming root. using fakeroot i can even create device
nodes and such without a problem but at some point i will have to
chroot into the environment and execute some foreign binaries.
(for example to execute dpkg --configure -a for a multistrap)

for that i was using qemu-arm-static
$ cp /usr/bin/qemu-arm-static $ROOTDIR/usr/bin
and using the normal
$ sudo chroot $ROOTDIR /bin/sh
is working great but for that i have to have super user rights.

so fakechroot comes to the rescue.

in debootstrap with the same architecture as the host doing something
like this will works:
$ fakeroot fakechroot chroot $ROOTDIR_AMD64 /bin/sh

but this does not work if $ROOTDIR contains an armel debootstrap/multistrap
while i'm on amd64/i386.
if i try i get (i already have qemu-arm-static copied over):
$ fakeroot fakechroot chroot $ROOTDIR /bin/sh
/lib/ld-linux.so.3: No such file or directory

if i create a symbolic link from /lib/ld-linux.so.3 to /lib32/ld-linux.so.2 i get:
$ fakeroot fakechroot chroot $ROOTDIR /bin/sh
Unable to load interpreter

and if i use the ld-linux.so.3 from the armel libc6 package i get:
$ fakeroot fakechroot chroot $ROOTDIR /bin/sh
ERROR: ld.so: object 'libfakechroot.so' from LD_PRELOAD cannot be preloaded: ignored.

as you can see i do not posses enough knowledge to solve that issue myself
so hopefully someone here is able to hint how this problem can be resolved.

thank you in advance


Reply to: