Re: Building multiple kernels with "make release"

From: Glen Barber <gjb_at_freebsd.org>
Date: Thu, 29 Jul 2021 00:13:54 UTC
On Wed, Jul 28, 2021 at 06:00:28PM -0600, Alan Somers wrote:
> On Wed, Jul 28, 2021 at 5:52 PM Miroslav Lachman <000.fbsd@quip.cz> wrote:
> 
> > On 28/07/2021 20:46, Juraj Lutter wrote:
> > >
> > >
> > >> On 28 Jul 2021, at 20:37, Glen Barber <gjb@freebsd.org> wrote:
> > >>
> > >> On Wed, Jul 28, 2021 at 12:05:25PM -0600, Alan Somers wrote:
> > >>> On Wed, Jul 28, 2021 at 11:57 AM Glen Barber <gjb@freebsd.org> wrote:
> > >>>> Just on a hunch, could you try with adding INSTALLKERNEL="${KERNEL}"
> > to
> > >>>> your release.conf?
> > >>>>
> > >>>> I now seem to recall some weirdness with this, but the exact details
> > >>>> elude me at the moment.
> > >>>>
> > >>>
> > >>> Setting INSTALLKERNEL="GENERIC-NODEBUG"  during "make installkernel"
> > >>> overrides whatever KERNCONF was set to.  But it still only installs one
> > >>> kernel.  Trying to set that variable to a list doesn't work.
> > >>
> > >> Ok.  Give me a day or so to try to figure out what is (or isn't)
> > >> happening here.  I do not recall any recent-ish changes that would have
> > >> caused this, and I am 95% certain it has worked in the past.
> > >
> > > According to Makefile.inc1:
> > >
> > > make installkernel KERNCONF=“KERN1 KERN2”
> > >
> > > should install KERN1 and KERN2. Similar goes for buildkernel.
> > >
> > > Or is there something I am missing?
> >
> > Does 'make installkernel KERNCONF=“KERN1 KERN2”' really install both
> > kernels? Under which names?
> > I have 3 kernels defined in KERNCONF in /etc/make.conf for years. 3
> > kernels are built by "make buildkernel" but only one installed by "make
> > installkernel".
> >
> > To install other kernels I use:
> >
> > make installkernel KERNCONF=KERN2 KODIR=/boot/kernel.KERN2
> >
> > make installkernel KERNCONF=KERN3 KODIR=/boot/kernel.KERN3
> >
> 
> Miroslav is right.  Despite the comment that Juraj found, "make
> installkernel" only installs the first kernel listed in KERNCONF.

Good find.  I honestly thought this worked as expected versus as
written.  In fact, I *thought* secondary, tertiary, etc. kernels were
installed as /boot/kernel.KERN2, /boot/kernel.KERN3 (using the example
above).

Although, I may be misremembering, and 'kernel.KERN2.txz' may be created
instead, although not installed/extracted.  Though, we are going back at
least seven years, and I do not even remember what I had eaten for
dinner last night, so there's that...

Glen