Implications of missing this step?

Polytropon freebsd at
Fri Jan 21 05:09:41 UTC 2011

On Thu, 20 Jan 2011 21:41:52 -0600, "Michael D. Norwick" <mnorwick at> wrote:
> Good Day;
> Running PC-BSD 8.1 with a custom kernel and new world.  I just finished 
> another custom kernel and rebuilt world according to the FreeBSD 
> handbook.  While reading the docs again to find an answer to a question 
> about how upgraded ports are handled, I came across the following in 24.2.3;
> "If a custom kernel is in use, the upgrade process is slightly more 
> involved. A copy of the GENERIC kernel is needed, and it should be 
> placed in /boot/GENERIC. If the GENERIC kernel is not already present in 
> the system, it may be obtained using one of the following methods:"
> I am in the process of doing #>portupgrade -af with a new custom kernel 
> and stock (rebuilt) world i.e. buildkernel KERNCONF=KERNEL_011911, and 
> buildworld... (after upgrading src and ports with csup).  Things seem to 
> be going ok but the statements about 'old object files and libraries' 
> being out of date for third party applications, make me feel as if I 
> have done something wrong.  I blew away the GENERIC kernel several 
> iterations of kernel builds ago.  I always start a build with #>make 
> clean.  What can go wrong by not following the above step? 

See /usr/src/Makefile with those instructions:

 1.  `cd /usr/src'       (or to the directory containing your source tree).
 2.  `make buildworld'
 3.  `make buildkernel KERNCONF=YOUR_KERNEL_HERE'     (default is GENERIC).
 4.  `make installkernel KERNCONF=YOUR_KERNEL_HERE'   (default is GENERIC).
      [steps 3. & 4. can be combined by using the "kernel" target]
 5.  `reboot'        (in single user mode: boot -s from the loader prompt).
 6.  `mergemaster -p'
 7.  `make installworld'
 8.  `make delete-old'
 9.  `mergemaster'                         (you may wish to use -U or -ai).
10.  `reboot'
11.  `make delete-old-libs' (in case no 3rd party program uses them anymore)

This is the recommended road map AFTER you've successfully
updated your sorces. Rebuilding of ports MAY be needed after
this step - when the new environment has been installed and
you're running the new kernel and world.

> kernel always needed?

The GENERIC kernel is a fail-safe mechanism. If your kernel
won't boot, you can request booting GENERIC from the loader,
because GENERIC *should* always boot.

If your custom kernel runs fine, there's no need for the
GENERIC kernel to be additionally built.

You can make a copy of the initial (stock) GENERIC kernel
as kernel.GENERIC. This should be a -RELEASE kernel of the
release you're currently using (8.0, 8.1, 8.1), but can
be any GENERIC kernel of a -STABLE version, too. The system
will also automatically save the last kernal as kernel.old.
Before installing world, this old kernel will match version
with the installed world.

But as I said, it's "only" a security mechanism to boot the
system when the new kernel is not booting / running properly.

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list