Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 01 Jun 2014 11:24:12 -0700
From:      Alfred Perlstein <bright@mu.org>
To:        Jason Hellenthal <jhellenthal@dataix.net>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re: Upgrading an i386 machine from amd64.
Message-ID:  <538B6FCC.9090301@mu.org>
In-Reply-To: <5B82C892-12A4-4251-B3D2-A6D3EAAF90F9@dataix.net>
References:  <538B61EC.9000403@mu.org> <5B82C892-12A4-4251-B3D2-A6D3EAAF90F9@dataix.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On 6/1/14, 10:34 AM, Jason Hellenthal wrote:
> What if you just NFS mount the obj directory from the 386 to the amd64 
> build world for 386 the mount the src on the i386 and just rebuild 
> strip and friends ?
>
> A little more of a hack i know but would get the job done.

I tried that using install(1), then it broke with strip(1), then I 
basically was like, "this is a rabbit hole, forget it" and used rsync.

I was really looking for a "buildinstalltools" or something target (as 
you suggest), but I couldn't find one.

Is there an "buildinstalltools" target?

-Alfred
>
> -- 
>  Jason Hellenthal
>  Voice: 95.30.17.6/616
>  JJH48-ARIN
>
> On Jun 1, 2014, at 13:25, Alfred Perlstein <bright@mu.org 
> <mailto:bright@mu.org>> wrote:
>
>> Hello hackers.
>>
>> Is there a way to build on amd64 and then mount over nfs the build 
>> and src and installworld from an i386 machine?
>>
>> The problem seems to be that "install" and "strip" and etc are built 
>> as amd64 binaries so that the installworld will fail.
>>
>> Below I have a solution I was going to do a blog post about, but then 
>> realized maybe I'd be leading people down the wrong path.
>>
>> Can someone verify that I need to use rsync as opposed to 
>> installworld for this to work?
>>
>> I have an old i386 based soekris geode box called "soekris":
>> CPU: Geode(TM) Integrated Processor by AMD PCS (499.91-MHz 586-class CPU)
>>  Origin = "AuthenticAMD"  Id = 0x5a2  Family = 0x5  Model = 0xa 
>> Stepping = 2
>> Features=0x88a93d<FPU,DE,PSE,TSC,MSR,CX8,SEP,PGE,CMOV,CLFLUSH,MMX>
>>  AMD Features=0xc0400000<MMX+,3DNow!+,3DNow!>
>> real memory  = 536870912 (512 MB)
>> avail memory = 502792192 (479 MB)
>>
>> Building on this machine is difficult because of the speed and lack 
>> of space, so I decided to use my more powerful amd64 machine "spigot":
>> CPU: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (3392.37-MHz K8-class CPU)
>>  Origin="GenuineIntel"  Id=0x206a7  Family=0x6  Model=0x2a Stepping=7
>> ...
>> real memory  = 17179869184 (16384 MB)
>> avail memory = 16585228288 (15816 MB)
>> FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads
>>
>> So I've built an 10-stable on the amd64 machine using:
>>
>> spigot % TARGET=i386
>> spigot % make -j24 buildworld
>> spigot % make -j24 buildkernel
>>
>> Works great, I get an i386 object tree under /usr/obj/i386.386/...
>>
>> Then I go to install this over NFS and this is where I get stuck.
>>
>> If I mount the i386 machine like so and install I get errors on libc 
>> and other libraries:
>>
>> spigot % mount soekris:/ /usr/soekris
>> spigot % cd /usr/src && make installworld
>> .....
>> ===> lib/libcrypt (install)
>> install -C -o root -g wheel -m 444   libcrypt.a /usr/soekris/usr/lib
>> install -C -o root -g wheel -m 444   libcrypt_p.a /usr/soekris/usr/lib
>> install -s -o root -g wheel -m 444   -fschg  libcrypt.so.5 
>> /usr/soekris/lib
>> install: /usr/soekris/lib/libcrypt.so.5: Input/output error
>> *** Error code 71
>>
>> Stop.
>> make[5]: stopped in /usr/trees/freebsd.git/lib/libcrypt
>> *** Error code 1
>>
>> OK, so that doesn't work...
>>
>> Maybe if I mount the amd64 build host under the soekris box, no that 
>> breaks because the bootstrap tools (install(1), strip(1)) are built 
>> for amd64 so the install fails.
>>
>> So what I finally did on the amd64 box was:
>>
>> spigot % mkdir /use/soekris.local
>> spigot % make installworld DESTDIR=/usr/soekris.local
>> spigot % mount soekris:/  /usr/soekris
>> spigot % rsync -avvH /usr/soekris.local/ /usr/soekris/
>>
>> That hung at the end forever at the end:
>> var/unbound/
>> var/yp/
>> var/yp/Makefile
>> var/yp/Makefile.dist
>> ....
>>
>> but after giving it an hour I just hit ^C and rebooted and everything 
>> was more or less fine.
>>
>> Is there a better way to do this?  Was the "installworld to NFS" 
>> breaking because of NFS bugs?  Should I get those to Rick?  I'm just 
>> confused.
>>
>> -Alfred
>> _______________________________________________
>> freebsd-hackers@freebsd.org <mailto:freebsd-hackers@freebsd.org> 
>> mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>> To unsubscribe, send any mail to 
>> "freebsd-hackers-unsubscribe@freebsd.org 
>> <mailto:freebsd-hackers-unsubscribe@freebsd.org>"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?538B6FCC.9090301>