Cross compiling nvarguscamerasrc

My jetson is running L4T 32.6.1 / Jetpack 4.6.1
My host computer is running Ubuntu 20.04


Hello, I would like to cross compilenvarguscamerasrc

I downloaded nvarguscamerasrc source from this page : Jetson Linux R32.6.1 Release Page | NVIDIA Developer and extracted it.

Then I followed this cross compiling doc : Jetson Linux API Reference: Setting Up Cross-Platform Support

but it doesn’t work at all, I get this error :

~ make           
g++ -c gstnvarguscamerasrc.cpp  -fPIC `pkg-config --cflags gstreamer-1.0 gstreamer-base-1.0 gstreamer-video-1.0 gstreamer-allocators-1.0 glib-2.0` -I./ -I../ -I/usr/src/jetson_multimedia_api/include/ -I/usr/src/jetson_multimedia_api/argus/samples/utils/ -o gstnvarguscamerasrc.o
gstnvarguscamerasrc.cpp:47:10: fatal error: Argus/Argus.h: No such file or directory
   47 | #include <Argus/Argus.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:63: gstnvarguscamerasrc.o] Error 1

Also, the file “Ordered.h” is not in the source, wven though it’s included.

Could you please explain how to cross compile nvarguscamerasrc on a x86_64 platform for the Jetson AGX Xavier ?

Thanks !

Hi,
Please follow the README.txt to build it on Jetson AGX

Steps to compile the "gst-nvarguscamera" sources natively:

1) Install gstreamer related packages on target using the command:

        sudo apt-get install libgstreamer1.0-dev \
                gstreamer1.0-plugins-base \
                gstreamer1.0-plugins-good \
                libgstreamer-plugins-base1.0-dev \
                libegl1-mesa-dev

2) Install "jetson_multimedia_api" package from latest Jetpack release.

3) Download and extract the package "gst-nvarguscamera_src.tbz2" as follow:

        tar -I lbzip2 -xvf gst-nvarguscamera_src.tbz2

3) Run the following commands to build and install "libgstnvarguscamerasrc.so":
        cd "gst-nvarguscamera"
        make
        make install
        or
        DEST_DIR=<dir> make install

  Note: "make install" will copy library "libgstnvarguscamerasrc.so"
  into "/usr/lib/aarch64-linux-gnu/gstreamer-1.0" directory.

I do not wish to build it on the Jetson AGX, I want to cross compile it on the host.

Sorry, to tell we don’t support to build it from host now.
You may need to figure out the solution by yourself. The error is lost the header file fromjetson_multimedia_api

Thanks, what about Ordered.h ?

The same in MMAPI source
…/argus/samples/utils/Ordered.h

In which source is it located ? I cannot find the path you gave me

Install “jetson_multimedia_api” package from latest Jetpack release. Install it from Xavier AGX and copy it to your host. Suppose unable get it from the host.

sudo apt list -a nvidia-l4t-jetson-multimedia-api
sudo apt install nvidia-l4t-jetson-multimedia-api=32.xxxxx

where can I find the link to the latest jetpack release ?
Thanks

Check your BSP version by cat /etc/nv_tegra_release to get correct version.

Jetpack is L4T 32.6.1 / Jetpack 4.6.1
Where can I download the Jetpack release ?

Don’t understand your question exactly.
You should be able use SDKManager to download the Jepack.

Is there a way to download it without the SDK manager ?
I would like to install it into a docker container.

For example can I get it from Index ?

Yes, it’s nvidia-l4t-jetson-multimedia-api_32.6.1-20210726122000_arm64.deb

Thanks for the help.
I now have this error :

#10 5.807 /usr/bin/ld: cannot find -lnvbuf_utils
#10 5.808 /usr/bin/ld: cannot find -lnvdsbufferpool
#10 5.808 /usr/bin/ld: cannot find -lnvargus_socketclient

Do you have any idea how I could solve it ?

Thanks !

I managed to crosscompile nvarguscamerasrc in docker using docker buildx to build for another architecture. Qemu doing all the heavy lifting. It’s very simple and should be supported by nvidia imho,

Also took the jetson_multimedia_api dir from the jetson in /usr/src/ and put it in the docker container.
Same with tegra libraries in /usr/lib/aarch64-linux-gnu

Works well and we can automate building our modified nvarguscamerasrc now :)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.