Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Sep 2010 08:35:29 -0700
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Olaf Seibert <O.Seibert@cs.ru.nl>
Cc:        freebsd-stable@freebsd.org, Thomas Ronner <thomas@ronner.org>
Subject:   Re: Can't build 8.1 GENERIC kernel
Message-ID:  <20100909153529.GA79356@icarus.home.lan>
In-Reply-To: <20100909152400.GS4404@twoquid.cs.ru.nl>
References:  <20100909141702.GP4404@twoquid.cs.ru.nl> <20100909152400.GS4404@twoquid.cs.ru.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
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@parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100909153529.GA79356>