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_at_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. | +-------------------------------+------------------------------------+Received on Thu Mar 16 2017 - 13:23:55 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:10 UTC