freebsd-update with non-GENERIC kerrnel

Olaf Seibert O.Seibert at cs.ru.nl
Tue Jun 1 09:45:09 UTC 2010


I find the way freebsd-update handles a system that runs a non-GENERIC
kernel less than helpful.

It is doing this:

| fourquid.3:~$ sudo freebsd-update upgrade -r 8.1-BETA1
| Password:
| Looking up update.FreeBSD.org mirrors... 3 mirrors found.
| Fetching metadata signature for 8.0-RELEASE from update5.FreeBSD.org... done.
| Fetching metadata index... done.
| Fetching 2 metadata patches.. done.
| Applying metadata patches... done.
| Inspecting system... done.
| 
| WARNING: This system is running a "fourquid" kernel, which is not a
| kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
| This kernel will not be updated: you MUST update the kernel manually
| before running "/usr/sbin/freebsd-update install".
| 
| The following components of FreeBSD seem to be installed:
| src/base src/bin src/cddl src/contrib src/crypto src/etc src/games
| src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
| src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
| world/base world/catpages world/dict world/doc world/games world/info
| world/lib32 world/manpages world/proflibs
| 
| The following components of FreeBSD do not seem to be installed:
| kernel/generic
| 
| Does this look reasonable (y/n)? n

I do have the kernel sources installed, so I would like to have them
updated. I don't even mind to have a GENERIC kernel temporarily
installed, until I compile my own (fortunately, they are not that
different).

It is nice that it tells me that I "MUST update the kernel manually",
but it gives me no help in getting the sources and doing that. (Can the
new kernel even be built in all cases with old tools? NetBSD offers a
nice cross-building system for that.)

For my previous update to 8.0-RELEASE-p2 I patched freebsd-update simply
to think that my kernel *is* GENERIC,

--- /usr/sbin/freebsd-update    2009-12-22 17:16:01.000000000 +0100
+++ /tmp/freebsd-update 2010-05-11 10:35:05.000000000 +0200
@@ -631,6 +631,7 @@
        # we're running an SMP kernel.  This mis-identification is a bug
        # which was fixed in 6.2-STABLE.
        KERNCONF=`uname -i`
+       KERNCONF=GENERIC
        if [ ${KERNCONF} = "SMP-GENERIC" ]; then
                KERNCONF=SMP
        fi

but that seems riskier as updates get a bit bigger.

The official way seems to be to reboot using GENERIC, upgrade (with a
reboot with new GENERIC), rebuild new CUSTOM kernel, reboot again. At
least the first reboot ought to be avoided...

-Olaf.
-- 


More information about the freebsd-stable mailing list