It is modern vs legacy camera interface:
- The legacy camera interface, still used/needed for some camera software, requires
start_x=1
to be set and does not work if KMS is enabled, but only with the legacy framebuffer graphics stack (nodtoverlay=vc4-kms-v3d
). - The modern camera stack only works with KMS (
dtoverlay=vc4-kms-v3d
) enabled.camera_auto_detect=1
enables modern camera support in a generic way, so the camera model is automatically detected and no dedicated overlay needs to be enabled explicitly.
I am not sure about fake KMS (dtoverlay=vc4-fkms-v3d
), to be true, whether it allows cameras to work the modern or legacy way or both or none.
In your case, settings are a little contradicting. I guess it works only because you explicitly enabled the overlay for your particular camera model (dtoverlay=imx708
), together with KMS, which might override the legacy extended firmware flag start_x=1
, or the latter does not break the modern one, but is just unnecessary. However, this is the cleanest way it should work:
dtoverlay=vc4-kms-v3d
camera_auto_detect=1
or
dtoverlay=vc4-kms-v3d
dtoverlay=imx708
start_x=1
should be commented, removed or set to start_x=0
.
I aim since a longer time to add a choice for legacy vs modern camera support, but didn’t find the time yet to implement it: DietPi-Config | RPi: Add modern RPi camera module support · Issue #5127 · MichaIng/DietPi · GitHub