Hi all,
Environnement :
Jetpack : 4.5.1
Board : NVIDIA Jetson AGX Xavier
LibArgus version : 0.97.3
Camera : Custom MIPI CSI 2 Camera
I’m developing a custom application in amd64 PC using LibAgus , and then i cross compile this latter for arm64 (Jetson) to be able to use my app with LibArgus in the Jetson.
In my custom app i want to use the sources files of the following path :
/home/jetson/jetson_multimedia_api/argus/samples/utils
So there is the step i did :
1. I’ve changed the Cmakelist.txt to be able to generate .so output file
Update usr\src\jetson_multimedia_api\argus\samples\utils\CMakeLists.txt
else(CUDA_FOUND)
add_library(${PROJECT_NAME} STATIC ${SOURCES})
endif(CUDA_FOUND)
----->
else(CUDA_FOUND)
add_library(${PROJECT_NAME} SHARED ${SOURCES})
endif(CUDA_FOUND)
2. I add thr lines below in the cmakelist so i will be able to find Argus
find_path(ARGUS_INCLUDE_DIR Argus/Argus.h HINTS "/usr/src/jetson_multimedia_api/argus/include")
set(CMAKE_MODULE_PATH "/usr/src/jetson_multimedia_api/argus/cmake" "${CMAKE_MODULE_PATH}")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
find_package(Argus REQUIRED)
include_directories(
SYSTEM ${ARGUS_INCLUDE_DIR}
)
3. Compile in release mode
// Create build and install directory
mkdir buildrelease
mkdir installrelease
cd buildrelease
// Compile in release mode and shared library
cmake .. -DCMAKE_INSTALL_PREFIX=/home/jetson/jetson_multimedia_api/argus/samples/utils/installrelease -DCMAKE_BUILD_TYPE=Release
make install
After executing make install
i had the following output in fact there is no the rule install:
in the Makefile
make: *** No rule to make target 'install'. Stop.
Can you please provide a guide to be able to get the file libargussampleutils.so ?
Hi,
Please refer to the steps in
Jetson Linux API Reference: Setting Up Cross-Platform Support
It is to clone the system image of Jetson platform and mount to the host PC. Please make sure required packages are installed before cloning the image.
Hi @DaneLLL ,
Can i skip the first step if the the jetson board is already flashed ? If not where can i get the roofts for Jetson AGX Xavier jetpack 4.5.1 ?
1. Clone the target rootfs on your Jetson board to your host system.
hello chakibdace,
had you complete the environment setup on your Jetson board? are you able to build samples natively without issues on your Jetson board?
it’s using the host machine to clone the image of your target, please following this session, To clone a Jetson device and flash , to clone the source device’s APP partition into image file.
Hi @JerryChang
I am able to build all the samples from jetson_multimedia_api like 09_camera_jpeg_capture
and 10_camera_recording
, but i’ve done that using the SDKManager , is it mandatory to flash the jetson by following To clone a Jetson device and flash to be able to cross compile LibArgus samples ?
Thank you
hello chakibdace,
this command, $ sudo ./flash.sh -r -k APP -G <clone> <board> mmcblk0p1
it won’t flash the target, instead, it reads the APP partition, create a copy, and writes system image to your host machine.
Thanks for your fast answer @JerryChang
After creating a copy and writting system image on my host machine, can i go directly to the second step ?
2. Mount the
.raw image with the following commands:
Thanks
hello chakibdace,
yes, you should be able to set up the cross-compilation environment with that system image.
@JerryChang
I’m using a Jetson AGX Xavier 32 Go so the value of board
should be jetson-agx-xavier-devkit
, but what about the clone
value, is it the system.img
, or another image file in the filesystem partition ?
$ sudo ./flash.sh -r -k APP -G system.img jetson-agx-xavier-devkit mmcblk0p
There is all the img a i have in Jetpack folder
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/nv_tegra/LICENSE.l4t-usb-device-mode-filesystem.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/opt/nvidia/l4t-usb-device-mode/LICENSE.filesystem.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/opt/nvidia/l4t-usb-device-mode/filesystem.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/rootfs/opt/nvidia/l4t-usb-device-mode/LICENSE.filesystem.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/rootfs/opt/nvidia/l4t-usb-device-mode/filesystem.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/rootfs/lib/firmware/RTL8192E/data.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/rootfs/lib/firmware/RTL8192E/boot.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/rootfs/lib/firmware/RTL8192E/main.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/lib/firmware/RTL8192E/data.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/lib/firmware/RTL8192E/boot.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs-bk-orig/lib/firmware/RTL8192E/main.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs/opt/nvidia/l4t-usb-device-mode/LICENSE.filesystem.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs/opt/nvidia/l4t-usb-device-mode/filesystem.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs/lib/firmware/RTL8192E/data.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs/lib/firmware/RTL8192E/boot.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs/lib/firmware/RTL8192E/main.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/tos.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/tos-mon-only.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/tos_t194.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/boot.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/system.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/camera-rtcpu-rce.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/recovery.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/tos-trusty_t194.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/l4t_initrd.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/tos-trusty.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/eks.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/camera-rtcpu-sce.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/tos-mon-only_t194.img
./nvidia/nvidia_sdk/JetPack_4.5.1_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/temp_user_dir/boot.img
Thanks for your support
chakibdace:
-G system.img
hello chakibdace,
it’s only file naming, suggest having different naming as system.img
since it’s the default rootfs.
HI @JerryChang
There is all the folders of the root filesystem :
ubuntudev@linux:/$ ls
bin boot cdrom dev etc home initrd.img initrd.img.old lib lib64 lost+found media mnt opt proc root run sbin snap srv sys tmp usr var vmlinuz
Can you please tell me where can i find the files i’m supposed to clone ?
Thank you for your support
Hi all,
I could generate the libargussampleutils.so without doing a cross compilation but directly by compailing the library following the steps below :
/home/jetson/jetson_multimedia_api/argus/samples/utils
So there is the step i did :
1. I’ve changed the Cmakelist.txt to be able to generate .so output file
Update usr\src\jetson_multimedia_api\argus\samples\utils\CMakeLists.txt
else(CUDA_FOUND)
add_library(${PROJECT_NAME} STATIC ${SOURCES})
endif(CUDA_FOUND)
----->
else(CUDA_FOUND)
add_library(${PROJECT_NAME} SHARED ${SOURCES})
endif(CUDA_FOUND)
2. I add thr lines below in the cmakelist so i will be able to find Argus
find_path(ARGUS_INCLUDE_DIR Argus/Argus.h HINTS "/usr/src/jetson_multimedia_api/argus/include")
set(CMAKE_MODULE_PATH "/usr/src/jetson_multimedia_api/argus/cmake" "${CMAKE_MODULE_PATH}")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
find_package(Argus REQUIRED)
include_directories(
SYSTEM ${ARGUS_INCLUDE_DIR}
)
3. Compile in release mode
// Create build and install directory
mkdir buildrelease
mkdir installrelease
cd buildrelease
// Compile in release mode and shared library
cmake .. -DCMAKE_INSTALL_PREFIX=/home/jetson/jetson_multimedia_api/argus/samples/utils/installrelease -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
make
I just forgot to add the flag -DBUILD_SHARED_LIBS=ON
system
Closed
July 20, 2022, 2:08am
15
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.