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