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
signature.asc
Description: This is a digitally signed message part.