Re: problems on FreeBSD14 on armv6 board (RPI1-B)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sun, 17 Dec 2023 18:20:34 UTC
On Dec 17, 2023, at 06:33, Alex Samorukov <samm@freebsd.org> wrote:

> On 2023/12/16 18:23, Mark Millard wrote:
> 
> 
>> Generally the quarterly 132releng-armv6 builds attempting the full
>> 34000+ packages resulted in "stopped:crashed". One completed:
>> Tue, 01 Aug 2023 04:37:22 GMT crashed, having built: 14831
>> Sat, 05 Aug 2023 04:40:30 GMT "done",  having built: 26346
>> Thu, 07 Sep 2023 02:38:44 GMT crashed, having built:  8272
>> Thu, 05 Oct 2023 02:37:41 GMT crashed, having built:  8276
>> (It is harder to judge the total that were available after
>> an incremental build.)
>> All of the 7 "done" quarterly 132releng-armv6 builds are
>> from 2023-August builds (after Aug-01) and from early
>> 2023-Sep builds. After that: all crashed.
>> Quarterly 132releng-armv6 is the only type of armv6 build
>> attempted after Mon, 21 Aug 2023 15:02:47 GMT (the last
>> latest for main-armv6 build that has been attempted).
> Long story short - I successfully reverted OS to 13.2 (monolithic nature of the FreeBSD makes it way easier compared to most of the Linux distros) and all works perfectly again.
> 
> Do you know if i can help to fix crashed builds or contribute somehow to make armv6 packages built for 13.2? For myself, i found that building packages on poudriere running in native arm64 servers is way more efficient compared to qemu on amd64, and now I am running the full build on Azure instance. I know that we are using some arm64 build servers, happy to contribute to having armv6/armv7 builds running on them.

The standard FreeBSD kernel for arm64 also supports armv7 (if the
hardware does) but not armv6. You can look via:

# sysctl kern.supported_archs

(But checking for the hardware actually supporting armv7 seems
to be recent for contributing to the text generated so armv7
may be falsely claimed. armv6 will not be listed.)

See:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256132#c13

for a suggested way of have FreeBSD support both armv7 and armv6
at the same time. (That is comment #13.) But that would have an
implementation effort first.

There is an existing way to change a #define and build a kernel
that supports armv6 instead of armv7. See the earlier comment
#11:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256132#c11

I'll note that I've not done such since lib32 support for
armv7 was added. armv6 lib32 was not added so using a
non-lib32 build of world might be required. poudriere just
requires the jail/chroot sort of support for armv6, not
lib32 support.

The FreeBSD build servers ( ampere[1-3] ) are not booted with
such special kernels (or worlds). But they do build armv7 on
arm64. armv7 also used to be built via qemu on amd64 and had
the same sorts of problems back then that armv6 still has.

If you read my other notes in:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256132

be aware that some later notes correct my errors in my earlier
notes, making for a messy read.


===
Mark Millard
marklmi at yahoo.com