...
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?
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.”
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
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.).
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 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.
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.)
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 .”