Unable to compile dusty-nv/JetsonInference on Jetson Orin Nano
Issue Overview
Users are experiencing compilation errors when attempting to build the Jetson-Inference project on a Jetson Orin Nano 8 GB board. The specific error occurs during the linking process, with undefined references to ‘PvaProgramSetDMADescriptorsV2’ and ‘PvaProgramSetPointerValueEx’ in the libcupva_host.so.2.3 library. This issue prevents the successful compilation of the project, particularly affecting the imagenet executable.
The problem occurs on a system with the following specifications:
- NVIDIA Orin Nano – AVerMedia D131
- L4T 35.3.1 [JetPack UNKNOWN]
- Ubuntu 20.04.6 LTS
- Kernel Version: 5.10.104-tegra
- CUDA 11.4.315
- CUDA Architecture: 8.7
- OpenCV version: 4.5.4 (without CUDA support)
- CUDNN: 8.6.0.166
- TensorRT: 8.5.2.2
- VPI: 2.3.9
Possible Causes
-
VPI (Vision Processing Interface) incompatibility: The error messages suggest that there might be an issue with the VPI library or its integration with the Jetson-Inference project.
-
Library version mismatch: The undefined references could be due to a mismatch between the installed VPI version and the version expected by the Jetson-Inference project.
-
Build configuration issues: The CMakeLists.txt file might not be correctly configured for the specific hardware and software versions on the Jetson Orin Nano.
-
Incomplete or incorrect JetPack installation: The "JetPack UNKNOWN" status in the system information might indicate an incomplete or non-standard JetPack installation, potentially leading to missing or incompatible components.
Troubleshooting Steps, Solutions & Fixes
-
Modify CMakeLists.txt:
The solution provided by the project maintainer involves commenting out the VPI check in the CMakeLists.txt file. This workaround allows the build to proceed without VPI support.Open the file
jetson-inference/CMakeLists.txt
and locate the following section:# check for VPI (TODO: VPI 1.0 support for JetPack 4.x) find_package(VPI 2.0) if( NOT VPI_FOUND ) message("-- didn't find VPI on system, disabling VPI") else() message("-- VPI version: " ${VPI_VERSION}) set(HAS_VPI 1) add_definitions(-DHAS_VPI) endif()
Comment out these lines as follows:
# check for VPI (TODO: VPI 1.0 support for JetPack 4.x) #find_package(VPI 2.0) # #if( NOT VPI_FOUND ) # message("-- didn't find VPI on system, disabling VPI") #else() # message("-- VPI version: " ${VPI_VERSION}) # set(HAS_VPI 1) # add_definitions(-DHAS_VPI) #endif()
-
Rebuild the project:
After making the changes to CMakeLists.txt, attempt to rebuild the project:sudo make clean sudo make
-
Check JetPack installation:
Verify that JetPack is correctly installed on your Jetson Orin Nano. You may need to reinstall or update JetPack to ensure all necessary components are present and compatible. -
Update VPI:
If the issue persists, try updating the VPI package to the latest version compatible with your system:sudo apt update sudo apt install vpi2-dev
-
Check for system updates:
Ensure your Jetson Orin Nano system is up to date:sudo apt update sudo apt upgrade
-
Investigate library dependencies:
If the problem continues, you may need to investigate the specific library dependencies. Use theldd
command to check the shared library dependencies of the problematic executable:ldd aarch64/bin/imagenet
Look for any missing or incompatible libraries in the output.
-
Consult project documentation:
Review the Jetson-Inference project documentation and GitHub issues for any known compatibility issues or additional troubleshooting steps specific to the Jetson Orin Nano platform. -
Seek community support:
If the issue remains unresolved, consider reaching out to the Jetson-Inference community through their GitHub issues page or NVIDIA’s developer forums for more specialized assistance.