The firmware compiled by Yocto is not compatible with imx477?

The firmware compiled by Yocto cannot run on imx477. Is there something I need to adapt?

  1. The burned linux1.1.1 image can run normally, and the display can preview the camera image normally
  2. When burning the firmware compiled by Yocto, an error message will be reported indicating that the camera open failed.
    I want to use Yocto to compile firmware and run imx477. What content should I adapt?

Dear customer
Could you please share the specific error messages?

root@rubikpi:~# echo multiCameraLogicalXMLFile=kodiak_dc.xml > /var/cache/camera/camxoverridesettings.txt
root@rubikpi:~# echo enableNCSService=FALSE >> /var/cache/camera/camxoverridesettings.txt
root@rubikpi:~#
root@rubikpi:~#
root@rubikpi:~# export XDG_RUNTIME_DIR=/dev/socket/weston
root@rubikpi:~# export WAYLAND_DISPLAY=wayland-1
root@rubikpi:~# setprop persist.overlay.use_c2d_blit 2
root@rubikpi:~# gst-launch-1.0 -e qtiqmmfsrc camera=0 name=camsrc ! video/x-raw(memory:GBM),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! waylandsink fullscreen=true async=true
GBM_INFO::msmgbm_mapper(262)::gbm mapper instantiated

gbm_create_device(224): Info: backend name is: msm_drm
Setting pipeline to PAUSED …
gbm_create_device(224): Info: backend name is: msm_drm
ERROR: from element /GstPipeline:pipeline0/GstQmmfSrc:camsrc: Failed to Open Camera!
Additional debug info:
/usr/src/debug/qcom-gstreamer1.0-plugins-oss-qmmfsrc/1.0-r0/gst-plugin-qmmfsrc/qmmf_source.c(1049): qmmfsrc_change_state (): /GstPipeline:pipeline0/GstQmmfSrc:camsrc
ERROR: pipeline doesn’t want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL …
Freeing pipeline …
GBM_INFO::~msmgbm_mapper(269)::gbm mapper de-instantiated

root@rubikpi:~#

Dear customer
Please ensure that you have connected the camera as outlined in section ’ 2.4.1 Connect the camera cable’ of the user manual. Kindly take a photo and upload it.

Please run the following commands to collect log and upload it:

journalctl -f > /opt/log.txt

The connection is correct. I burned the 1.1.1 firmware you released and the camera work ok, but I burn the Yocto image I compiled myself is not work.

Dear customer
Thank you for your reply. Could you please run the commands mentioned in the previous response to collect the log and share it with us?

Dear customer
Could you please inform us of the commands used for building and flashing?

log.txt (23.3 KB)

compile command:

# 设置编译环境
export EXTRALAYERS="meta-qcom-qim-product-sdk"
export MACHINE=qcm6490-idp
export DISTRO=qcom-wayland
export FWZIP_PATH="`pwd`/src/vendor/thundercomm/prebuilt/BP-BINs"
source setup-environment_RUBIKPi
export BB_ENV_PASSTHROUGH_ADDITIONS="$BB_ENV_PASSTHROUGH_ADDITIONS FWZIP_PATH CUST_ID"

# 编译
bitbake qcom-multimedia-image
bitbake qcom-qim-product-sdk

pack:

./rubikpi_build.sh -p

Dear customer
Based on the logs, it appears that the camera has not been recognized.
Please run the following command and upload the screenshot.

ls /usr/lib/camera | grep 477

Please run the following command and upload the dmesg.txt file.

after starting gst,
adb shell dmesg | grep cam > dmesg.txt


dmesg.txt (17.1 KB)

Dear customer
Please push these two files to the /usr/lib/camera directory, then restart and try again.
分享文件:imx477.zip
云盘链接:查看分享
提取密码:nql3
过期时间:2025-06-04 11:51:47

not work

Dear customer,we are currently syncing this issue internally.

dmesg1.txt (19.3 KB)

Dear customer,
Please move the com.qti.tuned.imx477.bin file from the /usr/lib/camera directory to another location, and ensure that this bin file is not present in the /usr/lib/camera directory.


Then restart and try again.

Still not working

Please try it according to the documentation(Yocto 工程编译指南 | RUBIK Pi Documentation). I have no additional operations.
think you.

Dear customer
Let me confirm with you, you haven’t made any changes to the source code, is that correct?

yes,I just cloned the code and compiled it, packaged it and burned it to the board. I want you to help confirm whether other operations are required or the original repository cannot run with this operation.

thinks