Streaming issues with gst-launch-1.0 with a custom camera device

v4l2 looks good:

v4l2-ctl --set-fmt-video=width=1920,height=480,pixelformat=RG10 --stream-mmap -d /dev/video0 --set-ctrl bypass_mode=0 --stream-count=300 --stream-to=v4l2.rggb
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.09 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.04 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.03 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.09 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.07 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.06 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.05 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.04 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.04 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<

You asked me to run the following command:

gst-launch-1.0 filesrc location=gst-v4l2src.bggr blocksize=921600 ! ‘video/x-bayer, width=1920, height=480, framerate=30/1, format=bggr’ ! bayer2rgb ! videoconvert ! xvimagesink

This is what I got:

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”:

sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly

You would try that after recording from gstreamer with v4l2src as suggested in post #14 :

gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=300 ! 'video/x-bayer, format=(string)rggb, width=(int)1920, height=(int)480, framerate=(fraction)30/1' ! filesink location=gst-v4l2src.rggb

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.

finally got post #14 going but I get terrible output from both commands:

gst-launch-1.0 filesrc location=gst-v4l2src.bggr blocksize=921600 ! ‘video/x-bayer, width=1920, height=480, framerate=30/1, format=bggr’ ! bayer2rgb ! videoconvert ! xvimagesink

produces all black.

gst-launch-1.0 filesrc location=v4l2.bggr blocksize=921600 ! ‘video/x-bayer, width=1920, height=480, framerate=30/1, format=bggr’ ! bayer2rgb ! videoconvert ! xvimagesink

I can see image but it’s really grainy & all blue/white.

When we run this command:

v4l2-ctl --set-fmt-video=width=1920,height=480,pixelformat=RG10 --stream-mmap -d /dev/video0 --set-ctrl bypass_mode=0 --stream-count=1 --stream-to=myfile

“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)

Ah, well, I found this in another forum post:

"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. "

please note that below two commands line going through same code flow.
gst-launch-1.0 v4l2src ... and v4l2-ctl … --set-ctrl bypass_mode=0 …

since you’re now configure sensor to RG10 format, could you please have another try to launch camera sensor with below,

gst-launch-1.0 -v nvcamerasrc ! 'video/x-raw(memory:NVMM),format=<b>NV12</b>,width=1920,height=1080,framerate=30/1' ! <b>nvoverlaysink -ev</b>

gst-launch-1.0 -v nvcamerasrc ! ‘video/x-raw(memory:NVMM),format=NV12,width=1920,height=1080,framerate=30/1’ ! nvoverlaysink -ev

resulted in:

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?

Sorry, I’ve edited my commands where I was giving commands for recording in rggb format but playing back in bggr.

Now you’re on the way to 10 bits bayer, you should go to nvXXXcamerasrc. Sure @JerryChang, @ShaneCCC and @DaneLLL will provide more accurate advice than I can. You would however read these for better understanding (it may depend on L4T versions):
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fcamera_dev.html%23
https://devtalk.nvidia.com/default/topic/1043087/jetson-tx2/sensor-driver-working-properly-in-v4l2-but-not-in-argus_camera
https://devtalk.nvidia.com/default/topic/1039183/jetson-tx2/argus-syncing-multiple-capture-sessions

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.

hello pholden,

suppose you’re working with rel-28 since you’re using nvcamerasrc plugin,

gst-launch-1.0 -v nvcamerasrc ! 'video/x-raw(memory:NVMM),format=NV12,width=1920,height=1080,framerate=30/1' ! nvoverlaysink -ev

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)

Hi Jerry,

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

hello jallen9c026,

couple of suggestions as below for your testing,
thanks

  1. it seems nvcamerasrc cannot open the camera device correctly.
    check you please check your video node being generated successfully under /dev/

  2. 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.

Hi Jerry,

Here argus-daemon did not generate any messages, but nvcamera-daemon did:

root@tegra-ubuntu:~# export enableCamPclLogs=5
root@tegra-ubuntu:~# export enableCamScfLogs=5
root@tegra-ubuntu:~# /usr/sbin/nvcamera-daemon &
[1] 2008
root@tegra-ubuntu:~# Thread 1 getting next capture
Thread 2 getting next capture
Thread 1 is waiting
Thread 2 is waiting
Thread 3 getting next capture
Thread 3 is waiting
Thread 4 getting next capture
Thread 4 is waiting
Thread 6 getting next capture
Thread 6 is waiting
Thread 7 getting next capture
Thread 7 is waiting
Thread 5 getting next capture
Thread 5 is waiting
Thread 8 getting next capture
Thread 8 is waiting
Thread 9 getting next capture
Thread 9 is waiting
Thread 10 getting next capture
Thread 10 is waiting
Thread 11 getting next capture
Thread 11 is waiting
Thread 12 getting next capture
Thread 12 is waiting
Starting services...
Worker thread IspHw statsComplete start
Worker thread IspHw frameComplete start
Worker thread CaptureScheduler checkFramePending start
Worker thread CaptureScheduler frameStart start
Worker thread V4L2CaptureScheduler checkCaptureComplete start
Worker thread V4L2CaptureScheduler issueCaptures start
Worker thread PS handleRequests start
getInstance: s_instance(0x7fa0b92580)
getInstance: s_instance(0x7fa0b92580)
subscribe: create SensorType(gyroscope) sensor(0x7fa0b94700)
subscribe: create SensorType(accelerometer) sensor(0x7fa0b99b60)
AC plugin not present: dlopen "acplugin.so", acplugin.so: cannot open shared object file: No such file or directory
Services are started
NvPclSetHotplugCallback: ++++++++++++++++++++++
---- Imager: Calibration blob file handling supported in this build ----
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: pffcam_center_lipffcam
NvPclHwPrintModuleDefinition -- Position: 2
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: pffcam 30-001A
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: pffcam_front_lipffcam
NvPclHwPrintModuleDefinition -- Position: 1
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: pffcam 31-001A
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: pffcam_bottom_lipffcam
NvPclHwPrintModuleDefinition -- Position: 0
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: pffcam 32-001A
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: NvPclModule list[0]: pffcam_center_lipffcam position2
NvPclModuleListInitialize: NvPclModule list[1]: pffcam_front_lipffcam position1
NvPclModuleListInitialize: NvPclModule list[2]: pffcam_bottom_lipffcam position0
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclHwScanExternalCameras -- adding video0 to discover list
initialize: /dev/video0
queryControls: 10100739 control Group Hold
queryControls: 10100740 control HDR enable
queryControls: 10100743 control Fuse ID
queryControls: 10100746 control Sensor Mode
queryControls: 10100747 control Gain
queryControls: 10100748 control Exposure
queryControls: 10100749 control Frame Rate
queryControls: 10100836 control Bypass Mode
queryControls: 10100837 control Override Enable
queryControls: 10100838 control Height Align
queryControls: 10100839 control Size Align
queryControls: 10100840 control Write ISP format
Ioctl failed: Invalid argument
NvPclHwScanExternalCameras -- adding video0 to discover list
initialize: /dev/video0
queryControls: 10100739 control Group Hold
queryControls: 10100740 control HDR enable
queryControls: 10100743 control Fuse ID
queryControls: 10100746 control Sensor Mode
queryControls: 10100747 control Gain
queryControls: 10100748 control Exposure
queryControls: 10100749 control Frame Rate
queryControls: 10100836 control Bypass Mode
queryControls: 10100837 control Override Enable
queryControls: 10100838 control Height Align
queryControls: 10100839 control Size Align
queryControls: 10100840 control Write ISP format
Ioctl failed: Invalid argument
getHotplugMonitor: Getting hotplug monitor instance
 initializeHotplug++
 hotPlugfunc ++ 
 addWatch: Watch added wd='1'
CheckProcDTExists: INFO: accessing /proc/device-tree/tegra-virtual-camera-platform/modules; No such file or directory
PCLHW_DTParser
setHotplugCallback: Registered new callback client
NvPclSetHotplugCallback: ----------------------
NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 2 match at index[0]
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa0bbc2f0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa0bbc380
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa0bdf590
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa0bdf620
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa0bdf6b0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7fa0bdf740
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16CheckOverridesPermissions: cannot stat file [/Calib/camera_override.isp]
LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16CheckOverridesPermissions: cannot stat file [/data/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16 hotPlugfunc: reading from inotify FD, Thread waiting 
CheckOverridesPermissions: cannot stat file [/opt/nvidia/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16CheckOverridesPermissions: cannot stat file [/var/nvidia/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16CheckOverridesPermissions: cannot stat file [/data/nvcam/camera_overrides.isp]
LoadOverridesFile: looking for override file [/data/nvcam/settings/pffcam_center_lipffcam.isp] 6/16CheckOverridesPermissions: cannot stat file [/data/nvcam/settings/pffcam_center_lipffcam.isp]
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/pffcam_center_lipffcam.isp] 7/16CheckOverridesPermissions: cannot stat file [/opt/nvidia/nvcam/settings/pffcam_center_lipffcam.isp]
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/pffcam_center_lipffcam.isp] 8/16CheckOverridesPermissions: cannot stat file [/var/nvidia/nvcam/settings/pffcam_center_lipffcam.isp]
---- imager: No override file found. ----
Imager: looking for override file [/mnt/factory/camera/factory.bin] 1/16
Imager: looking for override file [/Calib/factory.bin] 2/16
Imager: looking for override file [/Calib/calibration.bin] 3/16
Imager: looking for override file [(null)] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
Imager: looking for override file [/data/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/nvcam/settings/pffcam_center_lipffcam.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/pffcam_center_lipffcam.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/pffcam_center_lipffcam.bin] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_sensor)
NvPclCreateDriver: Found a Driver name match (v4l2_sensor)
NvPclConnectDrivers: hImager was NULL, creating new imager
NvPclInitializeDrivers: v4l2_sensor ++++++++++++++++++
OFDPropertyGetString: could not read property [devnode-bus]
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
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa0bdf620
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa0bdf6b0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa0bdf740
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa0bbc2f0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa0bbc380
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7fa0bdf590
NvPclStateControllerOpen: Failed ImagerGUID 2. (error 0xA000E)
NvPclStateControllerClose: Module pffcam_center_lipffcam closed
NvPclOpen: PCL Open Failed. Error: 0xf
NvPclClose: ++++++++++++++++++++++
NvPclClose: ----------------------
NvPclOpen: ----------------------
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)

[1]+  Segmentation fault      (core dumped) /usr/sbin/nvcamera-daemon
root@tegra-ubuntu:~# 
root@tegra-ubuntu:~#

Also, yes, the /dev/video0 node was created.

hello jallen9c026,

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)?

hello pholden,

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)
{...}