On Monday 01 Aug 2016 12:19:41 waltd...@waltdnes.org wrote:
> On Mon, Aug 01, 2016 at 04:46:24PM +0100, Mick wrote
> 
> > On Monday 01 Aug 2016 11:23:03 waltd...@waltdnes.org wrote:
> > >   I recommend going with one of 3 "cheats"...
> > > 
> > > 1) A 32-bit chroot in a 64-bit machine
> > > 
> > > 2) A QEMU (or VirtualBox) 32-bit guest on a 64-bit host
> > > 
> > > 3) If you have a spare 64-bit machine, install 32-bit Gentoo on it
> > > 
> > >   I use option 2) both as my distccd server and to manually build Pale
> > > 
> > > Moon.  The target in both cases is an ancient 32-bit-only Atom netbook.
> > 
> > I'm trying your cheat (1) above, but I must be doing something wrong:
> > 
> > gentoo-32bit # linux32 chroot /mnt/iso/gentoo-32bit /bin/bash
> > chroot: failed to run command ???/bin/bash???: No such file or directory
> > 
> > gentoo-32bit # ls -la /bin/bash
> > -rwxr-xr-x 1 root root 705400 Jan  9  2016 /bin/bash
> > 
> > gentoo-32bit # ls -la ./bin/bash
> > -rwxr-xr-x 1 root root 677244 Jan 16  2016 ./bin/bash
> > 
> > gentoo-32bit # linux32 chroot /mnt/iso/gentoo-32bit ./bin/bash
> > chroot: failed to run command ???./bin/bash???: No such file or directory
> 
>   I believe that "/bin/bash" is the pathname after you switch to the
> chroot environment.  So you would need a 32-bit bash located at
> /mnt/iso/gentoo-32bit/bin/bash *BEFORE CHROOTING*.  See
> https://lwn.net/Articles/252794/
> 
> > What chroot() actually does is fairly simple, it modifies pathname
> > lookups for a process and its children so that any reference to a path
> > starting '/' will effectively have the new root, which is passed as
> > the single argument, prepended onto the path. The current working
> > directory is left unchanged and relative paths can still refer to
> > files outside of the new root.

Thanks Walter, it's present along with the whole of the 32bit OS fs:

gentoo-32bit # ls -la /mnt/iso/gentoo-32bit/bin/bash
-rwxr-xr-x 1 root root 677244 Jan 16  2016 /mnt/iso/gentoo-32bit/bin/bash

gentoo-32bit # file /mnt/iso/gentoo-32bit/bin/bash
/mnt/iso/gentoo-32bit/bin/bash: ELF 32-bit LSB executable, Intel 80386, 
version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for 
GNU/Linux 2.6.32, stripped


Am I missing something in the amd64 kernel to be able to execute 32bit code?
-- 
Regards,
Mick

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to