Setting pipeline to PAUSED …
ERROR: Pipeline doesn’t want to pause.
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Resource not found.
Additional debug info:
gstfilesrc.c(530): gst_file_src_start (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
No such file “gst-v4l2src.bggr”
Setting pipeline to NULL …
Freeing pipeline …
I have a question regarding gstreamer. Do you have your own version of gstreamer and all the plugins with NVidia modifications? I just install it using “sudo apt install”:
I repeated post #14 & this time, gst-launch does nothing, then just frees pipe & exits. I ran convert on the v4l2 image and then used ImageViewer. I can see an image, but it’s extremely grainy and black/white only.
“myfile” ends up with 1843200 bytes. This seems like the exact file size for a 1920x480 image in YUV422 format. Is this expected? Shouldn’t we get the unmodified RAW10 bayer data from the image sensor? (in this case, the file size should be 1920x480x5/4 = 1152000 bytes)
"Sorry I cannot tell much more, but the 16 bits format may only be used by option stream-to which writes to disk. v4l2-ctl would have read into memory in RG10 format as explained by TRM, and then made the 16 bits format for disk storage with stream-to. So the raw file may not be an exact image of the memory stream. It is much easier to read just 2 bytes and get ‘short’ values for further computing, than having to manage the shifts and mask. "
Setting pipeline to PAUSED …
Socket read error. Camera Daemon stopped functioning…
gst_nvcamera_open() failed ret=0
ERROR: Pipeline doesn’t want to pause.
ERROR: from element /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
gstbasesrc.c(3354): gst_base_src_start (): /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0:
Failed to start
Setting pipeline to NULL …
Freeing pipeline …
So I ran nvcamera-daemon manually to capture more info & re-ran gst-launch.
Output from nvcamera-daemon:
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
PCLHW_DTParser
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/pffcam_center_lipffcam.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/pffcam_center_lipffcam.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/pffcam_center_lipffcam.isp] 8/16---- imager: No override file found. ----
(NvOdmDevice) Error ModuleNotPresent: V4L2Device not available (in dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function findDevice(), line 231)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function initialize(), line 54)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 97)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
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 596)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 781)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 276)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function getSource(), line 439)
Segmentation fault (core dumped)
I was just wondering if there is any way to resolve this problem? It seems like nvcamera-daemon doesn’t recognize the camera defined in the device-tree. Is there some config file, rebuild option, or source for the daemon available so I can fix it?
The config file I was mentioning was related to ISP and depending on your release you may have a look to files in /var/nvidia/nvcam/settings and if you can provide a file camera_override.isp, but there is not so much available about how to generate this AFAIK for a custom sensor. If someone knows more about this, please let us know.
could you please replace pre-built library libargus.so with the attachment, Topic1050604_Apr26_lib.tar.gz
you should perform warm-reboot to let the change takes effect.
thanks Topic1050604_Apr26_lib.tar.gz (231 KB)
I updated the library and reran “gst-launch”. Here are the results:
Console:
nvidia@tegra-ubuntu:~$ gst-launch-1.0 -v nvcamerasrc ! 'video/x-raw(memory:NVMM),format=NV12,width=1920,height=1080,framerate=30/1' ! nvoverlaysink -ev
Setting pipeline to PAUSED ...
Socket read error. Camera Daemon stopped functioning.....
gst_nvcamera_open() failed ret=0
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
gstbasesrc.c(3354): gst_base_src_start (): /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0:
Failed to start
Setting pipeline to NULL ...
Freeing pipeline ...
dmesg:
[ 383.870699] pffcam 30-001a: pffcam_power_on: power on, I2C_CTRL reg = 6
[ 384.378827] pffcam 30-001a: pffcam_power_on: power on, I2C_CTRL reg = 6 after delay
[ 384.387347] pffcam 30-001a: pffcam_power_off: power off, I2C_CTRL reg = 6
[ 384.446805] pffcam 30-001a: pffcam_power_off: power off, I2C_CTRL reg = 6 after wait
[ 384.454640] pffcam 30-001a: pffcam_power_off: power off, not busy, write shutdown bit to FPGA VIDREG
[ 384.465090] pffcam 30-001a: pffcam_power_off: power off
[ 384.722820] pffcam 30-001a: pffcam_power_off: power off, busyflag = 6 after writing shutdown bit
[ 384.737076] pffcam 30-001a: pffcam_power_on: power on, I2C_CTRL reg = 6
[ 385.246832] pffcam 30-001a: pffcam_power_on: power on, I2C_CTRL reg = 6 after delay
[ 385.254976] pffcam 30-001a: pffcam_power_off: power off, I2C_CTRL reg = 6
[ 385.314805] pffcam 30-001a: pffcam_power_off: power off, I2C_CTRL reg = 6 after wait
[ 385.322608] pffcam 30-001a: pffcam_power_off: power off, not busy, write shutdown bit to FPGA VIDREG
[ 385.333056] pffcam 30-001a: pffcam_power_off: power off
[ 385.590812] pffcam 30-001a: pffcam_power_off: power off, busyflag = 6 after writing shutdown bit
[ 385.654702] pffcam 30-001a: pffcam_power_on: power on, I2C_CTRL reg = 6
[ 386.162816] pffcam 30-001a: pffcam_power_on: power on, I2C_CTRL reg = 6 after delay
[ 386.170689] pffcam 30-001a: pffcam_power_off: power off, I2C_CTRL reg = 6
[ 386.230812] pffcam 30-001a: pffcam_power_off: power off, I2C_CTRL reg = 6 after wait
[ 386.238625] pffcam 30-001a: pffcam_power_off: power off, not busy, write shutdown bit to FPGA VIDREG
[ 386.249088] pffcam 30-001a: pffcam_power_off: power off
[ 386.506818] pffcam 30-001a: pffcam_power_off: power off, busyflag = 6 after writing shutdown bit
[ 386.519446] nvcamera-daemon[2932]: unhandled level 2 translation fault (11) at 0x00000000, esr 0x92000006
[ 386.529146] pgd = ffffffc1deb4d000
[ 386.532729] [00000000] *pgd=000000025e4fb003, *pud=000000025e4fb003, *pmd=0000000000000000
[ 386.542695] CPU: 0 PID: 2932 Comm: nvcamera-daemon Not tainted 4.4.38 #8
[ 386.549432] Hardware name: quill (DT)
[ 386.553151] task: ffffffc1c7cdcb00 ti: ffffffc1eab9c000 task.ti: ffffffc1eab9c000
[ 386.560716] PC is at 0x402efc
[ 386.563716] LR is at 0x402ef8
[ 386.566685] pc : [<0000000000402efc>] lr : [<0000000000402ef8>] pstate: 60000000
[ 386.574172] sp : 0000007f931a22d0
[ 386.577547] x29: 0000007f931a69d0 x28: 0000000000000000
[ 386.582995] x27: 0000000000000003 x26: 0000007f931a6340
[ 386.588421] x25: 0000000000404000 x24: 0000000000000334
[ 386.593811] x23: 0000007f931a4340 x22: 0000007f931a3340
[ 386.599193] x21: 0000007f931a4264 x20: 0000007f931a2350
[ 386.604542] x19: 0000007f931a4950 x18: 0000000000000014
[ 386.609939] x17: 0000007f94a18fb0 x16: 0000007f9476d540
[ 386.615308] x15: 0000007f9540e000 x14: 7265766972446172
[ 386.620690] x13: 656d61432f697061 x12: 2f637273206d6f72
[ 386.626046] x11: 6620676e69746167 x10: 61706f7270282020
[ 386.631401] x9 : 3a726574656d6172 x8 : 0000000000000040
[ 386.636740] x7 : 0000007f8c6b3290 x6 : 0000000000000001
[ 386.642069] x5 : 0000000000000000 x4 : 0000007f8c000b10
[ 386.647406] x3 : 0000000000000000 x2 : 0000000000000001
[ 386.652739] x1 : 0000000000000000 x0 : 0000000000000000
[ 386.659570] Library at 0x402efc: 0x400000 /usr/sbin/nvcamera-daemon
[ 386.665834] Library at 0x402ef8: 0x400000 /usr/sbin/nvcamera-daemon
[ 386.672101] vdso base = 0x7f9540d000
couple of suggestions as below for your testing,
thanks
it seems nvcamerasrc cannot open the camera device correctly.
check you please check your video node being generated successfully under /dev/
since there’s issue within nvcamerasrc, we should debug into user-space library.
please ran nvcamera-daemon manually to capture more info and re-ran gst-launch.
please check below message,
it seems your pffcam has detected but got failure when verify device capability.
initialize: pffcam 30-001A
(NvOdmDevice) Error ModuleNotPresent: V4L2Device not available (in dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function findDevice(), line 231)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function initialize(), line 54)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 97)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
could you please check your low-level driver, please check VIDIOC_QUERYCAP works correctly.
thanks
The driver capabilities are set up just like the IMX185. There are a couple ioctl() commands that have no meaning to our camera, so those options just return(0) and do nothing. “Write ISP format” is called at the V4L2 layer, which of course, I have not changed at all.
Are there any tegra-specific kernel patches that I need to apply to Linux V4.4.38 to add some missing V4L2 ioctl (i.e the drivers/media/platform/tegra/camera/vi folder)?
FYI, we actually had several patches to update l4t-r28.2 kernel drivers, you may also refer to Topic 1038067: to fix FE syncpt wait
and Topic 1038421: correct format code conversions
suggest you also check imx274 kernel driver, which having final steps to verify sensor streaming before probing the sensor driver.
<i>$TOP/public_release/kernel_src/kernel/kernel-4.4/drivers/media/i2c/imx274.c</i>
static int imx274_verify_streaming(struct imx274 *priv)
{...}