Re: Building multiple kernels with "make release"

From: Glen Barber <gjb_at_freebsd.org>
Date: Sat, 21 Aug 2021 17:14:15 UTC
It is on my list of things to look into next week.

Glen
Sent from my phone.
Please excuse my brevity and/or typos.

> On Aug 20, 2021, at 4:10 PM, Alan Somers <asomers@freebsd.org> wrote:
> 
> 
>> On Thu, Jul 29, 2021 at 12:43 PM Emmanuel Vadot <manu@bidouilliste.com> wrote:
>> On Thu, 29 Jul 2021 00:13:54 +0000
>> Glen Barber <gjb@freebsd.org> wrote:
>> 
>> > 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).
>> 
>>  You need to set NO_INSTALLEXTRAKERNELS=no for that to happens (yes the
>> variable name and double no sucks if anyone have a patch for that that
>> would be awesome).
>> 
>> > 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
>> > 
>> 
>> 
>> -- 
>> Emmanuel Vadot <manu@bidouilliste.com> <manu@FreeBSD.org>
> 
>  NO_INSTALLEXTRAKERNELS=no works for "make installkernel".  However, it still doesn't work with release.sh.  It seems there is work left to do.
> -Alan