Update from bullseye 32bit to trixie 64bit?

Hi,

is it possible to update

  • Raspberry Pi OS Debian bullseye (32 bit [kernel and userland])
    to
  • Raspberry Pi OS Debian trixie (64 bit [kernel and userland])

using mender?

The existing bullseye 32bit image was built with mender 4.0.1
The new trixie 64bit image was built with mender 5.0.0

When I try to update to trixie 64bit image

sudo mender install rpi-image-raspberrypi4_64-mender.mender

I get this error:

...
ERRO[0000] Reading headers failed: installer: failed to read Artifact: readHeaderV3: handleHeaderReads: installer: image (device types [raspberrypi4_64]) not compatible with device raspberrypi4 
ERRO[0000] installer: failed to read Artifact: readHeaderV3: handleHeaderReads: installer: image (device types [raspberrypi4_64]) not compatible with device raspberrypi4 

So seems like this update is not possible.
Question a) is this possible?

But as far as I know, trixie does not have a 32 bit kernel (edit: for pi4).
If I download this: Debian trixie 32 bit Raspberry Pi OS downloads – Raspberry Pi then only the userland has 32 bit. The kernel still has 64 bit.

As far as I can see, I cannot even get a prebuilt packaged 32-bit kernel for Debian trixie (edit: for pi4)

So more questions:
Question b) Can I upgrade from 32bit-kernel-and-userland to 64bit-kernel-and-32bit-userland?
Question c) If not, then it means that I cannot update my 32bit-kernel-and-userland to trixie (since trixie does not have a prebuilt packaged 32-bit kernel), correct?

Hi @user706,

Thanks for reaching out!

So for question 1, this is just the generic compatibility check kicking in. By default, the device_type string for 32bit is raspberrypi4 on the RPi4, and on 64bit it is raspberrypi4-64 or raspberrypi4_64, depending on if you’re using mender-convert or Yocto to create the image. By setting MENDER_DEVICE_TYPE accordingly, you can make this match easily.

Question 2 is more tricky. The Raspberry Pi first stage loader does set up a few things depending on the arm_64bit setting. u-boot then needs to match this accordingly. So for such a 32bit->64bit upgrade, you would need to also upgrade the bootloader which is a potentially destructive operation.

Hence, the answer is a “can be done, but depends.”

Greetz,
Josef

Thanks for your reply.

hmmm…
Do you have pay’ed support?

The task would be:
get raspberry pi 4…
…which are running an old mender-converted image based on
. . . . . . rasbperry pi os debian bullseye with 32bit userland-and-kernel (with 256MB boot partition)
. . . . . . created with mender 4.0.1

… to run raspberry pi os debian trixie. (this one by default now has 512MB boot partition; but one can built it oneself to also have 256MB)
The new image should be a default one using default packages etc. meaning:
. . . . . . either 64bit kernel-and-userspace,
. . . . . . or 64bit kernel and 32bit userspace

The question is how much even payed support could achieve, because if I check your repo here
https://github.com/mendersoftware/mender-convert/tree/master/configs/raspberrypi/uboot/debian

I see a brand-new trixie raspberrypi5_trixie_64bit_config.
I do not see a config for the 64bit kernel and 32bit userspace (for trixie), and have stumbled accross this, which looks like it is nowhere near ready:
https://github.com/mendersoftware/mender-convert/blob/dbcbfaa566ebea48339a25daa0b9a89d8d122079/configs/raspberrypi/uboot/include/raspberrypi_32_config#L44

???

How deep into this stuff… is the company? Does pay’ed support have a benefit, or would it take the equivalent time, if I just wait for it to be done in the repo (perhaps because someone is working on it anyway… but perhaps struggling; same as me now.).

PS: I’ve also seen this here: Raspberry Pi OS 64 Bit conversion - #23 by Pedro-Jesus-Fuentes , which suggests that going from 32bit to 64bit is not easy.

(I wonder how it is, if one instead goes to 64bit kernel and 32bit userspace…)

Hi @user706,

To be honest, I don’t know where the mixed bit width statement comes from. Can you please provide the corresponding source or documentation?
My understanding is that the 32bit images actually are fully armv6 to be compatible with the original Raspberry Pi, whereas the 64bit images are fully aarch64.

On your question: yes we do provide commercial services. If you would like to inquire such, then please send a mail to contact@mender.io.

Concerning the configurations, a few noteworthy things.

  • going forward we will support true 32bit arm (which is armv7, not the Raspberry Pi interpretation of it), 64 bit arm (which is aarch64), and x86-64 (which is `amd64, always in terms or architecture strings). The 32bit-RaspberryPi-OS support will be deprecated in the foreseeable future.
  • we already provide mender-convert/configs/raspberrypi/uboot/debian/raspberrypi4_trixie_64bit_config at master · mendersoftware/mender-convert · GitHub
  • we explicitly do not guarantee Debian release upgrade or even changes of bit width/architecture across different included configurations. This is always up to the device manufacturer themselves, or an additional professional service agreement.

Greetz,
Josef

Well if you download this lite image here
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-32-bit
which at the time of writing was released 3 days ago (on 24 Nov 2025),
and load it on your rpi4, and then do

uname -m
you’ll see aarch64 (so 64bit kernel)

but when you do
file -L /bin/sh
you’ll see ... ELF 32-bit ... (so 32bit userland)

Also: I have tried via apt to get a 32bit kernel, but it is just not possible. If you get it to work, please tell me how. (I think there is no packaged 32bit kernel for trixie.)

Well then hopefully, mender will then provide mender-convert code-routines and documentation, such that one can upgrade those old systems to 64 bit.

Here it is:
https://www.raspberrypi.com/documentation/computers/linux_kernel.html#native-build-configuration

Scroll down a bit to the Note in the box.
There it says:
“The 32-bit distribution of Raspberry Pi OS on 4-series devices uses a 32-bit userland, but a 64-bit kernel .”

(I’m was talking about raspberry pi 4)