The FreeBSD Diary

The FreeBSD Diary (TM)

Providing practical examples since 1998

If you buy from Amazon USA, please support us by using this link.
ERROR: version of config(8) does not match kernel! 16 February 2002
Need more help on this topic? Click here
This article has 8 comments
Show me similar articles

I've seen this problem occur with other people when I was upgrading from 4.4 to 4.5. And now I've encountered this joy. Personally, I blame my not being on a bike since early December. That's two months without a ride!

In reality, I noticed that the FreshPorts2 development box wasn't responding to the keyboard after being rebooted. That was because the keyboard wasn't plugged in during the reboot. See the article on headless servers for more information on that topic. I modified the kernel configuration file according to that article, and then issued the usual command:

# config -r GUS
Removing old directory ../../compile/GUS:  Done.
ERROR: version of config(8) does not match kernel!
config version = 400019, version required = 400018

Make sure that /usr/src/usr.sbin/config is in sync
with your /usr/src/sys and install a new config binary
before trying this again.

If running the new config fails check your config
file against the GENERIC or LINT config files for
changes in config syntax, or option/device naming
The problem

The box in question (GUS) was upgraded to 4.5-STABLE using the "Build world on your fast box, install on your slow box" strategy which I've come to know and love. That means the kernel source code on GUS was out of date. I had two choices:

  • Update the kernel source on GUS
  • Compile a new kernel on the XEON and make install that one

I chose to do the second option. The first option may well have worked, but it runs the risk of breaking things that rely on binary interfaces between userland and kernel.

The solution

I went back to the main box and rebuilt a new kernel according the the instructions I wrote ages ago. When I looked at the kernel config file, I noticed that the keyboard option I was looking for was already there. But to prove that the problem was an out of date source tree, I did cvsup src-sys just for fun. To do that, I took did this:

  1. cp /usr/share/examples/cvsup/stable-supfile kernel-supfile
  2. modify kernel-supfile so src-all is commented out.
  3. also uncomment src-sys

It is not necessary to cvsup the entire source tree here as I only want to cvsup the kernel source. That will prove my point that it's just the kernel source out of date.

Then I cvsup'd my [kernel] source tree:

cvsup -h xeon kernel-supfile

Then the proof that all was now well:

# config GUS
Don't forget to do a `make depend''
Kernel build directory is ../../compile/GUS

NOTE: I did not build a kernel from this source. Nor do I suggest you do. This kernel source is newer than my userland. They should be the same age. I went back to my XEON box and built the source the right way.

Need more help on this topic? Click here
This article has 8 comments
Show me similar articles