Problem with libnv_extimgdev.so library

Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
Software Version
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
other

Target Operating System
Linux
QNX
other

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
other

SDK Manager Version
1.4.1.7402
other

Host Machine Version
native Ubuntu 18.04
other
Dear Nvidia support,
We try to build libnv_extimgdev.so from ~/nvidia/nvidia_sdk/DRIVE_OS_5.2.0.0_SDK_Linux_OS_DDPX/DRIVEOS/drive-t186ref-linux/samples/nvmedia/ext_dev_prgm and replace this default lib in /usr/lib. The purpose of this replacing is we want to add other custom camera as we did in DRIVE OS 5.1.6.1 . But after repalcing, we run nvmimg_cap sample in the DRIVE, the error occur:

./nvmimg_cap -cf ddpx-a.conf -c SF3324-CSI-A -v 2 --aggregate 1 -d 0 -w 1Module_id 22 Severity 6 : ICP Major version number 4
Module_id 22 Severity 6 : ICP Minor version number 22
nvmedia: Using params set: SF3324-CSI-A for capture
./nvmimg_cap: symbol lookup error: libnv_extimgdev.so: undefined symbol: PowerControlPortFromString

We try to add header file to resolve this error, but it will cause other error. If we use default libnv_extimgdev.so library, the sample can run OK:

./nvmimg_cap -cf ddpx-a.conf -c SF3324-CSI-A -v 2 --aggregate 1 -d 0 -w 1Module_id 22 Severity 6 : ICP Major version number 4
Module_id 22 Severity 6 : ICP Minor version number 22
nvmedia: Using params set: SF3324-CSI-A for capture
Max96712 Rev 2 detected!
MAX96712: Enable periodic AEQ on Link 0
MAX96705: Pre-emphasis set to 0xaa
Sensor AR0231 RCCB Rev7 detected!
Module_id 22 Severity 6 : NvMediaICPCreateEx 76
Module_id 22 Severity 6 : T19x VI version 0x000019
Type “h” for a list of options
-nvmedia: _CaptureThreadFunc: VC:0 FPS=0 delta=73247377384
nvmedia: _CaptureThreadFunc: VC:0 FPS=30 delta=3033323
nvmedia: _CaptureThreadFunc: VC:0 FPS=29 delta=3000008

So, can you provide us the correct source code of ext_dev_prgm that you use to build default library?
Many thanks,
Hung.

Dear @v.HungNV99 .
May I know the custom camera module and complete steps followed on DRIVE OS 5.2.0 to add your camera ? Could you also share the steps used to add your custom module on DRIVE SW 10. So that, I will check internally and get back to you for clear guidance.

Dear SivaRamaKrishnaNV,
We modified ext_dev_prgm successfully only on DRIVE OS 5.1.6.1 (part of DRIVE Software 10). We have custom camera module with MAX9295 Serializer and AR0231 image sensor. The steps to modify is:

  • Add new drivers source code: ref_max96712_9295_ar0231_rccb.c/.h to ~/nvidia/nvidia_sdk/DRIVE_OS_5.2.0.0_SDK_Linux_OS_DDPX/DRIVEOS/drive-t186ref-linux/samples/nvmedia/ext_dev_prgm/img_dev/maxim and add this driver name to dev_list.c
  • Rebuild ext_dev_prgm and replace default library libnv_extimgdev.so in /usr/lib of target (DRIVE AGX)
  • Create a configuration file camera.conf with contain name of driver, I2C address … as below:

[capture-params-set 2]
capture-name = “FOV60-CSI-CD”
capture-description = “60-deg FOV, MIPI AR0231-RCCB, MAX9295”
board = “ddpx-a”
input_device = “ref_max96712_9295_ar0231rccb_portB_pin0”
input_format = “raw12”
surface_format = “raw12”
resolution = “1920x1208”
csi_lanes = 4
interface = “csi-cd”
embedded_lines_top = 24
embedded_lines_bottom = 4
i2c_device = 2
serializer_address = 0x40
deserializer_address = 0x29
sensor_address = 0x10

  • Build sample ~/nvidia/nvidia_sdk/DRIVE_OS_5.2.0.0_SDK_Linux_OS_DDPX/DRIVEOS/drive-t186ref-linux/samples/nvmedia/img_cap and copy to target and run with command:

./nvmimg_cap -cf camera.conf -c FOV60-CSI-CD -v 2 --aggregate 1 -d 0 -w 1

The issue here is we can not do the same steps in the DRIVE OS 5.2 As I talked above,libnv_extimgdev.so that built from ext_dev_prgm sample can not work when we only build samples and use SF3324 camera to test. You can check the command and error in firt post.
Thanks, Hung

Hi @v.HungNV99 ,

Please take a look at NvMedia IPP to SIPL Porting Guide and Write custom camera module with NvSIPL to see if help on your questions. Thanks.

Dear VickNV,
Thanks for your advising, we will try to use SIPL in OS 5.2. Anw, may I know why ext_dev_prgm sample can not work in this OS, is it not up to date?

I have no idea why you saw the undefined symbol error. Isn’t the funciton defined in ~/nvidia/nvidia_sdk/DRIVE_OS_5.2.0_SDK_Linux_OS_DDPX/DRIVEOS/drive-t186ref-linux/samples/nvmedia/utils/pwr_utils.c
? Maybe there is some problem in the makefile.

img_cap and ext_dev_prgm will be deprecated in the next release so I would suggest you to move the SIPL. Thanks.

Dear VickNV,
We try to fix error, but it will cause other error, so I think it is not final release as source code that used to build default ext_dev_prgm library in /usr/lib.
Okay, we will try to use SIPL and ask you when we finish or if have issue. Thanks.

Thank you for letting us know. just a friendly reminder. If you have any problems from developing SIPL based drivers, please create another topic.

1 Like

Dear Mr VickNV, I created new topic for SIPL, can you please have a look at it? Create customized camera driver AR0231 + Max9295 with SIPL

problem of libnv_extimgdev.so solved by add tacp library to ext_dev_prgm’s Makefile.

1 Like

Thanks for sharing back to the community.