How to work on newer Jetpack version of Nvidia Jetson Orin platform?
In ProgressHi,
I'm now tring to writing a plugin that use on our Nvidia Jetson Orin platform, but I found out that the Jetpack version which use on Jetson platform you support is a little bit too old.
https://support.networkoptix.com/hc/en-us/articles/360035919314-ARM-Support-Policy
And it makes some of my thirdparty libs failed and comes out undefined symbol error when I loading .so . Have you met this problem before? What's the best way to solve this problem? Can I build a Nx server that is compatible with newer Jetpack version?
-
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.
-
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.
-
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.
-
> 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).
-
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.
-
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.
Please sign in to leave a comment.
Comments
7 comments