[PATCH] rpi: Fix kernel file name for arm64 target

3 views
Skip to first unread message

Anton Mikanovich

unread,
May 26, 2026, 5:01:01 AM (6 days ago) May 26
to isar-...@googlegroups.com, Anton Mikanovich
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 <ami...@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"

KERNEL_TYPE = "raspios"
KERNEL_IMAGE_PKG ?= "raspberrypi-kernel"
--
2.34.1

MOESSBAUER, Felix

unread,
May 26, 2026, 5:40:09 AM (6 days ago) May 26
to ami...@ilbers.de, isar-...@googlegroups.com
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 <ami...@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+...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260526090048.3114378-1-amikan%40ilbers.de.

Anton Mikanovich

unread,
May 26, 2026, 5:47:52 AM (6 days ago) May 26
to MOESSBAUER, Felix, isar-...@googlegroups.com
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.

MOESSBAUER, Felix

unread,
May 26, 2026, 6:09:11 AM (6 days ago) May 26
to ami...@ilbers.de, isar-...@googlegroups.com, Kiszka, Jan

+ 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

Jan Kiszka

unread,
May 26, 2026, 8:25:53 AM (5 days ago) May 26
to Moessbauer, Felix (FT RPD CED OES-DE), amikan, isar-...@googlegroups.com
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 <ami...@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

--
Siemens AG, Foundational Technologies
Linux Expert Center

Anton Mikanovich

unread,
May 26, 2026, 8:28:48 AM (5 days ago) May 26
to Jan Kiszka, Moessbauer, Felix (FT RPD CED OES-DE), isar-...@googlegroups.com
32-bit targets are already covered by the line above.

Jan Kiszka

unread,
May 26, 2026, 8:34:52 AM (5 days ago) May 26
to Anton Mikanovich, Moessbauer, Felix (FT RPD CED OES-DE), isar-...@googlegroups.com
...by chance as the core config does not override anything for 32-bit.
Not a consistent solution, though.

Jan

Anton Mikanovich

unread,
May 28, 2026, 9:56:57 AM (3 days ago) May 28
to MOESSBAUER, Felix, isar-...@googlegroups.com, Kiszka, Jan
26.05.2026 12:40, MOESSBAUER, Felix wrote:
Anyway let's give it a try.
I've prepared a patch which passed some manual checks, but still not
fully sure
about native case covered in kernel recipe previously:

[PATCH] meta: Remove overrides from kernel filename selection

It probably need some testing on downstreams. If it will be ok we can
drop this
rpi hotfix.
Reply all
Reply to author
Forward
0 new messages