SK-AM62A-LP: Unable to stream using custom Yocto build and sensor from an SDK 10.01 based build

Part Number: SK-AM62A-LP

Tool/software:

Dear Experts,

I am facing a problem getting streaming to start using a custom sensor and a customized Yocto SDK 10.01 based build. The Yocto build has removed a couple of the DL related entries but is otherwise very similar to the TI edgeai build recipe. There seems most likely to be some important reference files missing related to edgeai-apps-utils based off of warning messages I'm receiving while trying to reinstall the edgeai gst plugins but that might even be due to a different problem. I have built in the changes to edgeai gst plugins in my Yocto build to include the custom sensor name and configuration. Here is my output with the warnings when running the setup_script:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@am62axx-evm:/opt/edgeai-gst-apps# ./setup_script.sh
edgeai-apps-utils
-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai-apps-utils
SOC=am62a
TARGET_CPU=A53
-- Configuring done (3.0s)
-- Generating done (0.0s)
-- Build files have been written to: /opt/edgeai-apps-utils/build
[ 22%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_dl_pre_proc_armv8_utils.c.o
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

And here is my output trying to stream from the sensor behind a TI FPD Link SerDes setup:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@am62axx-evm:~# gst-launch-1.0 v4l2src io-mode=dmabuf-import device=/dev/video3 ! video/x-bayer, width=1920, height=1200, format=grbg10 ! tiovxisp sink_0::device=/dev/v4l-subdev4 sensor-name=SENSOR_ONSEMI_AR0234 dcc-isp-file=/opt/imaging/ar0234/linear/dcc_viss_10b_1920x1200.bin sink_0::dcc-2a-file=/opt/imaging/ar0234/linear/dcc_2a_10b_1920x1200.bin format-msb=9 sink_0::pool-size=8 src_0::pool-size=8 ! queue ! v4l2h264enc extra-controls='controls,h264_i_frame_period=8' ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.60.12.133 port=5000
APP: Init ... !!!
6698.473214 s: MEM: Init ... !!!
6698.473294 s: MEM: Initialized DMA HEAP (fd=8) !!!
6698.473471 s: MEM: Init ... Done !!!
6698.473483 s: IPC: Init ... !!!
6698.490799 s: IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
6698.496213 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
6698.497585 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR
6698.497634 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING
6698.497646 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO
6698.499989 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-0
6698.500325 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-1
6698.500638 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-2
6698.500960 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-3
6698.501000 s: VX_ZONE_INFO: [tivxInitLocal:126] Initialization Done !!!
6698.501013 s: VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO
Setting pipeline to PAUSED ...
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

I've tried 7 different Yocto builds now and I'm still having this issue.

I've successfully streamed with the custom sensor using the SDK 10.01.00.05 SD card wic image and don't see these warning when rebuilding the edgeai gst plugins after modifications to add the sensor. I had previously successfully created a Yocto image using SDK 9.1 but didn't have a need to look into using the SDKs after that until now so I don't know what may have changed between.

Any guidance looking into areas regarding the error/warning messages from building the edgeai gst plugins and the gstreamer command would be greatly appreciated!

Thank you,

Steve T

  • Hi Steve,

    I'm seeing the following error from your log:

      6698.783748 s:  VX_ZONE_ERROR: [ownGraphNodeKernelInit:690] kernel init for node 0, kernel com.ti.hwa.vpac_viss ... failed !!!

    This error comes from the VPAC firmware running on R5. 

    Did you by any chance modify the memory map defined in https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts?h=ti-linux-6.6.y?

    Regards,

    Jianzhong

  • Hello Jianzhong,

    Not to my knowledge but I am using the k3-am62a7-sk.dtb from the Yocto image. I did build a new kernel Image file and lib modules using the 10.01 SDK and apply them to the Yocto build to get the drivers for my new sensor though and I have noticed the kernel minor rev doesn't match up (6.6.58 with the SD card and 6.6.44 with Yocto build), which wasn't the case with SDK 9.1 (they matched).

    Perhaps I should try copying the SD card wic image k3-am62a7-sk.dtb to the Yocto rootfs and see if that helps?

    Thank you

  • Hi Steve,

    Sure, you can try that.

    , do you have any insight why Steve got a different kernel version (6.6.44 instead of 6.6.58) in his Yocto build?

    Thanks,

    Jianzhong

  • I tried copying the SD card wic image k3-am62a7-sk.dtb to the Yocto rootfs to see if that helped but I still got the same errors/output when running the gstreamer command.

    I also decided to do a Yocto edgeai build  (i.e. "MACHINE=am62axx-evm bitbake -k tisdk-edgeai-image"). After running the scripts install_gst_plugins.sh and install_tiovx_modules.sh and rebooting I'm seeing the same errors when trying to use gstreamer:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    root@am62axx-evm:~# gst-launch-1.0 v4l2src io-mode=dmabuf-import device=/dev/video3 ! video/x-bayer, width=1920, height=1200, format=grbg10 ! tiovxisp sink_0::device=/dev/v4l-subdev4 sensor-name=SENSOR_ONSEMI_AR0234 dcc-isp-file=/opt/imaging/ar0234/linear/dcc_viss_10b_1920x1200.bin sink_0::dcc-2a-file=/opt/imaging/ar0234/linear/dcc_2a_10b_1920x1200.bin format-msb=9 sink_0::pool-size=8 src_0::pool-size=8 ! queue ! v4l2h264enc extra-controls='controls,h264_i_frame_period=8' ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.60.12.133 port=5000
    APP: Init ... !!!
    46.593101 s: MEM: Init ... !!!
    46.593167 s: MEM: Initialized DMA HEAP (fd=8) !!!
    46.593347 s: MEM: Init ... Done !!!
    46.593360 s: IPC: Init ... !!!
    46.610531 s: IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    46.615996 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
    46.618542 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR
    46.618596 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING
    46.618607 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO
    46.620780 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-0
    46.621021 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-1
    46.621244 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-2
    46.621422 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-3
    46.621449 s: VX_ZONE_INFO: [tivxInitLocal:126] Initialization Done !!!
    46.621461 s: VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO
    Setting pipeline to PAU[ 40.926212] ds90ub960 4-0030: Calling ub960_rxport_wait_locks
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    It may still be due to something I have done in local.conf but if someone else could do a Yocto build and verify the kernel version and the same gstreamer behavior after running the scripts that would be a good data point, I would think.

    Best Regards,

    Steve

  • I also decided to do a Yocto edgeai build  (i.e. "MACHINE=am62axx-evm bitbake -k tisdk-edgeai-image").

    Did you mean you built the edgeai SDK without any changes?

  • Correct, without any changes.

  • Steve,

    Let me reach out to our edgeai SDK team for comment. Please give me a few days.

    Regards,

    Jianzhong

  • Hi Steve,

    Are you using the yocto config packaged in PSDK Linux Installer package
    or from oe-layer setup repo

    I see that config in oe-layersetup is little outdated, we will fix this

    I have attached the correct config, please use this

    yocto_config_prod.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # This file takes repo entries in the format
    # repo name,repo uri,repo branch,repo commit[,layers=layer1:layer2...:layern]
    bitbake,https://git.openembedded.org/bitbake,2.8,f40a3a477d5241b697bf2fb030dd804c1ff5839f
    meta-arago,https://git.yoctoproject.org/meta-arago,scarthgap,2b1f8572ac54cd64ca5d5b40e344bb32b00a05f5,layers=meta-arago-distro:meta-arago-extras:meta-arago-demos:meta-arago-test
    meta-qt5,https://github.com/meta-qt5/meta-qt5.git,scarthgap,a1af9bdf2bcf06df85aeac997bfbdcb414d8e0e0,layers=
    meta-virtualization,https://git.yoctoproject.org/meta-virtualization,scarthgap,450941a1b6df96285691e8c23d4f332d3c88a994,layers=
    meta-openembedded,https://git.openembedded.org/meta-openembedded,scarthgap,b8d1a14f7f3b76457c36752202ea7ae5881b6654,layers=meta-networking:meta-python:meta-oe:meta-gnome:meta-filesystems:meta-multimedia
    meta-ti,https://git.yoctoproject.org/meta-ti,scarthgap,50acaea23568f72121020a97bf13869770929cb7,layers=meta-ti-extras:meta-ti-bsp
    meta-arm,https://git.yoctoproject.org/meta-arm,scarthgap,7088279c0ab00c7dabefdd4544951b4746b48476,layers=meta-arm:meta-arm-toolchain
    meta-clang,https://github.com/kraj/meta-clang,scarthgap,9fbfa9db33131abdf3870a94f00199eb53e276e5,layers=
    oe-core,https://git.openembedded.org/openembedded-core,scarthgap,92cb4641ff4ec8c1f681bca21cfeaf2ba6923ab7,layers=meta
    meta-tisdk,https://git.ti.com/git/ti-sdk-linux/meta-tisdk.git,scarthgap,fcd7661087b0dd5b5b57d30ba0d45f2698e962f8,layers=
    meta-edgeai,https://git.ti.com/git/edgeai/meta-edgeai.git,scarthgap,bccfd706c87e0017360e75bdf9803679fe24db13,layers=
    OECORELAYERCONF=./sample-files/bblayers.conf.sample
    OECORELOCALCONF=./sample-files/local-arago64-v2.conf.sample
    BITBAKE_INCLUSIVE_VARS=yes
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


    Regards
    Rahul T R

  • I followed the directions here (specifically section 1.2.3.2. Build Steps):

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/10_01_00/exports/docs/linux/Overview_Building_the_SDK.html#processor-sdk-build-reference

    So I believe that means I used the oe-layersetup. I will try the with the correct config provided today. Thank you for your assistance.

  • I followed the directions here (specifically section 1.2.3.2. Build Steps):

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/10_01_00/exports/docs/linux/Overview_Building_the_SDK.html#processor-sdk-build-reference

    So I believe that means I used the oe-layer-setup. I will try the with the correct config provided today. Thank you for your assistance.

    Update: I've been having issues getting this to build all day. I think these build messages are pointing to problem but I'm not sure what to do to fix them:

    Sstate summary: Wanted 123 Local 110 Mirrors 0 Missed 13 Current 5008 (89% match, 99% complete) ETA: 0:00:00
    Initialising tasks: 100% |####################################################################| Time: 0:00:21
    NOTE: Executing Tasks
    ERROR: ti-edgeai-firmware-1.0.0-r0 do_deploy: Recipe ti-edgeai-firmware is trying to install files into a shared area when those files already exist. The files and the manifests listing them are:
    /mnt/disks/ti-sdk/10_01_00_05/tisdk/build/deploy-ti/images/am62axx-evm/ti-dm/am62axx/ipc_echo_testb_mcu1_0_release_strip.xer5f.signed
    (matched in manifest-am62axx_evm-ti-dm-fw.deploy)
    /mnt/disks/ti-sdk/10_01_00_05/tisdk/build/deploy-ti/images/am62axx-evm/ti-dm/am62axx/ipc_echo_testb_mcu1_0_release_strip.xer5f
    (matched in manifest-am62axx_evm-ti-dm-fw.deploy)
    Please adjust the recipes so only one recipe provides a given file.
    ERROR: Logfile of failure stored in: /mnt/disks/ti-sdk/10_01_00_05/tisdk/build/arago-tmp-default-glibc/work/am62axx_evm-oe-linux/ti-edgeai-firmware/1.0.0/temp/log.do_deploy.330235
    ERROR: Task (/mnt/disks/ti-sdk/10_01_00_05/tisdk/sources/meta-edgeai/recipes-tisdk/ti-psdk-rtos/ti-edgeai-firmware.bb:do_deploy) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 11217 tasks of which 11190 didn't need to be rerun and 1 failed.
    NOTE: Writing buildhistory
    NOTE: Writing buildhistory took: 8 seconds
    NOTE: Writing buildhistory
    NOTE: Writing buildhistory took: 7 seconds

    I have tried using cleansstate on the main recipe and ti-edgeai-firmware a few times while troubleshooting. I'm not sure if is fthe source meta directories are out of sync from running that oe-layer setup script again after previously running the original or if something else is causing this.