Can't build 8.1 GENERIC kernel

Jeremy Chadwick freebsd at jdc.parodius.com
Thu Sep 9 15:35:33 UTC 2010


On Thu, Sep 09, 2010 at 05:24:00PM +0200, Olaf Seibert wrote:
> Thomas Ronner wrote:
> 
> > I don't know about the old-fashioned way, but the new way is:
> > 
> > # cd /usr/src
> > # make buildkernel KERNCONF=GENERIC
> > # make installkernel KERNCONF=GENERIC
> 
> Thank you, that worked.
> 
> I wonder what the underlying difference is; probably something fairly
> subtle. The same hack.So file was generated (byte for byte identical).
> And something changed between 8.0 and 8.1, since previously, the
> old-fashioned method worked.

Not sure (it's been a long time since I configured a kernel the old way,
dating back to 2.x), but possibly it has to do with the introduction of
/usr/obj.  Your "file" command doesn't indicate what your working
directory was at the time.

Regardless, when it comes to building world and kernel, you should
follow the instructions in /usr/src/Makefile (there's 11 steps).  Do not
skip steps, and do not avoid steps (such as doing installkernel then
skipping the boot-into-single-user step before doing installworld; this
may work the majority of the time, but I've seen cases where /libexec
binaries don't get updated without going into single-user, and the
result is a system that breaks immediately).

You should also build world before building kernel; as I understand it,
the binaries built during buildworld will be used to build the kernel.
There have been many situations in the past where not doing this has
broken the build process (e.g. a new feature/flag/etc. being introduced
which exists via the /usr/obj/usr/bin/whatever binary, but not
/usr/bin/whatever).

-- 
| Jeremy Chadwick                                   jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-stable mailing list