This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VH-Q1: problems with gstreamer tiovx plugin compilation

Part Number: TDA4VH-Q1


Hi TI members,

I am currently working on the gst tiovx plugin.

I downloaded the code for gsttiovx from the following URL.

edgeai-gst-plugins/gst-libs/gst/tiovx at main · TexasInstruments/edgeai-gst-plugins · GitHub (githubfast.com)

I followed the method described in the README.md for compiling the plugin, but it didn't work.

I would like to ask how I can make a gst plugin based on TIOVX.

Thank you in advance.

Best regards,

Zheng

  • Hi Zheng,

    The link you shared doesn't look right. See this page: https://github.com/TexasInstruments/edgeai-gst-plugins

    Which SDK and version are you working with? Could you follow the README.md steps and share your logs?

    Thank you,

    Fabiana

  • Hi Fabiana,

    The sdk I use is sdk9.0.

    Recently I have been trying to compile the gstreamer tiovx plugin. I am currently getting the following error .

    /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/bin/ld: cannot find -ledgeai_dl_inferer: No such file or directory
    /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/bin/ld: skipping incompatible /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/libedgeai_post_process.a when searching for -ledgeai_post_process
    /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/bin/ld: skipping incompatible /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/lib/libedgeai_post_process.a when searching for -ledgeai_post_process
    /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/bin/ld: cannot find -ledgeai_post_process: No such file or directory
    /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/bin/ld: skipping incompatible /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/libedgeai_pre_process.a when searching for -ledgeai_pre_process
    /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/bin/ld: skipping incompatible /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/lib/libedgeai_pre_process.a when searching for -ledgeai_pre_process
    /pscd2/wangzheng/prsdk/ti-processor-sdk-rtos-j784s4-evm-09_01_00_06/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/11.3.1/../../../../aarch64-none-linux-gnu/bin/ld: cannot find -ledgeai_pre_process: No such file or directory
    collect2: error: ld returned 1 exit status
    [2/25] Linking target gst-libs/gst/tiovx/libgsttiovx-1.0.so.1.0
    FAILED: gst-libs/gst/tiovx/libgsttiovx-1.0.so.1.0
    

    My compilation steps are as follows:

    # Load the PSDKR path
    PSDKR_PATH=/path/to/the/ti-processor-rsdk
    
    # Customize build for your SDK
    PKG_CONFIG_PATH='' crossbuild/environment $PSDKR_PATH > aarch64-none-linux-gnu.ini
    
    # Configure and build the project
    PKG_CONFIG_PATH='' meson build --cross-file aarch64-none-linux-gnu.ini --cross-file crossbuild/crosscompile.ini
    ninja -C build # the step I run now

    I also got a similar error when compiling edgeai-dl-inferer.

    [  4%] Built target edgeai_dl_inferer
    [  4%] Built target edgeai_post_process
    [  4%] Built target edgeai_pre_process
    [  4%] Linking CXX executable ../../bin/Release/dump_model_info
    /usr/bin/ld: skipping incompatible /usr/local/lib/libedgeai-apps-utils.so when searching for -ledgeai-apps-utils
    /usr/bin/ld: cannot find -ledgeai-apps-utils: No such file or directory
    /usr/bin/ld: skipping incompatible /usr/local/lib/libedgeai-apps-utils.so when searching for -ledgeai-apps-utils
    /usr/bin/ld: skipping incompatible /usr/local/lib/libclog.a when searching for -lclog
    /usr/bin/ld: cannot find -lclog: No such file or directory
    /usr/bin/ld: skipping incompatible /usr/local/lib/libpthreadpool.a when searching for -lpthreadpool
    /usr/bin/ld: cannot find -lpthreadpool: No such file or directory
    /usr/bin/ld: skipping incompatible /usr/local/lib/libXNNPACK.a when searching for -lXNNPACK
    /usr/bin/ld: cannot find -lXNNPACK: No such file or directory
    /usr/bin/ld: skipping incompatible /usr/local/lib/libonnxruntime.so when searching for -lonnxruntime
    /usr/bin/ld: cannot find -lonnxruntime: No such file or directory
    /usr/bin/ld: skipping incompatible /usr/local/lib/libonnxruntime.so when searching for -lonnxruntime
    collect2: error: ld returned 1 exit status
    make[2]: *** [examples/CMakeFiles/dump_model_info.dir/build.make:100: ../bin/Release/dump_model_info] Error 1
    make[1]: *** [CMakeFiles/Makefile2:268: examples/CMakeFiles/dump_model_info.dir/all] Error 2
    make: *** [Makefile:136: all] Error 2
    

    My compilation steps are as follows:

    mkdir build
    cd build
    source ../cmake/setup_cross_compile.sh
    cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/cross_compile_aarch64.cmake ..
    make -j2
    make install DESTDIR=<path/to/targetfs>

    How can I solve this problem?

    Thank you,

    Zheng

  • Hi Zheng,

    Do you have any add-on packages such as vision apps? Have you validated that the plugin is not already loaded by running gst-inspect-1.0 tiovx?

    Thanks,

    Fabiana

  • Hi Fabiana,

    I am currently cross-compiling this project on my host PC. And I compile only the project from the link you provide:  https://github.com/TexasInstruments/edgeai-gst-plugins

    The PSDKR_PATH mentioned in the README.md I set as my sdk9.0 project path. The project was downloaded from TI's official website without tailoring. So I think there should be some add-ons. The vision app is definitely an add-on.

    Since I was cross-compiling on a PC, gst-inspect-1.0 is definitely not running.

    If I build the project natively in the board. Currently, the sdk on my TDA4-vh board is sdk8.6. I will get the following error.

    Found ninja-1.10.0 at /usr/bin/ninja
    [0/1] Regenerating build files.
    The Meson build system
    Version: 0.53.2
    Source dir: /home/root/gst-plugin/edgeai-gst-plugins-main
    Build dir: /home/root/gst-plugin/edgeai-gst-plugins-main/build
    Build type: native build
    Project name: GstTIOVX
    Project version: 0.7.0
    C compiler for the host machine: cc (gcc 9.2.1 "cc (GCC) 9.2.1 20191025")
    C linker for the host machine: cc ld.bfd 2.34.0.20200910
    C++ compiler for the host machine: c++ (gcc 9.2.1 "c++ (GCC) 9.2.1 20191025")
    C++ linker for the host machine: c++ ld.bfd 2.34.0.20200910
    Host machine cpu family: aarch64
    Host machine cpu: aarch64
    Dependency gstreamer-1.0 found: YES 1.16.3 (cached)
    Dependency gstreamer-base-1.0 found: YES 1.16.3 (cached)
    Dependency gstreamer-video-1.0 found: YES 1.16.3 (cached)
    Dependency gstreamer-check-1.0 found: YES 1.16.3 (cached)
    Dependency gstreamer-allocators-1.0 found: YES 1.16.3 (cached)
    Dependency imaging found: YES 0.1.0 (cached)
    Dependency tiovx found: YES 0.1.0 (cached)
    Dependency ti_vision_apps found: YES 0.1.0 (cached)
    Dependency edgeai_tiovx_modules found: YES 0.1.0 (cached)
    Dependency edgeai_tiovx_kernels found: YES 0.1.0 (cached)
    Dependency ti_stereo_perception found: YES 0.1.0 (cached)
    Dependency edgeai_dl_inferer found: YES 0.1.0 (cached)
    Dependency edgeai_apps_utils found: YES 0.1.0 (cached)
    Library m found: YES
    Compiler for C supports arguments -Wmissing-declarations: YES
    Compiler for C++ supports arguments -Wmissing-declarations: YES
    Compiler for C supports arguments -Wmissing-prototypes: YES
    Compiler for C++ supports arguments -Wmissing-prototypes: NO
    Compiler for C supports arguments -Wredundant-decls: YES
    Compiler for C++ supports arguments -Wredundant-decls: YES
    Compiler for C supports arguments -Wundef: YES
    Compiler for C++ supports arguments -Wundef: YES
    Compiler for C supports arguments -Wwrite-strings: YES
    Compiler for C++ supports arguments -Wwrite-strings: YES
    Compiler for C supports arguments -Wformat: YES
    Compiler for C++ supports arguments -Wformat: YES
    Compiler for C supports arguments -Wformat-nonliteral: YES
    Compiler for C++ supports arguments -Wformat-nonliteral: YES
    Compiler for C supports arguments -Wformat-security: YES
    Compiler for C++ supports arguments -Wformat-security: YES
    Compiler for C supports arguments -Wold-style-definition: YES
    Compiler for C++ supports arguments -Wold-style-definition: NO
    Compiler for C supports arguments -Winit-self: YES
    Compiler for C++ supports arguments -Winit-self: YES
    Compiler for C supports arguments -Wmissing-include-dirs: YES
    Compiler for C++ supports arguments -Wmissing-include-dirs: YES
    Compiler for C supports arguments -Waddress: YES
    Compiler for C++ supports arguments -Waddress: YES
    Compiler for C supports arguments -Waggregate-return: YES
    Compiler for C++ supports arguments -Waggregate-return: YES
    Compiler for C supports arguments -Wno-multichar -Wmultichar: YES
    Compiler for C++ supports arguments -Wno-multichar -Wmultichar: YES
    Compiler for C supports arguments -Wdeclaration-after-statement: YES
    Compiler for C++ supports arguments -Wdeclaration-after-statement: NO
    Compiler for C supports arguments -Wvla: YES
    Compiler for C++ supports arguments -Wvla: YES
    Compiler for C supports arguments -Wpointer-arith: YES
    Compiler for C++ supports arguments -Wpointer-arith: YES
    Compiler for C supports arguments -Wuninitialized: YES
    Compiler for C++ supports arguments -Wuninitialized: YES
    Compiler for C supports arguments -Wunknown-pragmas: YES
    Compiler for C++ supports arguments -Wunknown-pragmas: YES
    Compiler for C supports arguments -Wunused-function: YES
    Compiler for C++ supports arguments -Wunused-function: YES
    Compiler for C supports arguments -Wunused-label: YES
    Compiler for C++ supports arguments -Wunused-label: YES
    Compiler for C supports arguments -Wunused-value: YES
    Compiler for C++ supports arguments -Wunused-value: YES
    Compiler for C supports arguments -Wunused-variable: YES
    Compiler for C++ supports arguments -Wunused-variable: YES
    Compiler for C supports arguments -Werror: YES
    Compiler for C++ supports arguments -Werror: YES
    Has header "dlfcn.h" : YES (cached)
    Has header "inttypes.h" : YES (cached)
    Has header "memory.h" : YES (cached)
    Has header "poll.h" : YES (cached)
    Has header "stdint.h" : YES (cached)
    Has header "stdlib.h" : YES (cached)
    Has header "stdio_ext.h" : YES (cached)
    Has header "strings.h" : YES (cached)
    Has header "string.h" : YES (cached)
    Has header "sys/param.h" : YES (cached)
    Has header "sys/poll.h" : YES (cached)
    Has header "sys/prctl.h" : YES (cached)
    Has header "sys/socket.h" : YES (cached)
    Has header "sys/stat.h" : YES (cached)
    Has header "sys/times.h" : YES (cached)
    Has header "sys/time.h" : YES (cached)
    Has header "sys/types.h" : YES (cached)
    Has header "sys/utsname.h" : YES (cached)
    Has header "sys/wait.h" : YES (cached)
    Has header "ucontext.h" : YES (cached)
    Has header "unistd.h" : YES (cached)
    Has header "sys/resource.h" : YES (cached)
    Program python3 found: YES (/usr/bin/python3)
    Configuring config.h using configuration
    Program hotdoc skipped: feature doc disabled
    Message: Hotdoc not found, not building the documentation
    Build targets in project: 24
    
    Found ninja-1.10.0 at /usr/bin/ninja
    ninja: error: manifest 'build.ninja' still dirty after 100 tries

    I found that the plugin is already loaded. How could I disable the plugin?

    Thank you,

    Zheng

  • Hi Zheng,

    Could you clarify which plugin are you looking to disable?

    Thanks,

    Fabiana

  • Hi Fabiaba,

    The plugin that needs to be disabled is gst-tiovx, which you mentioned earlier.

    And I also want to ask that  how do I solve the problem when cross-compiling this gst-edgeai-gst-plugins on pc.

    Thanks,

    Zheng

  • Hi Zheng,

    Vision apps and tiovx which are provided by PSDK RTOS are required for edgeai-gst-plugins compilation. Can you verify that both packages are present?

    Thank you,

    Fabiana