Re: How to upgrade an EOL FreeBSD release or how to make it working again

From: Mario Marietto <marietto2008_at_gmail.com>
Date: Wed, 17 Jan 2024 22:54:06 UTC
Hello to everyone.

I'm trying to copy the Chromebook's SNOW source files that have been
included on the FreeBSD 11
revision 269385 to the new FreeBSD 13 revision 373300. It has compiled
correctly world,but when it
starts to compile the kernel,it gives a lot of "unknown option"
errors. Is there a way to fix them ?

# svn co http://svn.freebsd.org/base/head@269385 ./head-269385 ; taken
from this tutorial :

https://wiki.freebsd.org/arm/Chromebook

# svn co http://svn.freebsd.org/base/head ./head-373300
# cp ./head-269395/sys/arm/conf/CHROMEBOOK-SNOW ./head-373300/sys/arm/conf
# cd ./head-373300
# make TARGET_ARCH=armv7 KERNCONF=CHROMEBOOK-SNOW buildworld buildkernel

I tried also with : make TARGET_ARCH=armv6 KERNCONF=CHROMEBOOK-SNOW
buildworld buildkernel,but it
didn't make any difference.

.....
.....
--------------------------------------------------------------
>>> World build completed on Wed Jan 17 21:27:04 CET 2024
>>> World built in 14203 seconds, ncpu: 16
--------------------------------------------------------------
make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1"
line 341: SYSTEM_COMPILER: lib
clang will be built for bootstrapping a cross-compiler.
make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1"
line 346: SYSTEM_LINKER: libcl
ang will be built for bootstrapping a cross-linker.

--------------------------------------------------------------
>>> Kernel build for CHROMEBOOK-SNOW started on Wed Jan 17 21:27:04 CET 2024
--------------------------------------------------------------
===> CHROMEBOOK-SNOW
mkdir -p /usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/sys

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/conf;
PATH=/usr/obj/mnt/zroot2/zroot2/OS/Ch
romebook/head-373300/arm.armv7/tmp/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv
7/tmp/usr/sbin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/tmp/usr/bin:/usr/obj/m
nt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/sbin:/usr/obj/mnt/zroot2/zroot2/
OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head
-373300/arm.armv7/tmp/legacy/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/tmp/
legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d
/usr/obj/mnt/zroot2/zroot2/OS/Chromebo
ok/head-373300/arm.armv7/sys/CHROMEBOOK-SNOW  -I
'/mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/a
rm/conf' -I '/mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/conf'
 '/mnt/zroot2/zroot2/OS/Chro
mebook/head-373300/sys/arm/conf/CHROMEBOOK-SNOW'
WARNING: duplicate option `DEBUG' encountered.

./head-373300/sys/arm/conf/CHROMEBOOK-SNOW: unknown option
"IPI_IRQ_END" / "IPI_IRQ_START / ARM_L2_PIPT"

and so on...

these options are included inside the file "std.exynos5250" (that I
have copied from the old to the new

source code). What I'm trying to do to stop these error is to comment
the offending lines :


nano ./head-373300/sys/arm/samsung/exynos/std.exynos5250 :

#options    IPI_IRQ_START=0
#options    IPI_IRQ_END=15
#options    ARM_L2_PIPT


but I suspect that a lot of options will be missing and the more comments I
will make,the more the chance that it will not work will increase. ...

On Mon, Jan 15, 2024 at 7:48 PM Mario Marietto <marietto2008@gmail.com>
wrote:

> Hello.
>
> Do you have deleted forever the set of packages and ports for FreeBSD 11
> or you keep them stored in DVDs that I can buy or download for a small
> amount of money ? If yes,where ? To rebuild everything is out of my
> expertise.
>
> On Mon, Jan 15, 2024 at 7:15 PM David Chisnall <theraven@freebsd.org>
> wrote:
>
>> On 15 Jan 2024, at 16:46, Mario Marietto <marietto2008@gmail.com> wrote:
>> >
>> > The ARM Chromebook is based on armv7,it is still recent.
>>
>> For reference, the ARMv7 architecture was introduced in 2005.  The last
>> cores that implemented the architecture were released in 2014.  This is not
>> a ‘recent’ architecture, it’s one that’s 19 years old and has been largely
>> dead for several years.
>>
>> > But let's change perspective for a moment,don't think about the ARM
>> Chromebook. My question is : how to upgrade FreeBSD when it goes EOL.
>>
>> Generally, run `freebsd-update`.  This is a very different question from
>> ‘how do I do a new install of an old an unsupported version?'
>>
>> > I ask this because there is a huge difference here between FreeBSD and
>> Linux. Today if you need to use , for example Ubuntu 14.0, you can use it
>> as is. Yes,there will be a lot of bugs,but it will work without crashes.
>> But if you want to use an old FreeBSD system,nothing will work for you.
>> So,do you know some methods to install even packages or ports ? You
>> know,there are cases when you need to do some experiments so that you can
>> keep your machine off the internet,so you aren't scared that someone can
>> compromise it. Totally prohibiting the users to use an old system,removing
>> ports and packages is not a choice that I approve of. And I'm not the only
>> one that thinks like this.
>>
>> If you want to use an old and unsupported version of FreeBSD, no one is
>> stopping you, but:
>>
>>  - You will need to build the releases.  The source code is still in git,
>> you can.  The scripts for building the release images are right there in
>> the repo.  Just grab the relevant release or releng branch and go.
>>
>>  - You will need to build packages.  Newer versions of the ports tree
>> will not be tested with the older release, so you may need to use an older
>> checkout of the ports tree.  Poudriere will build a package repo for you.
>>
>> In both cases, if you’re using older versions you almost certainly *will*
>> have security vulnerabilities.  The project strongly advises you not to do
>> this and not to blame us when you install known-insecure software and end
>> up compromised.
>>
>> The project does not have enough active contributors to keep maintaining
>> things indefinitely.  This is why release have a five-year supported
>> lifetime.  If you want to pick up an old branch and maintain it, you’re
>> welcome to.  In the past, companies have picked up old branches and
>> maintained them for customers that had a dependency on them.  If you want
>> to pay someone to maintain an old branch (and have deep pockets) then there
>> are probably a few companies that will happily take your money.
>>
>> Maintaining binaries is a slightly different issue, but it’s not totally
>> unrelated.  Keeping old packages around consumes disk space and costs the
>> project money (remember, every package is mirrored across the CDN, so this
>> isn’t just a single disk).  Even if it were free, philosophically, I think
>> making it easy for users to install known-insecure software is a bad idea
>> but if you want to keep a package repo with out-of-date packages online
>> indefinitely then you can.  You can run Poudriere and even cross-compile
>> from a fairly beefy cloud machine quite easily.
>>
>> It’s been a while since I did a full package build, but I would guess
>> that you could do a single package build (all ports) for about $50 on a
>> cloud VM, more (2-3x) if it’s emulated.  Storing the results for a small
>> number of users will cost around $10-20/month.  If you think this is an
>> important thing to do, then you are absolutely welcome to spend your own
>> money on doing it.
>>
>> David
>>
>>
>
> --
> Mario.
>


-- 
Mario.