How to work on newer Jetpack version of Nvidia Jetson Orin platform?

In Progress

Comments

7 comments

  • Avatar
    Andrey Terentyev

    Hello,

    Please, provide more details on your plugin. What is the objective? What third party libs are you using?

    Please share details on the errors you faced, like screenshots, log files? What is the message regarding undefined symbol?

    > And it makes some of my thirdparty libs failed and comes out undefined symbol error when I loading .so

    Since the issue is in the third party libs, the following your question is answered
    > Can I build a Nx server that is compatible with newer Jetpack version?

    There is no need to rebuild the Server neither there is technical possibility. The root cause is in the plugin code, you're developing.

    0
    Comment actions Permalink
  • Avatar
    高偉恆

    Hello,

    I'm integrating some AI third-party libs. In order to support the newer AI architecture they need to use newer TensorRT which is a C++ library for high performance inference. JetPack provides a full development environment for hardware-accelerated AI-at-the-edge development on Nvidia Jetson modules. If I want to use Nvidia Jetson module, I need to follow their environment.

    TensorRT need to use JetPack 5.1.2 or newer, but I found that your Jetpack version is 4.2.

    > Please share details on the errors you faced, like screenshots, log files? What is the message regarding undefined symbol?

    When I use dlopen to loading .so, dlerror comes out

    /lib/aarch64-linux-gnu/libXrender.so.1: undefined symbol: _XUnlockMutex_fn

    If I remove the /opt/networkoptix-metavms/mediaserver/lib/libX11.so.6, make your Nx server loading newer libs on system. This error disappear but it comes other libs error.

    If I can't rebuild server, I can't use newer environment, newer AI model on my Jetson platform. Or you can provide any good solution.

    The root cause is in the plugin code. Yes, I think your application works fine in the version you provide. If I want to use some newer AI model like generative ai, I need newer AI libs.

    0
    Comment actions Permalink
  • Avatar
    Andrey Terentyev

    Hi,

    > found that your Jetpack version is 4.2.

    We don't have any JatPack compiled into or supplied with the Server. I guess, it's preinstalled in your Jetson device.

    > If I remove the /opt/networkoptix-metavms/mediaserver/lib/libX11.so.6

    We recommend not doing that, because it would lead to Server crash. Instead, try to use libs version the Server is supplied with.

    Or build your plugin with thirdparty libs been linked statically.

    You can read more detailed explanation on this matter in the metadata_sdk/src/nx/sdk/dynamic_libraries.md.

     

    0
    Comment actions Permalink
  • Avatar
    Andrey Terentyev

    > Jetpack version is 4.2.
    Having this, I can conclude you have a quite outdated version of the device. Please check if Nvidia really released the newer versions of the sdk for that device.

    Anyway, this limitation should not stop you from developing your plugin on top of new lines of Nvidia Orin family(Nano/Nx/AGX).

    0
    Comment actions Permalink
  • Avatar
    高偉恆

    Hi,

    Jetpack version is 4.2 is not what I use is what you support on your https://support.networkoptix.com/hc/en-us/articles/360035919314-ARM-Support-Policy

    Jetpack is whole environment included os kernel and some linux system libraries. libX11 is one of them.

    This is yours.

    This is the libs on system

    > You can read more detailed explanation on this matter in the metadata_sdk/src/nx/sdk/dynamic_libraries.md.

    I read it and found my issue is hit the second point 

    The problem is VMS bundle older version libraries. You guys have any idea of solving this problem? Thanks a lot.

    0
    Comment actions Permalink
  • Avatar
    Andrey Terentyev

    Hi,

    The root cause of the issue you've faced looks to be the following.

    You build your plugin being supposed to use the libX11 of JetPack 5.1.2 or newer which obviously has UnlockMutex_fn.

    When the plugin is being loaded to the Server, the Server already has the libX11 lib loaded, since it's supplied with the Server. Since the Server's version of libX11 does not have UnlockMutex_fn plugin loading fails, and you most probably got the message in the Server log (search for messages having the PluginManager string)

    undefined symbol: _XUnlockMutex_fn

    The solution could be linking all the plugin dependencies statically.

     

     

    0
    Comment actions Permalink
  • Avatar
    高偉恆

    Hi,

    Yes, the root cause is what you said before.

    You mean I need to build the AI third-party libs I used to link the libX11 statically? I think it's a little bit difficult. Will you update your Nx server version in the future? Or I can build Nx server by myself?

    0
    Comment actions Permalink

Please sign in to leave a comment.