On Wed, Dec 20, 2023 at 23:34:34 -0000, jo...@sdf.org wrote:

> I have a pcmcia 3Com NIC and so internet access (IPv6 only!). But the FD
> adapter and the CDROM bay both died years ago.
>
> I can plug in a pcmcia CF card and mount it. The old BIOS can't boot from
> that though. There's also a single USB revision 1.0 port.

If you don't mind a bit of manual work, you can just easily upgrade in
place.  I've recently updated an old Dell Latitude CP of the late 90s
vintage (iirc).  The big issue was that drivers for the pcmcia network
cards seems to have bitrotted w.r.t. infrastructural changes, so you
might want to look out for that (one of the cards - ironically, a wifi
- worked for me, but I had to set up an open 11b access point :).

It's not hard, really.  As far as I understand sysupgrade more or less
just scripts that scenario, and I never really understood why one
would need to script it.

Compile a new kernel and get it onto your machine (present day GENERIC
might be a bit too fat, make sure the necessary compat options are in
place).  Probably install it as netbsd.new or something so that if it
doesn't work, you can still boot into the old one.

Get the sets (from releng or build.sh distribution) onto the machine
(or onto some removable medium you can plug into it).

Make a backup of /rescue just in case if you don't have one.

Boot with the new kenel.  You may either boot multiuser into the old
userland and give the new kernel a bit of a workout (then "shutdown
now" into single user), of you may boot single user right away and go
for the upgrade (don't forget to remount root read-write and mount
/usr if it's on a separate fs).

Go to where your sets are and do something like

  for f in [!ekx]*.tgz x[!e]*.tgz; do echo === $f ===; tar -C / -zxpf $f; done

i.e. unpack all sets except etc, xetc, and kern* if you happen to have
them from releng (that's basically a TL;DR of sysupgrade :).  Actually
on an old i386 you might want to avoid installing gpufw that is fat
and not needed on an old machine anyway.  Modifying the above to avoid
gpufw but to include games is left as an exercise to the reader :)

When the sets are unpacked, make sure you have stty rows/cols and TERM
set properly and:

  etcupate -val -s etc.tgz -x xetc.tgz

Unless you had some heavy customizations you will mostly just have to
press "i" for "install" a bunch of times.  The "d" for "delete" might
sound a bit scary, but it's actually the safe option of "skip this new
file, and leave the old file untouched".  If need be you can run
etcupdate repeatedly to verify your current state and to incrementally
merge more new files.

The two files you will have to pay attention to are passwd and groups,
b/c for that a long a time gap they will contain changes (new
users/groups) and you will have to merge these changes (in the
interactive merge press "l" for for "left" for your user(s), "r" for
"right" for the new users).

After that etcupdate will tell you to run postinstall.  If you updated
etc, you only need postinstall to fix catpages, obsolete files and
create new devices, iirc.  Use (that's what etcupate runs at the end):

    postinstall -s etc.tgz -s xetc.tgz check

and your judgement.  Doing a round of "fix catpages" first and then
"fix obsolete" should get rid of most of the noise.  Re-run check
after that.

PS: "Ask your physician for the information to your individual case."
etc, etc...

-uwe

Reply via email to