# Update from bullseye 32bit to trixie 64bit?

**URL:** <https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116>\
**Category:** Debian family\
**Created:** [November 25, 2025, 1:51pm UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116 "2025-11-25T13:51:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![user706](https://avatars.discourse-cdn.com/v4/letter/u/ba9def/32.png) [@user706](https://hub.mender.io/u/user706)\
**Post date:** [November 25, 2025, 1:51pm UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116/1 "2025-11-25T13:51:14Z")

</div>

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

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

```

I get this error:

```auto
...
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](https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-32-bit) 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?

---

<div class="post-metadata">

**Author:** ![TheYoctoJester](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/theyoctojester/32/1444_2.png) [@TheYoctoJester](https://hub.mender.io/u/TheYoctoJester)\
**Post date:** [November 27, 2025, 2:22pm UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116/2 "2025-11-27T14:22:50Z")

</div>

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`](https://docs.mender.io/operating-system-updates-debian-family/variables#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`](https://www.raspberrypi.com/documentation/computers/config_txt.html#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

---

<div class="post-metadata">

**Author:** ![user706](https://avatars.discourse-cdn.com/v4/letter/u/ba9def/32.png) [@user706](https://hub.mender.io/u/user706)\
**Post date:** [November 27, 2025, 3:07pm UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116/3 "2025-11-27T15:07:04Z")

</div>

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](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](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.).

---

<div class="post-metadata">

**Author:** ![user706](https://avatars.discourse-cdn.com/v4/letter/u/ba9def/32.png) [@user706](https://hub.mender.io/u/user706)\
**Post date:** [November 27, 2025, 3:37pm UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116/4 "2025-11-27T15:37:03Z")

</div>

PS: I’ve also seen this here: [Raspberry Pi OS 64 Bit conversion - #23 by Pedro-Jesus-Fuentes](https://hub.mender.io/t/raspberry-pi-os-64-bit-conversion/4919/23) , 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…)

---

<div class="post-metadata">

**Author:** ![TheYoctoJester](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/theyoctojester/32/1444_2.png) [@TheYoctoJester](https://hub.mender.io/u/TheYoctoJester)\
**Post date:** [November 27, 2025, 3:44pm UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116/5 "2025-11-27T15:44:26Z")

</div>

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](mailto: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](https://github.com/mendersoftware/mender-convert/blob/master/configs/raspberrypi/uboot/debian/raspberrypi4_trixie_64bit_config)
- 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

---

<div class="post-metadata">

**Author:** ![user706](https://avatars.discourse-cdn.com/v4/letter/u/ba9def/32.png) [@user706](https://hub.mender.io/u/user706)\
**Post date:** [November 27, 2025, 3:52pm UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116/6 "2025-11-27T15:52:42Z")

</div>

> [@TheYoctoJester](#):
>
> 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`.

Well if you download this lite image here  
[https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-32-bit](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.)

---

<div class="post-metadata">

**Author:** ![user706](https://avatars.discourse-cdn.com/v4/letter/u/ba9def/32.png) [@user706](https://hub.mender.io/u/user706)\
**Post date:** [November 27, 2025, 3:57pm UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116/7 "2025-11-27T15:57:43Z")

</div>

> [@TheYoctoJester](#):
>
> The 32bit-RaspberryPi-OS support will be deprecated in the foreseeable future.

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

---

<div class="post-metadata">

**Author:** ![user706](https://avatars.discourse-cdn.com/v4/letter/u/ba9def/32.png) [@user706](https://hub.mender.io/u/user706)\
**Post date:** [November 28, 2025, 8:57am UTC](https://hub.mender.io/t/update-from-bullseye-32bit-to-trixie-64bit/8116/8 "2025-11-28T08:57:31Z")

</div>

> [@TheYoctoJester](#):
>
> I don’t know where the mixed bit width statement comes from. Can you please provide the corresponding source or documentation?

Here it is:  
[https://www.raspberrypi.com/documentation/computers/linux\_kernel.html#native-build-configuration](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** )
