Hey, Remember that old rule of thumb, "If it ain't broke, don't fix it."? That's a good one. Remember it. I know, it's hard. Well, it's not hard to remember it, but to actually follow it. Don't try to fix something that isn't broken. Don't. So I finally got my laptop back to be able to use my wifi access point. It's now back to good' ole NetBSD 3.99.15, and I'm not going to be upgrading anytime soon... My IBM Thinkpad X41 had been running NetBSD 3.99.something for a long time (well over two years), and pretty much everything was fine. For some reason that I can't remember anymore, I decided that I should upgrade the laptop to the latest stable release of NetBSD, NetBSD 4.0. I did the upgrade, and afterwards my laptop was unable to keep a connection to my local wifi access point, even though it was able to connect to my neighbor's (and stay connected). I was also unable to wake it up after putting it to sleep. After some back and forth, I decided to upgrade further to NetBSD-current (ie 4.99.x) to see if that works. No luck. I then tried to downgrade my laptop back to 3.99.x, but unfortunately the toolchain provided by NetBSD 4.99.x is too picky to compile its older version (gcc got more stringent, it seems). So I couldn't even build my older release, and snapshots for 3.99.x are no longer available in tarballs. So I had to fetch the NetBSD-3.1 tarballs, extract them into a local directory, chroot into that directory, cvs checkout the sources from a random date before 4.0 (I happened to choose 2006-06-02, even though that's later than the snapshot I had been running), then build a new release and kernel in the chroot. After building the release, I booted into single-user mode, extracted the 3.99.x sets and tried to run /usr/sbin/postinstall. Unfortunately, it seems that postinstall's logic to determine which symlinks to remove is based on numbers, not on what is provided by the tarballs. That is, b/c my system still had newer libraries (such as libc.so.12.159), postinstall would remove libc.so.12.136 (to which /lib/libc.so was pointing), causing any subsequent commands to fail. I had to manually fix the "obsolete" symlinks (through a number of /rescue/* invocations), re-extract the sets (to make sure everything got back to where it should be) and re-run postinstall. All in all, this took me about 4 days to get my laptop back into normal working condition. My new resolution: I won't upgrade unless I absolutely have to. No more trying to fix something that's not broken. -Jan
Attachment:
pgpzCsjwkayLK.pgp
Description: PGP signature