advice on compiling a new kernel & upgrading to the latest sources

Dino Vliet dino_vliet at yahoo.com
Sun Jan 14 21:07:01 UTC 2007


--- Giorgos Keramidas <keramida at ceid.upatras.gr>
wrote:

> On:56, Dino Vliet
> <dino_vliet at yahoo.com> wrote:
> > Hi folks,
> > from different sources I have written my steps to
> compile a new kernel
> > & upgrade to the latest sources.
> 
> Your instructions, however, are different from what
> /usr/src/UPDATING
> contains.
> 
> Please, make *sure* you read `/usr/src/UPDATING'
> very carefully.
> Especially the commands of the section ``To upgrade
> in-place ...''
> and *all* the footnotes they reference.
> 
> > Can anyone have a look into them and tell me if I
> won't run into
> > troubles or if there are better ways to achieve
> the same?
> >
> > Upgrade procedure to the newest freebsd kernel and
> userland.
> >
> > 1.Make sure that the cvsup file (src-supfile) is
> adjusted in the right
> > way.
> 
> That's ok.
> 
> > 2. Cd /usr/src/sys/amd64/conf which contains the
> file MYKERNEL
> 
> No it doesn't.  CVSup will delete the files it
> doesn't know about, so
> you should *SAVE a copy* of your favorite kernel
> config file outside of
> the source tree and *copy* it into
> `/usr/src/sys/amd64/conf' after CVSup
> finishes updates the sources.
> 
> > 3.MYKERNEL is then adjusted, if necessary and
> copied to
> > root/kernels/MYKERNEL
> 
> Nice :)
> 
> > 4.Copy everything under /etc to /root/etc
> 
> Why?  This isn't mentioned in `/usr/src/UPDATING'
> and it doesn't really
> help much if you manage to trash your /lib and
> /usr/lib trees.  A better
> suggestion is to ``make sure you have good level 0
> dumps'', as suggested
> by ``/usr/src/UPDATING''.
> 
> > 5.cvsup -g -L 2  src-supfile
> 
> You've deleted "MYKERNEL" here.
> 
> > 6. cd /usr/src
> > 7. make cleanworld
> 
> The ``make cleanworld'' command is unnecessary if
> you haven't been
> building stuff manually inside the tree.
> 
> > 8. make buildworld
> > 9. make buildkernel KERNCONF=MYKERNEL
> 
> You can do both at the same time, with:
> 
> 	# cd /usr/src
> 	# make KERNCONF=MYKERNEL buildworld buildkernel
> 
> > 10. Go into single user mode
> 
> You forgot to install the new kernel *before*
> rebooting here.  This
> should be done with:
> 
> 	# cd /usr/src
> 	# make KERNCONF=MYKERNEL installkernel
> 
> > 11. If the new kernel doesn't boot reboot and hit
> the space bar at the
> > boot prompt and boot kernel.old If the new kernel
> boots OK mount -a 
> 
> No, "mount -a" is not enough.  Please read the
> `UPDATING' file.  The
> full sequence of commands would be something like:
> 
>     (escape to loader prompt)
>     (at the OK prompt of the boot loader, type):
> 
> 	boot -s
> 
>     Then, when the system starts a /bin/sh shell
> instance, type:
> 
> 	# adjkerntz -i
> 	# fsck -p
> 	# mount -u /
> 	# mount -a
> 
> > 12. cd /usr/src
> > 13. make installkernel KERNCONF=MYKERNEL
> 
> It is too late to install a new kernel here, if you
> didn't do it
> *before* rebooting into single user mode.  The whole
> 'exercise' of
> installing the new kernel and booting into single
> user mode is meant to
> provide a level of testing for the new kernel.
> 
> If you haven't installed it and booted into the old
> kernel, some things
> may fail to install later on, you don't know if the
> new kernel actually
> works, etc.
> 
> > 14. Go into single user mode
> 
> You *ARE* in single-user mode already.
> 
> > 15. cd /usr/src
> > 16. mergemaster -p
> > 17. make installworld
> > 18. mergemaster -i
> > 19. exit and reboot
> 
> These look fine.
> 
> > Is this ok? Or have I forgot about something?  I'm
> running a freebsd
> > 6.1 machine on a amd64 system with an adjusted
> kernel called MYKERNEL.
> 
> Please read ``/usr/src/UPDATING''.  Then read it
> again.  Let the text
> and all its footnotes sink in, and if you don't
> understand *why* a
> particular step exists, or what a specific step is
> supposed to do, feel
> free to ask.
> 
> We are here to help you update the system, but we
> are *also* here to
> help you understand the why, when, how and what for
> of each step of the
> process :-)
> 
> - Giorgos
> 
> 

Thanks for your help!
I am glad I asked before doing it, so now I can check
out the resources given and try to learn why things
are they way they are.

Your post gave me a lit of valuable insights and I
will have to print everything out and read it
carefully.

I really like the FreeBSD way though (have just
donated  to the foundation because of the nice way
people like you treat this cry for help:-)

Thanks again!
Dino


 
____________________________________________________________________________________
Sucker-punch spam with award-winning protection. 
Try the free Yahoo! Mail Beta.
http://advision.webevents.yahoo.com/mailbeta/features_spam.html


More information about the freebsd-questions mailing list