Please provide the following info (tick the boxes after creating this topic):
Software Version
[*] DRIVE OS 6.0.10.0
DRIVE OS 6.0.8.1
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other
Target Operating System
[*] Linux
QNX
other
Hardware Platform
[*] DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other
SDK Manager Version
2.1.0
other
Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
[*] native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other
Issue Description
I have created a custom plugin implementation using DW APIs, to follow sensor lifecycle management and exported the dwSensorCANPluginFunctionTable to be used by a custom monitor application.
Error String
[PLUGIN] specific logs are missing, which means my plugin isnt being used by the application, although sensorFactory() confirms the loading of the plugin.
Logs
root@6.0.10.0-0009-build-linux-sdk:/home/nvidia/build-x86_64-linux-gnu/install/usr/local/driveworks/samples/bin# ./sample_sygnalpomo_interpreter --driver=can.socket --params="device=vcan0,bitrate=500000" --plugin-path="./libsygnalpomo_can_plugin.so"
[INFO] Driver: can.socket
[INFO] Params: device=vcan0,bitrate=500000
[INFO] Plugin Path: ./libsygnalpomo_can_plugin.so
[19-02-2025 14:18:40] Platform: Detected Generic x86 Platform
[19-02-2025 14:18:40] Adding variable DW_Base:DW_Version
[19-02-2025 14:18:40] Added variable DW_Base:DW_Version
[19-02-2025 14:18:40] Platform: number of GPU devices detected 1
[19-02-2025 14:18:40] Platform: currently selected GPU device 0, Resource Data Dir: trt_08_06_12_04, Arch: ga1xx-discrete
[19-02-2025 14:18:40] Platform: currently selected GPU device discrete ID 0
[19-02-2025 14:18:40] Context::mountResourceCandidateDataPath resource FAILED to mount from './resources': VirtualFileSystem: Failed to mount './resources/resources.pak'
[19-02-2025 14:18:40] Context::mountResourceCandidateDataPath resource FAILED to mount from '/home/nvidia/build-x86_64-linux-gnu/install/usr/local/driveworks/samples/bin/data': VirtualFileSystem: Failed to mount '/home/nvidia/build-x86_64-linux-gnu/install/usr/local/driveworks/samples/bin/data/resources.pak'
[19-02-2025 14:18:40] Context::findDataRootInPathWalk data/DATA_ROOT found at: /usr/local/driveworks-5.20/data
[19-02-2025 14:18:40] Context::mountResourceCandidateDataPath resource FAILED to mount from '/usr/local/driveworks-5.20/data': VirtualFileSystem: Failed to mount '/usr/local/driveworks-5.20/data/resources.pak'
[19-02-2025 14:18:40] Context::findDataRootInPathWalk data/DATA_ROOT found at: /usr/local/driveworks-5.20/data
[19-02-2025 14:18:40] Context::mountResourceCandidateDataPath resource FAILED to mount from '/usr/local/driveworks-5.20/data': VirtualFileSystem: Failed to mount '/usr/local/driveworks-5.20/data/resources.pak'
[19-02-2025 14:18:40] Context::findResourcesPackageInPathWalk: Could not find ./resources/resources.pak in upto 7 parent directories from /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libdw_base.so.5.20
[19-02-2025 14:18:40] Context::findResourcesPackageInPathWalk: Could not find ./resources/resources.pak in upto 7 parent directories from /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libdw_base.so.5.20
[19-02-2025 14:18:40] SDK: No resources(.pak) mounted, some modules will not function properly
[19-02-2025 14:18:40] [19-02-2025 14:18:40] Initialize DriveWorks SDK v5.20.24
[19-02-2025 14:18:40] [19-02-2025 14:18:40] Release build with GNU 9.3.0 from buildbrain-branch-0-gb4c0b405b15
[19-02-2025 14:18:40] SensorFactory::loadPluginLibraryHelper:Succeed to load dynamic lib - /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libsensor_plugin_public_radar.so
[19-02-2025 14:18:40] SensorFactory::createSensor() -> can.socket, device=vcan0,bitrate=500000,decoder-path=./libsygnalpomo_can_plugin.so
[19-02-2025 14:18:40] Found driver: can.socket
[19-02-2025 14:18:40] CANSocket: Cannot get current state of hardware time stamping: ioctl(SIOCGHWTSTAMP, vcan0) -> Operation not supported
[19-02-2025 14:18:40] CANSocket: software based timestamps will be used for vcan0
[19-02-2025 14:18:40] CANSocket: ioctl(SIOCSHWTSTAMP, vcan0) failed -> Operation not supported. Cannot enable HW timestamps, try with root user.
[19-02-2025 14:18:40] CANSocket: use SW based timestamps for vcan0
[19-02-2025 14:18:40] CANSocket: started vcan0
[INFO] Monitoring CAN messages...
[APP] Received CAN message - ID: 0x170 | Data: 1 0 0 0 0 0 0 22
[APP] Received CAN message - ID: 0x60 | Data: 1 0 1 0 0 0 0 bd
I need to know how the application can be linked to the plugin to perform the decoding or where is the linkage broken?
a dependency list of the shared object created :
root@6.0.10.0-0009-build-linux-sdk:/home/nvidia/build-x86_64-linux-gnu/install/usr/local/driveworks/samples/bin# ldd libsygnalpomo_can_plugin.so
linux-vdso.so.1 (0x00007ffc7b7cc000)
libdw_sensors.so.5.20 => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libdw_sensors.so.5.20 (0x00007f69ac299000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f69ac09a000)
libgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f69ac07f000)
libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007f69abe8d000)
libnvsipl.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsipl.so (0x00007f69abbf2000)
libdl.so.2 => /usr/lib/x86_64-linux-gnu/libdl.so.2 (0x00007f69abbec000)
libz.so.1 => /usr/lib/x86_64-linux-gnu/libz.so.1 (0x00007f69abbd0000)
libnvcuvid.so.1 => /usr/lib/x86_64-linux-gnu/libnvcuvid.so.1 (0x00007f69aac95000)
libnvsipl_query.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsipl_query.so (0x00007f69aaa22000)
libnvjpeg.so.11 => /usr/local/cuda/targets/x86_64-linux/lib/libnvjpeg.so.11 (0x00007f69aa331000)
libdw_base.so.5.20 => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libdw_base.so.5.20 (0x00007f69a8db6000)
libnvmedia_ide_sci.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvmedia_ide_sci.so (0x00007f69a8ba9000)
libnvmedia_iep_sci.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvmedia_iep_sci.so (0x00007f69a899a000)
libnvrm_surface_fusa.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvrm_surface_fusa.so (0x00007f69a8796000)
libnvvideo_iep.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvvideo_iep.so (0x00007f69a851f000)
libdwshared.so.5.20 => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libdwshared.so.5.20 (0x00007f69a8136000)
libnvscisync.so.1 => /usr/lib/x86_64-linux-gnu/libnvscisync.so.1 (0x00007f69a7c82000)
libnvscibuf.so.1 => /usr/lib/x86_64-linux-gnu/libnvscibuf.so.1 (0x00007f69a7a11000)
libcudart.so.11.0 => /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so.11.0 (0x00007f69a776f000)
libcuda.so.1 => /usr/lib/x86_64-linux-gnu/libcuda.so.1 (0x00007f69a47bc000)
libdwdynamicmemory.so.5.20 => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libdwdynamicmemory.so.5.20 (0x00007f69a47b7000)
libpthread.so.0 => /usr/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f69a4794000)
libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007f69a4643000)
/lib64/ld-linux-x86-64.so.2 (0x00007f69add29000)
libnvsipl_devblk.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsipl_devblk.so (0x00007f69a440f000)
libnvfusacap.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvfusacap.so (0x00007f69a41cf000)
libnvsipl_devblk_cdi.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsipl_devblk_cdi.so (0x00007f69a3fc7000)
libnvsocsys.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsocsys.so (0x00007f69a3dc3000)
libnvos.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvos.so (0x00007f69a3bb4000)
libnvsipl_control.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsipl_control.so (0x00007f69a395a000)
libnvrm_mem.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvrm_mem.so (0x00007f69a3755000)
libnvrm_host1x.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvrm_host1x.so (0x00007f69a354d000)
libnvrm_surface.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvrm_surface.so (0x00007f69a3339000)
libnvrm_chip.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvrm_chip.so (0x00007f69a3136000)
libnvsciemu.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsciemu.so (0x00007f69a2f2f000)
libnvemu.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvemu.so (0x00007f69a2c8c000)
librt.so.1 => /usr/lib/x86_64-linux-gnu/librt.so.1 (0x00007f69a2c82000)
libusb-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007f69a2c66000)
libnvvideo.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvvideo.so (0x00007f69a29b8000)
libnvrm_stream.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvrm_stream.so (0x00007f69a27af000)
libgnarl-24.1.so => /usr/lib/x86_64-linux-gnu/libgnarl-24.1.so (0x00007f69a2755000)
libgnat-24.1.so => /usr/lib/x86_64-linux-gnu/libgnat-24.1.so (0x00007f69a2228000)
libnvscicommon.so.1 => /usr/lib/x86_64-linux-gnu/libnvscicommon.so.1 (0x00007f69a2022000)
libnvsciipc.so => /usr/lib/x86_64-linux-gnu/libnvsciipc.so (0x00007f69a1e03000)
libnvsipl_devblk_ddi.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsipl_devblk_ddi.so (0x00007f69a1bee000)
libnvsipl_devblk_crypto.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvsipl_devblk_crypto.so (0x00007f69a19e9000)
libnvisppg.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvisppg.so (0x00007f69a16dd000)
libnvrm_sync.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvrm_sync.so (0x00007f69a14d9000)
libudev.so.1 => /usr/lib/x86_64-linux-gnu/libudev.so.1 (0x00007f69a14aa000)
libnvisp.so => /usr/local/driveworks-5.20/targets/x86_64-Linux/lib/libnvisp.so (0x00007f69a122c000)
root@6.0.10.0-0009-build-linux-sdk:/home/nvidia/build-x86_64-linux-gnu/install/usr/local/driveworks/samples/bin#