Debian image for raspberry pi 3 convertion fail

Hi. I’m trying to convert a Debian (NOT raspbian) image. I’m generating the image using vmdb2 and it works fine before conversion.

I’m using mender-convert 2.2.0 tag and running it from docker using (docker-mender-convert):

mender-convert ((2.2.0))$ MENDER_ARTIFACT_NAME=release-1 ./docker-mender-convert --disk-image input/myimage.img --config configs/raspberrypi3_config

Doing it directly doesn’t work. It still use the kernel from debian and doesn’t boot from mender uboot.

I changed the config.txt to do that, just deleted kernel and initramfs definition and then it boot the uboot from mender-convert. The problem then is that it doesn’t boot any kernel.

I’m doing something wrong? how do I make this work?
I don’t know if the mender convert is prepared to use the initramfs and kernel from debian.

Thanks for the help!


Never tested using Debian images built with vmdb2, but it is a very interesting use-case.

You probably need to do some minor tweaks of the various Raspberry Pi configuration files, majority of the logic is

You can also have a look at the boot.scr file which contains the logic that U-Boot will execute to boot the device. It for sure does not contain anything initramfs related, so might need to tweak this one.

Hi @mirzak,

Thanks for replying. Yes, I took some time and follow the scripts on mender convert. I finally get the uboot running, the problem was that the config.txt file of debian defines the kernel and initramfs and the mender_convert script doesn’t override that value. I changed that (commented all) and then I have uboot running.

My problem now is that the bootscr is looking for a kernel to boot (zImage or uImage) and debian uses initramfs and vmlinux. My line of work will follow that. Any comment or help is appreciated .

Just for some context this work I’m doing is for a open hardware and software project called Librerouter ( The repo whit the image building is here (

You can override the default boot.scr with something that is compatible with your environment using hooks/overrides

The boot.scr we use is generated here, which work as source of inspiration.

Hey. Getting back to this.

I managed to get a bootable image:

  • First I had to build uboot from your fork to ARCH=arm64. With this bootloader I could boot the debian kernel.
  • Then I had to change the bootscript to add the initramfs like this:
setenv kernel_addr_r 0x20000000
setenv ramdisk_addr_r 0x30000000

load mmc 0 ${fdt_addr_r} bcm2837-rpi-3-b.dtb

fdt addr ${fdt_addr_r}
fdt get value bootargs /chosen bootargs

run mender_setup
mmc dev ${mender_uboot_dev}

setenv bootargs "root=${mender_kernel_root} rw elevator=deadline net.ifnames=0 cma=64M rootwait"

if load ${mender_uboot_root} ${kernel_addr_r} /vmlinuz; then
    if load ${mender_uboot_root} ${ramdisk_addr_r} /initrd.img; then
        booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
        echo "No initramfs found."
    echo "No bootable Kernel found."
run mender_try_to_recover
  • Using mender-convert I convert the debian image and then copy this files.

With this I have a debian imagen booting using kernel and initramfs from debian.

I’m having a problem now when using mender-client. When I try to execute it I get an error from fw_printenv:

$ mender show-artifact
WARN[0000] No server URL(s) specified in mender configuration. 
WARN[0000] Server entry 1 has no associated server URL. 
ERRO[0000] Failed to read the current active partition: No match between boot and root partitions.: fork/exec /usr/sbin/fw_printenv: no such file or directory 

The fw_printenv binary is there and if I try to execute it I get the same error.

Any hint how to continue? Thanks for the support!

My guess is that the fw_printenv binary is for a different CPU architecture or some such. What does the following show?

file /usr/bin/mender file /usr/sbin/fw_printenv

What is your OS/Distro on the board?

Hey @drewmoseley! Yes, that was the problem. I Checked the /usr/bin/fw_printenv but the system is using the /usr/sbin/fw_printenv installed by mender-convert and this one is 32bits.

I’m working on my scripts to delete the binaries installed by mender-convert and use the system ones. Thanks!

1 Like