Hello,
I am porting a focuser driver from Jetpack 3.3 to Jetpack 4.5, for the Jetson Nano.
I know that the driver worked with nvcamerasrc
in JP3.3 but, in the case of JP4.5, the nvcamerasrc
plugin has been replaced with nvarguscamerasrc
. I wonder if this can be of any problem when dealing with focusers.
During my research, I came across this recent NVIDIA forum post that describes a situation pretty similar to mine; it even shows the same error messages that I am getting when trying to use nvarguscamerasrc
. The post is closed and the creation of a new post was suggested to address the additional error messages that were posted… so here it is.
- Can you confirm that it is possible to obtain the focus value from the ISP in Jetpack 4.5 with a focuser driver?
- If so, do you know if any changes are required at
nvarguscamerasrc
level? - Can you provide any reference for implementing a focuser driver in Jetpack 4.5? I did not find too much information about focusers in the Sensor Software Driver Programming Guide
Also here is the output log that I get when I try to capture with nvarguscamerasrc
:
nvidia@nvidia-desktop:~$ gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=30/1' ! fakesink silent=false -v
nvbuf_utils: Could not get EGL display connection
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: stream-start (10254), GstEventStreamStart, stream-id=(string)13fc29b69eab48da5fc0d73707318d9a, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;) 0x5595c54110
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: caps (12814), GstEventCaps, caps=(GstCaps)"video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ format\=\(string\)NV12\,\ framerate\=\(fraction\)30/1";) 0x5595c541f0
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:645 No cameras available
(gst-launch-1.0:8326): GStreamer-CRITICAL **: 13:01:24.860: gst_mini_object_set_qdata: assertion 'object != NULL' failed
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: eos (28174), ) 0x5595c54260
Got EOS from element "pipeline0".
Execution ended after 0:00:00.380169742
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
And the debug log from the nvargus daemon:
root@nvidia-desktop:/home/nvidia# /usr/sbin/nvargus-daemon
X11 connection rejected because of wrong authentication.
nvbuf_utils: Could not get EGL display connection
=== NVIDIA Libargus Camera Service (0.97.3)=== Listening for connections...
=== gst-launch-1.0[8326]: Connection established (7F876D21D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
(NvCamV4l2) Error NotInitialized: V4L2Device not initialized (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findControlByName(), line 268)
(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findDevice(), line 256)
(NvCamV4l2) Error ModuleNotPresent: (propagating from /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function initialize(), line 60)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2FocuserBase.cpp, function initialize(), line 164)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2FocuserVcm.cpp, function initialize(), line 54)
NvPclDriverInitializeData: Unable to initialize driver v4l2_focuser
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_focuser
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclDriver_V4L2_Sensor_Close: Invalid NULL input pPclDriver
NvPclStateControllerOpen: Failed ImagerGUID 2. (error 0xA000E)
NvPclOpen: PCL Open Failed. Error: 0xf
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 582)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 437)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 303)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function getSource(), line 466)
Acquiring SCF Camera device source via index 0 has failed. ---- imager: No override file found. ----
(NvCamV4l2) Error NotInitialized: V4L2Device not initialized (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findControlByName(), line 268)
(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findDevice(), line 256)
(NvCamV4l2) Error ModuleNotPresent: (propagating from /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function initialize(), line 60)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2FocuserBase.cpp, function initialize(), line 164)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2FocuserVcm.cpp, function initialize(), line 54)
NvPclDriverInitializeData: Unable to initialize driver v4l2_focuser
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_focuser
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclDriver_V4L2_Sensor_Close: Invalid NULL input pPclDriver
NvPclStateControllerOpen: Failed ImagerGUID 1. (error 0xA000E)
NvPclOpen: PCL Open Failed. Error: 0xf
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 582)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 437)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 303)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function getSource(), line 466)
Acquiring SCF Camera device source via index 1 has failed. ---- imager: No override file found. ----
(NvCamV4l2) Error NotInitialized: V4L2Device not initialized (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findControlByName(), line 268)
(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findDevice(), line 256)
(NvCamV4l2) Error ModuleNotPresent: (propagating from /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function initialize(), line 60)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2FocuserBase.cpp, function initialize(), line 164)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2FocuserVcm.cpp, function initialize(), line 54)
NvPclDriverInitializeData: Unable to initialize driver v4l2_focuser
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_focuser
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclDriver_V4L2_Sensor_Close: Invalid NULL input pPclDriver
NvPclStateControllerOpen: Failed ImagerGUID 0. (error 0xA000E)
NvPclOpen: PCL Open Failed. Error: 0xf
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 582)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 437)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 303)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function getSource(), line 466)
Acquiring SCF Camera device source via index 2 has failed. === gst-launch-1.0[8326]: CameraProvider initialized (0x7f809496f0)=== gst-launch-1.0[8326]: CameraProvider destroyed (0x7f809496f0)=== gst-launch-1.0[8326]: Connection closed (7F876D21D0)=== gst-launch-1.0[8326]: Connection cleaned up (7F876D21D0)