rpi: Fix kernel file name for arm64 target

Message ID 20260526090048.3114378-1-amikan@ilbers.de
State New
Headers show
Series rpi: Fix kernel file name for arm64 target | expand

Commit Message

Anton Mikanovich May 26, 2026, 9 a.m. UTC
For generic arm64 targets KERNEL_FILE is set by override, so if we need
to change it, override ':arm64' should be used. Otherwize generic value
still will be used.

Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
 meta-isar/conf/machine/rpi-common.conf | 1 +
 1 file changed, 1 insertion(+)

Comments

MOESSBAUER, Felix May 26, 2026, 9:40 a.m. UTC | #1
On Tue, 2026-05-26 at 12:00 +0300, Anton Mikanovich wrote:
> For generic arm64 targets KERNEL_FILE is set by override, so if we need
> to change it, override ':arm64' should be used. Otherwize generic value
> still will be used.

The override is in bitbake.conf, namely:

KERNEL_FILE ?= "vmlinuz"
KERNEL_FILE:mipsel ?= "vmlinux"
KERNEL_FILE:riscv64 ?= "vmlinux"
KERNEL_FILE:arm64 ?= "vmlinux"

> 
> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> ---
>  meta-isar/conf/machine/rpi-common.conf | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/meta-isar/conf/machine/rpi-common.conf b/meta-isar/conf/machine/rpi-common.conf
> index 9dd70f99..c9b59125 100644
> --- a/meta-isar/conf/machine/rpi-common.conf
> +++ b/meta-isar/conf/machine/rpi-common.conf
> @@ -11,6 +11,7 @@ INSTALLER_WKS_FILE ?= "installer-rpi.wks"
>  
>  # RPi have custom kernel file names
>  KERNEL_FILE = "${KERNEL_NAME}.img"
> +KERNEL_FILE:arm64 = "${KERNEL_NAME}.img"

It is hard to explain why this is needed and probably other downstream
targets stumble upon this as well. How about keeping it as-is, but
change the definition in bitbake.conf by using an anonymous function
(untested)?

E.g.

KERNEL_FILE = "${@'vmlinux' if d.getVar('DISTRO_ARCH') in ['mipsel',
'riscv64', 'arm64'] else 'vmlinuz'}"

Best regards,
Felix

>  
>  KERNEL_TYPE = "raspios"
>  KERNEL_IMAGE_PKG ?= "raspberrypi-kernel"
> -- 
> 2.34.1
> 
> -- 
> You received this message because you are subscribed to the Google Groups "isar-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260526090048.3114378-1-amikan%40ilbers.de.
Anton Mikanovich May 26, 2026, 9:47 a.m. UTC | #2
26.05.2026 12:40, MOESSBAUER, Felix wrote:
> On Tue, 2026-05-26 at 12:00 +0300, Anton Mikanovich wrote:
>> For generic arm64 targets KERNEL_FILE is set by override, so if we need
>> to change it, override ':arm64' should be used. Otherwize generic value
>> still will be used.
> The override is in bitbake.conf, namely:
>
> KERNEL_FILE ?= "vmlinuz"
> KERNEL_FILE:mipsel ?= "vmlinux"
> KERNEL_FILE:riscv64 ?= "vmlinux"
> KERNEL_FILE:arm64 ?= "vmlinux"
>
>> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
>> ---
>>   meta-isar/conf/machine/rpi-common.conf | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/meta-isar/conf/machine/rpi-common.conf b/meta-isar/conf/machine/rpi-common.conf
>> index 9dd70f99..c9b59125 100644
>> --- a/meta-isar/conf/machine/rpi-common.conf
>> +++ b/meta-isar/conf/machine/rpi-common.conf
>> @@ -11,6 +11,7 @@ INSTALLER_WKS_FILE ?= "installer-rpi.wks"
>>   
>>   # RPi have custom kernel file names
>>   KERNEL_FILE = "${KERNEL_NAME}.img"
>> +KERNEL_FILE:arm64 = "${KERNEL_NAME}.img"
> It is hard to explain why this is needed and probably other downstream
> targets stumble upon this as well. How about keeping it as-is, but
> change the definition in bitbake.conf by using an anonymous function
> (untested)?
>
> E.g.
>
> KERNEL_FILE = "${@'vmlinux' if d.getVar('DISTRO_ARCH') in ['mipsel',
> 'riscv64', 'arm64'] else 'vmlinuz'}"
We already have override like this in linux-kernel.bbclass based on 
KERNEL_ARCH.
Having it all in one place will be much better, but I don't have 
reliable enough
implementation so far.
>
> Best regards,
> Felix
>
>>   
>>   KERNEL_TYPE = "raspios"
>>   KERNEL_IMAGE_PKG ?= "raspberrypi-kernel"
>> -- 
>> 2.34.1
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups "isar-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
>> To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260526090048.3114378-1-amikan%40ilbers.de.
MOESSBAUER, Felix May 26, 2026, 10:09 a.m. UTC | #3
On Tue, 2026-05-26 at 12:47 +0300, Anton Mikanovich wrote:
> 26.05.2026 12:40, MOESSBAUER, Felix wrote:
> > On Tue, 2026-05-26 at 12:00 +0300, Anton Mikanovich wrote:
> > > For generic arm64 targets KERNEL_FILE is set by override, so if we need
> > > to change it, override ':arm64' should be used. Otherwize generic value
> > > still will be used.
> > The override is in bitbake.conf, namely:
> > 
> > KERNEL_FILE ?= "vmlinuz"
> > KERNEL_FILE:mipsel ?= "vmlinux"
> > KERNEL_FILE:riscv64 ?= "vmlinux"
> > KERNEL_FILE:arm64 ?= "vmlinux"
> > 
> > > Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> > > ---
> > >   meta-isar/conf/machine/rpi-common.conf | 1 +
> > >   1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/meta-isar/conf/machine/rpi-common.conf b/meta-isar/conf/machine/rpi-common.conf
> > > index 9dd70f99..c9b59125 100644
> > > --- a/meta-isar/conf/machine/rpi-common.conf
> > > +++ b/meta-isar/conf/machine/rpi-common.conf
> > > @@ -11,6 +11,7 @@ INSTALLER_WKS_FILE ?= "installer-rpi.wks"
> > >   
> > >   # RPi have custom kernel file names
> > >   KERNEL_FILE = "${KERNEL_NAME}.img"
> > > +KERNEL_FILE:arm64 = "${KERNEL_NAME}.img"
> > It is hard to explain why this is needed and probably other downstream
> > targets stumble upon this as well. How about keeping it as-is, but
> > change the definition in bitbake.conf by using an anonymous function
> > (untested)?
> > 
> > E.g.
> > 
> > KERNEL_FILE = "${@'vmlinux' if d.getVar('DISTRO_ARCH') in ['mipsel',
> > 'riscv64', 'arm64'] else 'vmlinuz'}"
> We already have override like this in linux-kernel.bbclass based on 
> KERNEL_ARCH.
> Having it all in one place will be much better, but I don't have 
> reliable enough
> implementation so far.

+ CC Jan

I see. But that makes the change even more problematic, as it now
depends on the order of the overrides.

How about:

1. move KERNEL_FILE ?= "${@ ...}" logic to bitbake.conf, drop from 
linux-kernel.bbclass, drop arch-specific overrides in bitbake.conf
3. use KERNEL_FILE = "${KERNEL_NAME}.img" in rpi-common.conf
4. drop the forcevariable override

The current implementation is a mess.

Felix

> > 
> > Best regards,
> > Felix
> > 
> > >   
> > >   KERNEL_TYPE = "raspios"
> > >   KERNEL_IMAGE_PKG ?= "raspberrypi-kernel"
> > > -- 
> > > 2.34.1
> > > 
> > > -- 
> > > You received this message because you are subscribed to the Google Groups "isar-users" group.
> > > To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
> > > To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260526090048.3114378-1-amikan%40ilbers.de.
Jan Kiszka May 26, 2026, 12:25 p.m. UTC | #4
On 26.05.26 12:09, Moessbauer, Felix (FT RPD CED OES-DE) wrote:
> On Tue, 2026-05-26 at 12:47 +0300, Anton Mikanovich wrote:
>> 26.05.2026 12:40, MOESSBAUER, Felix wrote:
>>> On Tue, 2026-05-26 at 12:00 +0300, Anton Mikanovich wrote:
>>>> For generic arm64 targets KERNEL_FILE is set by override, so if we need
>>>> to change it, override ':arm64' should be used. Otherwize generic value
>>>> still will be used.
>>> The override is in bitbake.conf, namely:
>>>
>>> KERNEL_FILE ?= "vmlinuz"
>>> KERNEL_FILE:mipsel ?= "vmlinux"
>>> KERNEL_FILE:riscv64 ?= "vmlinux"
>>> KERNEL_FILE:arm64 ?= "vmlinux"
>>>
>>>> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
>>>> ---
>>>>   meta-isar/conf/machine/rpi-common.conf | 1 +
>>>>   1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/meta-isar/conf/machine/rpi-common.conf b/meta-isar/conf/machine/rpi-common.conf
>>>> index 9dd70f99..c9b59125 100644
>>>> --- a/meta-isar/conf/machine/rpi-common.conf
>>>> +++ b/meta-isar/conf/machine/rpi-common.conf
>>>> @@ -11,6 +11,7 @@ INSTALLER_WKS_FILE ?= "installer-rpi.wks"
>>>>   
>>>>   # RPi have custom kernel file names
>>>>   KERNEL_FILE = "${KERNEL_NAME}.img"
>>>> +KERNEL_FILE:arm64 = "${KERNEL_NAME}.img"

Are we only supporting 64-bit RPi anymore? If not, also a 32-bit variant
would be needed. Or :forcevariable, see below.

>>> It is hard to explain why this is needed and probably other downstream
>>> targets stumble upon this as well. How about keeping it as-is, but
>>> change the definition in bitbake.conf by using an anonymous function
>>> (untested)?
>>>
>>> E.g.
>>>
>>> KERNEL_FILE = "${@'vmlinux' if d.getVar('DISTRO_ARCH') in ['mipsel',
>>> 'riscv64', 'arm64'] else 'vmlinuz'}"
>> We already have override like this in linux-kernel.bbclass based on 
>> KERNEL_ARCH.
>> Having it all in one place will be much better, but I don't have 
>> reliable enough
>> implementation so far.
> 
> + CC Jan
> 
> I see. But that makes the change even more problematic, as it now
> depends on the order of the overrides.
> 
> How about:
> 
> 1. move KERNEL_FILE ?= "${@ ...}" logic to bitbake.conf, drop from 
> linux-kernel.bbclass, drop arch-specific overrides in bitbake.conf
> 3. use KERNEL_FILE = "${KERNEL_NAME}.img" in rpi-common.conf
> 4. drop the forcevariable override
> 
> The current implementation is a mess.

The problem is that something like weak overrides does not seem to
exist, and we should likely change the generic assignment into something
that gets along without overrides. Forcevariable is a workaround for
downstream so far.

Jan
Anton Mikanovich May 26, 2026, 12:28 p.m. UTC | #5
26.05.2026 15:25, Jan Kiszka wrote:
> On 26.05.26 12:09, Moessbauer, Felix (FT RPD CED OES-DE) wrote:
>> On Tue, 2026-05-26 at 12:47 +0300, Anton Mikanovich wrote:
>>> 26.05.2026 12:40, MOESSBAUER, Felix wrote:
>>>> On Tue, 2026-05-26 at 12:00 +0300, Anton Mikanovich wrote:
>>>>> For generic arm64 targets KERNEL_FILE is set by override, so if we need
>>>>> to change it, override ':arm64' should be used. Otherwize generic value
>>>>> still will be used.
>>>> The override is in bitbake.conf, namely:
>>>>
>>>> KERNEL_FILE ?= "vmlinuz"
>>>> KERNEL_FILE:mipsel ?= "vmlinux"
>>>> KERNEL_FILE:riscv64 ?= "vmlinux"
>>>> KERNEL_FILE:arm64 ?= "vmlinux"
>>>>
>>>>> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
>>>>> ---
>>>>>    meta-isar/conf/machine/rpi-common.conf | 1 +
>>>>>    1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/meta-isar/conf/machine/rpi-common.conf b/meta-isar/conf/machine/rpi-common.conf
>>>>> index 9dd70f99..c9b59125 100644
>>>>> --- a/meta-isar/conf/machine/rpi-common.conf
>>>>> +++ b/meta-isar/conf/machine/rpi-common.conf
>>>>> @@ -11,6 +11,7 @@ INSTALLER_WKS_FILE ?= "installer-rpi.wks"
>>>>>    
>>>>>    # RPi have custom kernel file names
>>>>>    KERNEL_FILE = "${KERNEL_NAME}.img"
>>>>> +KERNEL_FILE:arm64 = "${KERNEL_NAME}.img"
> Are we only supporting 64-bit RPi anymore? If not, also a 32-bit variant
> would be needed. Or :forcevariable, see below.
32-bit targets are already covered by the line above.
>
>>>> It is hard to explain why this is needed and probably other downstream
>>>> targets stumble upon this as well. How about keeping it as-is, but
>>>> change the definition in bitbake.conf by using an anonymous function
>>>> (untested)?
>>>>
>>>> E.g.
>>>>
>>>> KERNEL_FILE = "${@'vmlinux' if d.getVar('DISTRO_ARCH') in ['mipsel',
>>>> 'riscv64', 'arm64'] else 'vmlinuz'}"
>>> We already have override like this in linux-kernel.bbclass based on
>>> KERNEL_ARCH.
>>> Having it all in one place will be much better, but I don't have
>>> reliable enough
>>> implementation so far.
>> + CC Jan
>>
>> I see. But that makes the change even more problematic, as it now
>> depends on the order of the overrides.
>>
>> How about:
>>
>> 1. move KERNEL_FILE ?= "${@ ...}" logic to bitbake.conf, drop from
>> linux-kernel.bbclass, drop arch-specific overrides in bitbake.conf
>> 3. use KERNEL_FILE = "${KERNEL_NAME}.img" in rpi-common.conf
>> 4. drop the forcevariable override
>>
>> The current implementation is a mess.
> The problem is that something like weak overrides does not seem to
> exist, and we should likely change the generic assignment into something
> that gets along without overrides. Forcevariable is a workaround for
> downstream so far.
>
> Jan
>
Jan Kiszka May 26, 2026, 12:34 p.m. UTC | #6
On 26.05.26 14:28, Anton Mikanovich wrote:
> 26.05.2026 15:25, Jan Kiszka wrote:
>> On 26.05.26 12:09, Moessbauer, Felix (FT RPD CED OES-DE) wrote:
>>> On Tue, 2026-05-26 at 12:47 +0300, Anton Mikanovich wrote:
>>>> 26.05.2026 12:40, MOESSBAUER, Felix wrote:
>>>>> On Tue, 2026-05-26 at 12:00 +0300, Anton Mikanovich wrote:
>>>>>> For generic arm64 targets KERNEL_FILE is set by override, so if we
>>>>>> need
>>>>>> to change it, override ':arm64' should be used. Otherwize generic
>>>>>> value
>>>>>> still will be used.
>>>>> The override is in bitbake.conf, namely:
>>>>>
>>>>> KERNEL_FILE ?= "vmlinuz"
>>>>> KERNEL_FILE:mipsel ?= "vmlinux"
>>>>> KERNEL_FILE:riscv64 ?= "vmlinux"
>>>>> KERNEL_FILE:arm64 ?= "vmlinux"
>>>>>
>>>>>> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
>>>>>> ---
>>>>>>    meta-isar/conf/machine/rpi-common.conf | 1 +
>>>>>>    1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/meta-isar/conf/machine/rpi-common.conf b/meta-isar/
>>>>>> conf/machine/rpi-common.conf
>>>>>> index 9dd70f99..c9b59125 100644
>>>>>> --- a/meta-isar/conf/machine/rpi-common.conf
>>>>>> +++ b/meta-isar/conf/machine/rpi-common.conf
>>>>>> @@ -11,6 +11,7 @@ INSTALLER_WKS_FILE ?= "installer-rpi.wks"
>>>>>>       # RPi have custom kernel file names
>>>>>>    KERNEL_FILE = "${KERNEL_NAME}.img"
>>>>>> +KERNEL_FILE:arm64 = "${KERNEL_NAME}.img"
>> Are we only supporting 64-bit RPi anymore? If not, also a 32-bit variant
>> would be needed. Or :forcevariable, see below.
> 32-bit targets are already covered by the line above.

...by chance as the core config does not override anything for 32-bit.
Not a consistent solution, though.

Jan

>>
>>>>> It is hard to explain why this is needed and probably other downstream
>>>>> targets stumble upon this as well. How about keeping it as-is, but
>>>>> change the definition in bitbake.conf by using an anonymous function
>>>>> (untested)?
>>>>>
>>>>> E.g.
>>>>>
>>>>> KERNEL_FILE = "${@'vmlinux' if d.getVar('DISTRO_ARCH') in ['mipsel',
>>>>> 'riscv64', 'arm64'] else 'vmlinuz'}"
>>>> We already have override like this in linux-kernel.bbclass based on
>>>> KERNEL_ARCH.
>>>> Having it all in one place will be much better, but I don't have
>>>> reliable enough
>>>> implementation so far.
>>> + CC Jan
>>>
>>> I see. But that makes the change even more problematic, as it now
>>> depends on the order of the overrides.
>>>
>>> How about:
>>>
>>> 1. move KERNEL_FILE ?= "${@ ...}" logic to bitbake.conf, drop from
>>> linux-kernel.bbclass, drop arch-specific overrides in bitbake.conf
>>> 3. use KERNEL_FILE = "${KERNEL_NAME}.img" in rpi-common.conf
>>> 4. drop the forcevariable override
>>>
>>> The current implementation is a mess.
>> The problem is that something like weak overrides does not seem to
>> exist, and we should likely change the generic assignment into something
>> that gets along without overrides. Forcevariable is a workaround for
>> downstream so far.
>>
>> Jan
>>
>

Patch

diff --git a/meta-isar/conf/machine/rpi-common.conf b/meta-isar/conf/machine/rpi-common.conf
index 9dd70f99..c9b59125 100644
--- a/meta-isar/conf/machine/rpi-common.conf
+++ b/meta-isar/conf/machine/rpi-common.conf
@@ -11,6 +11,7 @@  INSTALLER_WKS_FILE ?= "installer-rpi.wks"
 
 # RPi have custom kernel file names
 KERNEL_FILE = "${KERNEL_NAME}.img"
+KERNEL_FILE:arm64 = "${KERNEL_NAME}.img"
 
 KERNEL_TYPE = "raspios"
 KERNEL_IMAGE_PKG ?= "raspberrypi-kernel"