guys,
recently I got an old (but good) Raspberry Pi Model B+. It had some penguinas on board, but I prefer beasties, so I've downloaded 13.1-RELEASE image, burn to MicroSD card and boot from it, everything runs fine.
There is the “build server” in my virtualization farm — amd64 VM. It pulls stable/13 and rebuilds amd64 target weekly, /usr/src and /usr/obj are exported with NFS so all my FreeBSD-based boxes can be easily upgraded.
I successfully built armv6 target with
Yes, the make found in /usr/obj/usr/src/arm.armv6/tmp/legacy/bin is ELF 64-bit LSB executable, x86-64 as any other executable in /usr/obj/usr/src/arm.armv6/tmp/ subdirectories.
So you now know my question. How can I upgrade my armv6 13.1-RELEASE to armv6 13.1-STABLE if it was cross-compiled by amd64 13.1-STABLE OS. What is my mistake? Where is the right way?
Thanks in advance.
recently I got an old (but good) Raspberry Pi Model B+. It had some penguinas on board, but I prefer beasties, so I've downloaded 13.1-RELEASE image, burn to MicroSD card and boot from it, everything runs fine.
There is the “build server” in my virtualization farm — amd64 VM. It pulls stable/13 and rebuilds amd64 target weekly, /usr/src and /usr/obj are exported with NFS so all my FreeBSD-based boxes can be easily upgraded.
I successfully built armv6 target with
make -j4 TARGET_ARCH=armv6 KERNCONF=RPI-B buildworld buildkernel
. But when i switch to my brand new Raspberry Pi and try to upgrade it I see:
Code:
root@rpi-b:/usr/src # make KERNCONF=RPI-B installkernel
--------------------------------------------------------------
>>> Install check kernel
--------------------------------------------------------------
--------------------------------------------------------------
>>> Installing kernel RPI-B on Fri Dec 16 02:41:21 MSK 2022
--------------------------------------------------------------
cd /usr/obj/usr/src/arm.armv6/sys/RPI-B; MACHINE_ARCH=armv6 MACHINE=arm CPUTYPE= CC="cc -target armv6-gnueabihf-freeb
sd13.1 --sysroot=/usr/obj/usr/src/arm.armv6/tmp -B/usr/obj/usr/src/arm.armv6/tmp/usr/bin" CXX="c++ -target armv6-gnueab
ihf-freebsd13.1 --sysroot=/usr/obj/usr/src/arm.armv6/tmp -B/usr/obj/usr/src/arm.armv6/tmp/usr/bin" CPP="cpp -target arm
v6-gnueabihf-freebsd13.1 --sysroot=/usr/obj/usr/src/arm.armv6/tmp -B/usr/obj/usr/src/arm.armv6/tmp/usr/bin" AS="as" AR=
"ar" ELFCTL="elfctl" LD="ld" LLVM_LINK="" NM=nm OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" STRIPBIN="strip"
PATH=/usr/obj/usr/src/arm.armv6/tmp/bin:/usr/obj/usr/src/arm.armv6/tmp/usr/sbin:/usr/obj/usr/src/arm.armv6/tmp/usr/bin:
/usr/obj/usr/src/arm.armv6/tmp/legacy/usr/sbin:/usr/obj/usr/src/arm.armv6/tmp/legacy/usr/bin:/usr/obj/usr/src/arm.armv6/
tmp/legacy/bin:/usr/obj/usr/src/arm.armv6/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin make KERNEL=kernel ins
tall
/bin/sh: make: Exec format error
*** Error code 126
Yes, the make found in /usr/obj/usr/src/arm.armv6/tmp/legacy/bin is ELF 64-bit LSB executable, x86-64 as any other executable in /usr/obj/usr/src/arm.armv6/tmp/ subdirectories.
So you now know my question. How can I upgrade my armv6 13.1-RELEASE to armv6 13.1-STABLE if it was cross-compiled by amd64 13.1-STABLE OS. What is my mistake? Where is the right way?
Thanks in advance.