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

fakechroot + qemu user emulation



hi,

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

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

cheers
josch


Reply to: