Solved Unexpected patch level change after freebsd-update from FreeBSD 12.2-RELEASE-p10

Firstly, if freebsd-update does not update the kernel, does that mean uname -a will display the wrong patch level?
Secondly, I seem to have gone backwards after an update:

Code:
# uname -a
FreeBSD xxx 12.2-RELEASE-p10 FreeBSD 12.2-RELEASE-p10 r370432 GENERIC  amd64


# freebsd-update fetch
...
The following files will be added as part of updating to
12.2-RELEASE-p11:
...

# freebsd-update install
...
<complete update, reboot>


# uname -a
FreeBSD xxx 12.2-RELEASE-p7 FreeBSD 12.2-RELEASE-p7 GENERIC  amd64


My first thought was that booting the new kernel had failed, and it had somehow reverted to the old one, but the current kernel /boot/kernel/kernel contains the string "FreeBSD 12.2-RELEASE-p7 GENERIC"; the old kernel /boot/kernel.old1/kernel contains the string "FreeBSD 12.2-RELEASE-p10 r370432 GENERIC"
A further attempt at freebsd-update fetch does not offer any further updates, suggesting I'm already at -p11.

Code:
# strings /boot/kernel/kernel | grep "^FreeBSD 12.2"
FreeBSD 12.2-RELEASE-p7 GENERIC
# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching metadata signature for 12.2-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 12.2-RELEASE-p11.

So based on uname -a (and grepping kernel strings) I've gone from -p10 to -p7, but based on freebsd-update I'm at the expected -p11. Is there something I'm missing here?
 
Is it the "what patch level am I" that's a FAQ, or the more specific question about the kernel's patch level apparently going backwards?

freebsd-version -kru shows:

Code:
12.2-RELEASE-p7
12.2-RELEASE-p7
12.2-RELEASE-p11

This output makes sense, however, I'm still trying to understand why the old kernel is a higher patch level (at least based on its internal identification string) than the one installed by freebsd-update a couple of hours ago.

Code:
# strings /boot/kernel.old1/kernel | grep "^FreeBSD 12.2-RELEASE-p"
FreeBSD 12.2-RELEASE-p10 r370432 GENERIC   <<<-- before upgrade
# strings /boot/kernel/kernel | grep "^FreeBSD 12.2-RELEASE-p"
FreeBSD 12.2-RELEASE-p7 GENERIC   <<<-- after upgrade
 
Is it the "what patch level am I" that's a FAQ, or the more specific question about the kernel's patch level apparently going backwards?
The FAQ is "Why does uname not show the latest patchlevel". And the kernel never goes backwards. If you had a kernel actually showing -p10, you probably compiled it yourself.
 
The FAQ is "Why does uname not show the latest patchlevel". And the kernel never goes backwards. If you had a kernel actually showing -p10, you probably compiled it yourself.
That's possible - I just noticed I have sources installed, although it seems I just compiled the GENERIC kernel in preparation for a custom kernel. Source was synced from releng/12.2 and nothing was changed, so why is it showing -p10?

There's something else odd I've noticed about the update process: kernel modules if_stf.ko, ipfw_nat64.ko, ipfw_nptv6.ko, mlx4en.ko, mlx5en.ko, tcpmd5.ko have disappeared from the currently installed 12.2-p11 kernel, but are present in the older 12.2-p7 kernel. When I ran freebsd-update there were no reported issues. Does it check for missing files, or is it deliberately ignoring them because of the previous custom kernel? I tried a fresh install of 12.2R on a VM, and those modules are present, both at install, and after freebsd-update to 12.2-p11. tcpmd5.ko is a module I actually need.
 
Re the missing modules, I don't know why it's happened, but I'm going to compile and install GENERIC to (hopefully) reinstate them. The original question has been answered so I've marked the thread as solved.
 
Back
Top