dtoverlay config converted into dtparam

I have a Raspbery Pi 5 and a Raspberry Pi Camera Module 3 that I am trying to get to work.

I have taken a look at similar projects but no solution has worked for me. I have downloaded the latest BalenaOS version 6.5.50+rev2 with supervisor version 17.0.3.

I have set the following config files. (I am using openBalena so this is all done through balena_cli btw)

ID NAME                                  VALUE                    FLEET
45 BALENA_HOST_CONFIG_arm_64bit          1                        admin/beta-ua
47 BALENA_HOST_CONFIG_arm_boost          1                        admin/beta-ua
42 BALENA_HOST_CONFIG_auto_initramfs     1                        admin/beta-ua
40 BALENA_HOST_CONFIG_camera_auto_detect 1                        admin/beta-ua
50 BALENA_HOST_CONFIG_dtoverlay          vc4-kms-v3d,uart4,imx708 admin/beta-ua
49 BALENA_HOST_CONFIG_dtparam            uart0=on                 admin/beta-ua
48 BALENA_HOST_CONFIG_enable_uart        1                        admin/beta-ua
61 BALENA_HOST_CONFIG_gpu_mem            128                      admin/beta-ua
43 BALENA_HOST_CONFIG_max_framebuffers   2                        admin/beta-ua

Yet when I check /mnt/boot/config.txt, I see the following

camera_auto_detect=1
display_auto_detect=1
auto_initramfs=1
max_framebuffers=2
disable_fw_kms_setup=1
arm_64bit=1
disable_overscan=1
arm_boost=1
enable_uart=1
dtparam=uart0=on
gpu_mem=128
disable_splash=1
avoid_warnings=1
dtoverlay=vc4-kms-v3d
dtparam=uart4
dtparam=imx708

I do not understand why uart4 and imx708 are set as dtparams instead of dtoverlays like I have specified. I used the following comma seperated list s per the documentation.

balena env set BALENA_HOST_CONFIG_dtoverlay "vc4-kms-v3d","uart4","imx708" --fleet beta-ua

In addition the dtbo can be seen in /mnt/boot/overlays/imx708.dtbo

I do not know if that is my issue. But whenever I get into my container and check for cameras, I get an empty list.

python3 -c “from picamera2 import Picamera2; print(Picamera2.global_camera_info())”
[0:13:39.440025659] [40]  INFO Camera camera_manager.cpp:330 libcamera v0.5.2+99-bfd68f78
[]

My container is privlidged, I have the devices explicitly added, and I do have the labels in place

labels:
      io.balena.features.supervisor-api: 1
      io.balena.features.kernel-modules: 1
      io.balena.features.firmware: 1
      io.balena.features.dbus: 1
      io.balena.features.sysfs: 1
      io.balena.features.udev: 1

So just in case anyone else is having the same issue, you need to wrap it around single quotes.

So instead of this

balena env set BALENA_HOST_CONFIG_dtoverlay "vc4-kms-v3d","uart4","imx708" --fleet beta-ua

It needs to be this

balena env set BALENA_HOST_CONFIG_dtoverlay '"vc4-kms-v3d","uart4","imx708"' --fleet beta-ua

When not wrapped around single quotes, for some weird reason it does not throw any errors or warnings but instead applies everything except the first item as a dtparam. (I guess in hindsight, it thinks everything following the first item is a param of the first item)