Date: Mon, 26 Dec 2005 10:18:18 -0600 From: Astrodog <astrodog@gmail.com> To: Flavio Pimentel Silvestrow <bozo@abutre.homeip.net> Cc: freebsd-amd64@freebsd.org Subject: Re: Chroot to a 32 bits environment Message-ID: <2fd864e0512260818j869c6f2u1d7e61b22b8a41a8@mail.gmail.com> In-Reply-To: <1135509244.49716.24.camel@abutre> References: <1135509244.49716.24.camel@abutre>
next in thread | previous in thread | raw e-mail | index | archive | help
On 12/25/05, Flavio Pimentel Silvestrow <bozo@abutre.homeip.net> wrote: > Hello. > > I'm trying to setup a 32 bits environment on a amd64 system (6.0-STABLE > as of Dec 18). > > My goal is to be able to build (and run!) ports marked as > ONLY_FOR_ARCHS=3Di386. I'm not sure it's going to work, but I'm willing t= o > find out. > > Anyway, I built the 32 bits world and installed on a different folder, > like this: > > # cd /usr/src > # make TARGET_ARCH=3Di386 buildworld > # make TARGET_ARCH=3Di386 DESTDIR=3D/usr/32 installworld > > All went fine. I then mount /usr/32/dev adding the line below > to /etc/rc.conf and restarting devd: > > devfs_set_rulesets=3D"/usr/32/dev=3Ddevfsrules_jail" > > Finally, I mount /usr/32/proc and chroot the whole thing: > > # mount -t procfs proc /usr/32/proc > # chroot /usr/32 > > First error is: > > cannot stat /var/run/utmp. Please "unset watch". > > Which makes commands like 'who' unhappy. On to a more important test: > > # truss ping 127.0.0.1 > [ *** SNIP *** ] > gettimeofday({1135506828 464440},0x0) =3D 0 (0x0) > sendto(0x3,0x804ee14,0,0x0,{ AF_INET 127.0.0.1:0 },0x10) =3D 64 (0x40) > gettimeofday({1135506828 468435},0x0) =3D 0 (0x0) > gettimeofday({1135506828 470434},0x0) =3D 0 (0x0) > select(4,{3},0x0,0x0,{0 998001}) =3D 1 (0x1) > recvmsg() ERR#78 'Function not > implemented' > SIGNAL 12 (SIGSYS) > SIGNAL 12 (SIGSYS) > Process stopped because of: 16 > process exit, rval =3D 12 > Bad system call > > (Lines might wrap, sorry). > > So, recvmsg() not implemented? Something fishy... > > Lots of basic commands like netstat and top fail to work also (I can > send the output for those if anybody wants). I have COMPAT_IA32 on my > kernel. Not really sure what to do next... > > Sorry for the long post, and happy holidays to all! > > -- > Flavio Pimentel Silvestrow <bozo@abutre.homeip.net> Within the jail environment, it becomes impossible for the 32-bit binaries you're trying to run, to get to the libraries FreeBSD uses to provide 32-bit compat, I suspect. As far as the "Only for i386" stuff goes, in my experence, ~50% of the ports that show that, actually compile on amd64 without too much in the way of bug fixing. For the other 50%, I try to use things like i386 packages, which are, for the most part, perfectly happy on amd64.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2fd864e0512260818j869c6f2u1d7e61b22b8a41a8>