Date: Thu, 16 Mar 2017 15:23:32 +0100 (CET) From: =?ISO-8859-1?Q?Trond_Endrest=F8l?= <Trond.Endrestol@fagskolen.gjovik.no> To: Matthias Apitz <guru@unixarea.de> Cc: freebsd-current@freebsd.org Subject: Re: update an older i386 CURRENT system to amd64 CURRENT Message-ID: <alpine.BSF.2.20.1703161458130.533@mail.fig.ol.no> In-Reply-To: <20170316114126.GA4724@c720-r314251> References: <20170316114126.GA4724@c720-r314251>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 16 Mar 2017 12:41+0100, Matthias Apitz wrote: > > > Hello, > > I have an older FreeBSD 9.0-CURRENT system which I want to update to > 12-CURRENT: > > # uname -a > FreeBSD vm-9Current 9.0-CURRENT FreeBSD 9.0-CURRENT #2 r220692: Sun Apr 17 03:28:12 CEST 2011 guru@tinyCurrent:/usr/obj/usr/src/sys/GENERIC i386 > > To do so without compiling everything from scratch, I transferred > /usr/src (r314251) and /usr/obj to this server, the compilation of > /usr/obj was done on an amd64 server and the same procedure (transfer > of /usr/src and /usr/obj) was also used to update my C720 netbook; the > difference is here that the host which should be update is i386. > > The 'make installkernel' did not work: > > # pwd > /usr/src > # file ../obj/usr/src/sys/GENERIC/kernel > ../obj/usr/src/sys/GENERIC/kernel: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), not stripped > > # make installkernel > > -------------------------------------------------------------- > >>> Building an up-to-date bmake(1) > -------------------------------------------------------------- > sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 make > /usr/obj/usr/src/make.i386/bmake > -------------------------------------------------------------- > >>> Installing kernel GENERIC > -------------------------------------------------------------- > cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=/usr/obj > MACHINE_ARCH=i386 MACHINE=i386 CPUTYPE= > GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin > GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font > GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc > -isystem /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" CXX="c++ -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" CPP="cpp -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" AS="as" AR="ar" LD="ld" LLVM_LINK="" > NM=nm OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" > PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin > /usr/obj/usr/src/make.i386/bmake KERNEL=kernel install > cc: Exec format error > bmake[1]: "/usr/src/share/mk/bsd.compiler.mk" line 145: Unable to > determine compiler type for CC=cc -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin. Consider setting COMPILER_TYPE. > *** Error code 1 > > > Also the following did not work: > > # make installkernel MACHINE_ARCH=amd64 MACHINE=amd64 > > -------------------------------------------------------------- > >>> Building an up-to-date bmake(1) > -------------------------------------------------------------- > sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 make > /usr/obj/usr/src/make.amd64/bmake > -------------------------------------------------------------- > >>> Installing kernel GENERIC > -------------------------------------------------------------- > cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=/usr/obj > MACHINE_ARCH=amd64 MACHINE=amd64 CPUTYPE= > GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin > GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font > GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc > -isystem /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" CXX="c++ -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" CPP="cpp -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" AS="as" AR="ar" LD="ld" LLVM_LINK="" > NM=nm OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" > PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin > /usr/obj/usr/src/make.i386/bmake KERNEL=kernel install > cc: Exec format error > bmake[1]: "/usr/src/share/mk/bsd.compiler.mk" line 145: Unable to > determine compiler type for CC=cc -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin. Consider setting COMPILER_TYPE. > *** Error code 1 > > > Is there a way to use this /usr/src and pre-compiled /usr/obj on an i386 > host for update? Or do I have to use a complete recompile or even > reinstall, based on a 64-bit memstick system? I have in the past successfully migrated i386 to amd64 by cheating a bit: overwriting select parts of the base system with their amd64 counterparts from a snapshot (CD or memorystick) while exempting a few vital directories, /boot (not when replacing the kernel), /etc, /root, and /var. Since you're running the GENERIC kernel, all you need is the latest -current snapshot. Here are my notes from when I was "researching (and perfecting?)" the methodology: http://ximalas.info/2015/01/17/migrating-freebsd-from-i386-to-amd64/ YMMV, but this was less of a hassle than following https://wiki.freebsd.org/amd64/i386Migration. Last Easter I transformed four systems from 9-stable i386 UFS to 10-stable amd64 ZFS, using hardware I had selected for replacing the old hardware. The old systems were transferred to the new systems using tar and nc. That way the old systems kept humming while I recompiled base, ports, etc, on their replacements. Here are three things I didn't do/tried before "going live" last year: recursively copying /usr/local/lib to /usr/local/lib/compat/lib32, creating /usr/local/libdata/ldconfig/lib32 containing the line "/usr/local/lib/compat/lib32", and running ldconfig -R. When all parts of the new systems was in amd64 shape, I removed /usr/local/lib/compat/lib32 and /usr/local/libdata/ldconfig/lib32. -- +-------------------------------+------------------------------------+ | Vennlig hilsen, | Best regards, | | Trond Endrestøl, | Trond Endrestøl, | | IT-ansvarlig, | System administrator, | | Fagskolen Innlandet, | Gjøvik Technical College, Norway, | | tlf. mob. 952 62 567, | Cellular...: +47 952 62 567, | | sentralbord 61 14 54 00. | Switchboard: +47 61 14 54 00. | +-------------------------------+------------------------------------+ From owner-freebsd-current@freebsd.org Thu Mar 16 14:25:26 2017 Return-Path: <owner-freebsd-current@freebsd.org> Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 12F43D0F374 for <freebsd-current@mailman.ysv.freebsd.org>; Thu, 16 Mar 2017 14:25:26 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E00281BFD for <freebsd-current@freebsd.org>; Thu, 16 Mar 2017 14:25:25 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [10.1.1.2] (unknown [10.1.1.2]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id 7974813610 for <freebsd-current@freebsd.org>; Thu, 16 Mar 2017 14:25:17 +0000 (UTC) Subject: Re: update an older i386 CURRENT system to amd64 CURRENT To: freebsd-current@freebsd.org References: <20170316114126.GA4724@c720-r314251> From: Allan Jude <allanjude@freebsd.org> Message-ID: <f1d5bbd7-6a3c-76f9-b597-4414590a0f78@freebsd.org> Date: Thu, 16 Mar 2017 10:25:10 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <20170316114126.GA4724@c720-r314251> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="FqfIBlfq5GnG1vhCDDs0ImO11Xuf1bpi7" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussions about the use of FreeBSD-current <freebsd-current.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-current>, <mailto:freebsd-current-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/freebsd-current/> List-Post: <mailto:freebsd-current@freebsd.org> List-Help: <mailto:freebsd-current-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-current>, <mailto:freebsd-current-request@freebsd.org?subject=subscribe> X-List-Received-Date: Thu, 16 Mar 2017 14:25:26 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --FqfIBlfq5GnG1vhCDDs0ImO11Xuf1bpi7 Content-Type: multipart/mixed; boundary="tlEtkw8j8lSjxwC76Ixw4NjKAKHlJUiol"; protected-headers="v1" From: Allan Jude <allanjude@freebsd.org> To: freebsd-current@freebsd.org Message-ID: <f1d5bbd7-6a3c-76f9-b597-4414590a0f78@freebsd.org> Subject: Re: update an older i386 CURRENT system to amd64 CURRENT References: <20170316114126.GA4724@c720-r314251> In-Reply-To: <20170316114126.GA4724@c720-r314251> --tlEtkw8j8lSjxwC76Ixw4NjKAKHlJUiol Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 2017-03-16 07:41, Matthias Apitz wrote: >=20 >=20 > Hello, >=20 > I have an older FreeBSD 9.0-CURRENT system which I want to update to > 12-CURRENT: >=20 > # uname -a > FreeBSD vm-9Current 9.0-CURRENT FreeBSD 9.0-CURRENT #2 r220692: Sun Apr= 17 03:28:12 CEST 2011 guru@tinyCurrent:/usr/obj/usr/src/sys/GENERIC = i386 >=20 > To do so without compiling everything from scratch, I transferred > /usr/src (r314251) and /usr/obj to this server, the compilation of > /usr/obj was done on an amd64 server and the same procedure (transfer > of /usr/src and /usr/obj) was also used to update my C720 netbook; the > difference is here that the host which should be update is i386. >=20 > The 'make installkernel' did not work: > =20 > # pwd > /usr/src > # file ../obj/usr/src/sys/GENERIC/kernel > ../obj/usr/src/sys/GENERIC/kernel: ELF 64-bit LSB executable, x86-64, v= ersion 1 (FreeBSD), dynamically linked (uses shared libs), not stripped >=20 > # make installkernel >=20 > -------------------------------------------------------------- >>>> Building an up-to-date bmake(1) > -------------------------------------------------------------- > sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 make > /usr/obj/usr/src/make.i386/bmake > -------------------------------------------------------------- >>>> Installing kernel GENERIC > -------------------------------------------------------------- > cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=3D/usr/obj > MACHINE_ARCH=3Di386 MACHINE=3Di386 CPUTYPE=3D > GROFF_BIN_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/bin > GROFF_FONT_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/share/groff_font > GROFF_TMAC_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC=3D"cc > -isystem /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/li= b > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=3D/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" CXX=3D"c++ -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=3D/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" CPP=3D"cpp -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=3D/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" AS=3D"as" AR=3D"ar" LD=3D"ld" LLVM_LIN= K=3D"" > NM=3Dnm OBJCOPY=3D"objcopy" RANLIB=3Dranlib STRINGS=3D SIZE=3D"size" > PATH=3D/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy= /usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/u= sr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin > /usr/obj/usr/src/make.i386/bmake KERNEL=3Dkernel install > cc: Exec format error > bmake[1]: "/usr/src/share/mk/bsd.compiler.mk" line 145: Unable to > determine compiler type for CC=3Dcc -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=3D/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin. Consider setting COMPILER_TYPE. > *** Error code 1 >=20 >=20 > Also the following did not work: >=20 > # make installkernel MACHINE_ARCH=3Damd64 MACHINE=3Damd64 >=20 > -------------------------------------------------------------- >>>> Building an up-to-date bmake(1) > -------------------------------------------------------------- > sh /usr/src/tools/install.sh -s -o root -g wheel -m 555 make > /usr/obj/usr/src/make.amd64/bmake > -------------------------------------------------------------- >>>> Installing kernel GENERIC > -------------------------------------------------------------- > cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=3D/usr/obj > MACHINE_ARCH=3Damd64 MACHINE=3Damd64 CPUTYPE=3D > GROFF_BIN_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/bin > GROFF_FONT_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/share/groff_font > GROFF_TMAC_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC=3D"cc > -isystem /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/li= b > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=3D/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" CXX=3D"c++ -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=3D/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" CPP=3D"cpp -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=3D/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin" AS=3D"as" AR=3D"ar" LD=3D"ld" LLVM_LIN= K=3D"" > NM=3Dnm OBJCOPY=3D"objcopy" RANLIB=3Dranlib STRINGS=3D SIZE=3D"size" > PATH=3D/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy= /usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/u= sr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin > /usr/obj/usr/src/make.i386/bmake KERNEL=3Dkernel install > cc: Exec format error > bmake[1]: "/usr/src/share/mk/bsd.compiler.mk" line 145: Unable to > determine compiler type for CC=3Dcc -isystem > /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib > -B/usr/obj/usr/src/tmp/usr/lib --sysroot=3D/usr/obj/usr/src/tmp > -B/usr/obj/usr/src/tmp/usr/bin. Consider setting COMPILER_TYPE. > *** Error code 1 >=20 >=20 > Is there a way to use this /usr/src and pre-compiled /usr/obj on an i38= 6 > host for update? Or do I have to use a complete recompile or even > reinstall, based on a 64-bit memstick system? >=20 > Thanks >=20 > matthias >=20 >=20 The problem is that the build system has built a cross compiler in /usr/obj that it uses to do the building etc, and it is 64bit. Your 32bit OS cannot run it (gives Exec format error). You could try (untested, might eat your lunch, and kick your dog) On the AMD64 host: mkdir /tmp/amd64 make installkernel DESTDIR=3D/tmp/amd64 Then manually copy that kernel & modules into /boot/kernel on the i386 system, and reboot into it. Then you'll have a 64bit kernel, and your old i386 world. Then you should be able to do the make installkernel / installworld from the /usr/src and /usr/obj you transferred --=20 Allan Jude --tlEtkw8j8lSjxwC76Ixw4NjKAKHlJUiol-- --FqfIBlfq5GnG1vhCDDs0ImO11Xuf1bpi7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJYyqBMAAoJEBmVNT4SmAt+DgoQALpOopsrWD/eq7LKe9TH4zb3 LL/pUC5CDDspXzv8MkvMyi7xV9t8utcDhpwOA5n7NntSfNI7nY+4oVQcPRvKZqHh v2j0Ox/SLBz/f0v2GExMOUIDZnVaFFUAWmrImbl75vbipwIs3TH8Yzgci8COvnE+ 6DdfdPBHccSfw44u3YZn0f5o8qhDB+Obnu0qXXEuisEOsf3XYFeu6au+LXu+Mn7K tD9hbx3OhAAb0P63OKNAD9mWMRHKN4kpwgPoRTbwcuCMrYWk5XgQbrrz5J90cOL4 yPGOm6vamdcnhRBY662oDj9tbxi1eQjeBngupU4AhDwHDZhajr1b2CMeFI4q9+hv SDhVwhS13h3llkRP1r49Eb+WSi+TQfVKsDajaoZA6v7He89mUUL1KPqDLyEatTfR Uc0tUdi89qczfIyi7fLolHht5C0LtwN/rahozbwDAGQqaXvjjV5s6+zPHl4/uLR1 66iqVgZRQdzh8DhYuxN6NuerkO2UDsX+M+X/hxc4WSXZm4yUqWYlQl31xQhYXAhU X0RuyG3DZFHsUdMN/WPu0flFNQ9Pdno8+mKmHGVALPVddAHUBM49V3MHCZpqfuiR +VIGHqMQ+prXyZaPBa+Nt5JJXgNQHDz4hs/CSFC78BgGoMfWU9CRLzW96KdGPabm cJNflhGi75LjOfoDle97 =p48b -----END PGP SIGNATURE----- --FqfIBlfq5GnG1vhCDDs0ImO11Xuf1bpi7--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.20.1703161458130.533>