Re: Building multiple kernels with "make release"

From: Alan Somers <asomers_at_freebsd.org>
Date: Sun, 05 Jan 2025 17:14:33 UTC
To resurrect this old thread, I got it working.  I can now run
release.sh and it will build .iso files and VM images that contain two
kernels.  My PR is at https://github.com/freebsd/freebsd-src/pull/1566
.

On Sat, Aug 21, 2021 at 11:14 AM Glen Barber <gjb@freebsd.org> wrote:
>
> 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