Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!haven.umd.edu!darwin.sura.net!math.ohio-state.edu!cs.utexas.edu!natinst.com!hrd769.brooks.af.mil!hrd769.brooks.af.mil!not-for-mail From: burgess@hrd769.brooks.af.mil (Dave Burgess) Newsgroups: comp.os.386bsd.questions Subject: Re: 0.9? Best way to get "most current" and stay there with NetBSD? Date: 5 Aug 1993 17:38:19 -0500 Organization: Armstrong Laboratory, Brooks AFB, TX Lines: 112 Message-ID: <23s25a$4mk@hrd769.brooks.af.mil> References: <23pe1i$2t3@genesis.mcs.com> NNTP-Posting-Host: hrd769.brooks.af.mil In article <23pe1i$2t3@genesis.mcs.com> karl@genesis.MCS.COM (Karl Denninger) writes: >I have an 0.8 system loaded with an 0.9 kernel on it. > >This is not a good thing, as I discovered. In particular, the "ps" command >seems not to know about some changed kernel structures. Boo hiss. > >Now, the question is: > >How do I get current with NetBSD? And should I even do that? Or is there >something else out there (like 386BSD) which I should run instead? > >Can someone send me a FAQ or something that outlines the differences behind >the different "free" BSDs? I am looking into the possiblity of committing >to one of them for a relatively major project, which means among other >things that I'll start maintaining software packages and the like for the OS >(and will likely put up an FTP server for this stuff as well). > >Thanks! One question at a time, please :-) Getting current with NetBSD was a nightmare for me about three weeks ago. I think I have finally gotten all the significant parts in place to post a sort of 'roadmap' to migrating from 0.8 to 0.9 (without waiting for the next release). NOTE: This procedure is likely to mess you up. If you aren't really ready to make a commitment to moving forward the hard way, you really might want to consider waiting until the 0.9 release is actually out. On to the show: Assumption #1: You have been using FTP or 'sup' to keep your source tree current. This (to me) means that ALL of the sources have been updated, including the sources for the compiler and all of the other tools. Assumption #2: You are still using the compiler that came with the 0.8 release. One of the early steps in this process will be to upgrade that, so be careful. Steps: 1. Using the 1.38 compiler, recompile and install the following programs so that they will be able to understand the 'z-whatever' format for the new executables: /usr/src/*/ar /usr/src/*/tsort /usr/src/*/nm /usr/src/*/ranlib /usr/src/*/dbsym NOTE: dbsym may have a reference to _err() that is undefined in the libc.a that came with your system. I changed the one reference to err() to an fprintf(stderr...) and it seemed to work fine. /usr/src/*/ld 2. Using the 1.38 compiler, compile a new kernel. Reboot. 3. DO NOT PROCEED BEYOND THIS POINT UNLESS YOU ARE SURE THAT YOU ARE REALLY READY TO DO SO. If there were any warnings or errors, make sure they are cleared up before you continue. Once you have replaced gcc with gcc2, you might well be completely hosed if you are not really ready to roll. 4. During the fsck portion of the boot up, interrupt with ^C. This will return you to single user mode. Take whatever steps are needed to mount all of your disk partitions and bring up your network (if you have NFS partitions to mount). Stay in single user mode. 5. cd to the /usr/src/gnu/gcc2 and /usr/src/gnu/gas directories and recompile that. 6. Install gcc2. 7. cd to the /usr/src/include directory and make ; make install. This will ensure that your include files are up to date. This step could probably have been safely moved to 2.5, but this is where I did it. 8. cd /usr/src/lib and make ; make install. 9. cd /usr/src/{bin,sbin,usr.bin,usr.sbin,libexec) and make ; make install ; make clean. During this phase, things may or may not stop working. NetBSD will not let you overwrite an executing program, so try to make sure that the system is as quiet as possible. 10. vipw, and change something. This will build you a new passwd database so that you can get back into the system when you reboot. If you want to do it the sexy way, run pwd_mkdb -p /etc/master.passwd. 11. By the time you are finished, you should have recompiled just about everything in the system. This is not a 'coffee break' operation. It took me two solid work days to get it all squared away, and I still managed to miss a half dozen utilities.... 12. Once you have everything recompiled, reboot. Let the machine come up into multi-user mode, and fix the mistakes as they turn up. If you try this -- ------ TSgt Dave Burgess NCOIC AL/Management Information Systems Office Brooks AFB, TX