No cameras available with correct devname and when v4l2-ctl works

Hello,
We’re bringing up a custom camera driver for a Sony IMX567 sensor on L4T 35.3.1 and JP 5.1.1. We can stream frames with v4l2-ctl and read out the raw frames and can verify the test pattern and real imagery from the camera. The device name is correct and we can confirm with dmesg that the device name for the driver is imx567 2-0036.

[  120.558747] imx567 2-0036: imx567_probe()
[  120.558769] imx567 2-0036: probing v4l2 sensor

Media-ctl output looks like this:

nvidia@tegra-ubuntu:~$ sudo media-ctl -p -d /dev/media0
Media controller API version 5.10.104

Media device information
------------------------
driver          tegra-camrtc-ca
model           NVIDIA Tegra Video Input Device
serial
bus info
hw revision     0x3
driver version  5.10.104

Device topology
- entity 1: 13e10000.host1x:nvcsi@15a00000- (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                <- "imx567 2-0036":0 [ENABLED]
        pad1: Source
                -> "vi-output, imx567 2-0036":0 [ENABLED]

- entity 4: imx567 2-0036 (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev1
        pad0: Source
                [fmt:SRGGB10_1X10/2448x2048 field:none colorspace:srgb]
                -> "13e10000.host1x:nvcsi@15a00000-":0 [ENABLED]

- entity 6: vi-output, imx567 2-0036 (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "13e10000.host1x:nvcsi@15a00000-":1 [ENABLED

However, argus is unable to stream the camera. Instead it returns “No cameras found”

nvidia@tegra-ubuntu:~$ gst-launch-1.0 nvarguscamerasrc ! fakesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:751 No cameras available
Got EOS from element "pipeline0".
Execution ended after 0:00:00.008767191
Setting pipeline to NULL ...
Freeing pipeline ...

Setting SCF and PCL logs to 5 gives the following output:

root@tegra-ubuntu:/home/nvidia# /usr/sbin/nvargus-daemon 
=== NVIDIA Libargus Camera Service (0.99.33)=== Listening for connections...=== gst-launch-1.0[3137]: Connection established (FFFFB7A2D900)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
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. ----
(NvOdmDevice) Error SymbolNotFound:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function loadModeProperties(), line 791)
(NvOdmDevice) Error SymbolNotFound:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function loadModeList(), line 578)
(NvOdmDevice) Error SymbolNotFound:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 124)
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 0. (error 0x30009)
NvPclOpen: PCL Open Failed. Error: 0xf
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 689)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 453)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 333)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function getSource(), line 505)
=== gst-launch-1.0[3137]: CameraProvider initialized (0xffffb0531250)=== gst-launch-1.0[3137]: CameraProvider destroyed (0xffffb0531250)=== gst-launch-1.0[3137]: Connection closed (FFFFB7A2D900)=== gst-launch-1.0[3137]: Connection cleaned up (FFFFB7A2D900)^C
root@tegra-ubuntu:/home/nvidia# export enableCamScfLogs=5
root@tegra-ubuntu:/home/nvidia# export enableCamPclLogs=5
root@tegra-ubuntu:/home/nvidia# /usr/sbin/nvargus-daemon 
=== NVIDIA Libargus Camera Service (0.99.33)=== Listening for connections...=== gst-launch-1.0[3180]: Connection established (FFFF847CF900)Thread 1 getting next capture
Thread 1 is waiting
Thread 2 getting next capture
Thread 2 is waiting
Thread 3 getting next capture
Thread 3 is waiting
Thread 4 getting next capture
Thread 4 is waiting
Thread 5 getting next capture
Thread 5 is waiting
Thread 6 getting next capture
Thread 6 is waiting
Thread 7 getting next capture
Thread 7 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 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(0xffff7c57ae90)
getInstance: s_instance(0xffff7c57ae90)
subscribe: SensorType(gyroscope)
subscribe: create SensorType(gyroscope) sensor(0xffff7c40dbe0)
subscribe: SensorType(accelerometer)
subscribe: create SensorType(accelerometer) sensor(0xffff7c3ee070)
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
NvPclModuleListInitialize: numBuiltinModules 1 11
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition -- Name: imx567_rear_imx567
NvPclHwPrintModuleDefinition -- Position: 0
NvPclHwPrintModuleDefinition -- CalibrationData Found: 1
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule -- HwCamSubModule[0].DevName: imx567 2-0036
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: numBuiltinModules 1 22
NvPclModuleListInitialize: NvPclModule list[0]: imx567_rear_imx567 position 0 numBuiltinModules 1
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclModuleListInitialize: numPlugableModules 1 +++
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclHwAddModules isVirtual 1 ^^^^^^^^
NvPclHwScanExternalCameras -- adding video0 to discover list
NvPclHwAddModules isVirtual 1 ^^^^^^^^
NvPclHwAddModules isVirtual 0 ^^^^^^^^
NvPclHwAddModules isVirtual 0 ^^^^^^^^
NvPclModuleListInitialize: numPlugableModules 0 ---
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
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
setHotplugCallback: Registered new callback client
NvPclSetHotplugCallback: ----------------------
 hotPlugfunc: reading from inotify FD, Thread waiting 
numSources: numSources 1 

numSources: numSources 1 

numSources: numSources 1 

getSource: index 0 and numSources 1

numSources: numSources 1 

numSources: numSources 1 


 addSourceByIndex: index 0 and guid 0ud 

NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 0 match at index[0]
NvPclHwInitializeModule: allocate overrides pathname @ 0xffff7c4b4560
NvPclHwInitializeModule: allocate overrides pathname @ 0xffff7c5799b0
NvPclHwInitializeModule: allocate overrides pathname @ 0xffff7c548800
NvPclHwInitializeModule: allocate overrides pathname @ 0xffff7c4ba9e0
NvPclHwInitializeModule: allocate overrides pathname @ 0xffff7c5f72c0
NvPclHwInitializeModule: allocate overrides pathname @ 0xffff7c5f8350
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16
CheckOverridesPermissions: stat(/Calib/camera_override.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/camera_overrides.isp] 2/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/camera_overrides.isp] 5/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/imx567_rear_imx567.isp] 6/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/imx567_rear_imx567.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imx567_rear_imx567.isp] 7/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/imx567_rear_imx567.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imx567_rear_imx567.isp] 8/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/imx567_rear_imx567.isp) call failed
---- 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/vendor/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/vendor/nvcam/settings/imx567_rear_imx567.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/imx567_rear_imx567.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/imx567_rear_imx567.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]
OFDPropertyCopyToLong: could not read property [has-eeprom]
OFDPropertyGetString: could not read property [sync_sensor]
OFDPropertyGetString: could not read property [type]
loadSubType: Sensor type missing in DT, 206
OFDPropertyCopyToLong: could not read property [set_mode_delay_ms]
OFDPropertyCopyToLong: could not read property [mode0.vc_id]
OFDPropertyCopyToLongLong: could not read property [mode0.serdes_pix_clk_hz]
OFDPropertyCopyToFloat: could not read property [mode0.gain_step_pitch]
OFDPropertyCopyToLong: could not read property [mode0.mclk_khz]
(NvOdmDevice) Error SymbolNotFound:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function loadModeProperties(), line 791)
(NvOdmDevice) Error SymbolNotFound:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function loadModeList(), line 578)
(NvOdmDevice) Error SymbolNotFound:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 124)
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 @ 0xffff7c4ba9e0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xffff7c5f72c0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xffff7c5f8350
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xffff7c4b4560
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xffff7c5799b0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xffff7c548800
NvPclStateControllerOpen: Failed ImagerGUID 0. (error 0x30009)
NvPclStateControllerClose: Module imx567_rear_imx567 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 689)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 453)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 333)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function getSource(), line 505)
numSources: numSources 1 

=== gst-launch-1.0[3180]: CameraProvider initialized (0xffff7c5f7de0)=== gst-launch-1.0[3180]: CameraProvider destroyed (0xffff7c5f7de0)Stopping services...
Worker thread CaptureScheduler frameStart stop
Worker thread CaptureScheduler checkFramePending stop
Worker thread IspHw frameComplete stop
Worker thread V4L2CaptureScheduler issueCaptures stop
Worker thread V4L2CaptureScheduler checkCaptureComplete stop
NvPclShutdown: ++++++++++++++++++++++
NvPclModuleListShutdown: Client still conntected, skipping shutdown
NvPclShutdown: ----------------------
Worker thread PS handleRequests stop
unsubscribe: SensorType(gyroscope)
unsubscribe: gyroscope sensor(0xffff7c40dbe0)
unsubscribe: SensorType(accelerometer)
unsubscribe: accelerometer sensor(0xffff7c3ee070)
Services are stopped
closeInstance: ms_instance((nil))
NvPclRemoveHotplugCallback: ++++++++++++++++++++++
getHotplugMonitor: Getting hotplug monitor instance
 shutdownHotplug: Requesting thread exit
 hotPlugfunc: Read 16 bytes from inotify FD
 hotPlugfunc: A File was Modified 00008000 NAME :  CREATE : 00000100, DELETE : 00000200 IGNORED : 00008000 CLOSE_WRITE : 00000008
 hotPlugfunc: Exit thread
 hotPlugfunc: close failure error: 'Bad file descriptor' (9)
 hotPlugfunc -- 
 shutdownHotplug -- : shutdown of hotplug is complete 
Removed callback client
NvPclRemoveHotplugCallback: ----------------------
FiberScheduler: shutting down; 0 fibers still in map

FiberScheduler: thread 1 exiting
FiberScheduler: thread 9 exiting
FiberScheduler: thread 5 exiting
FiberScheduler: thread 10 exiting
FiberScheduler: thread 7 exiting
FiberScheduler: thread 11 exiting
FiberScheduler: thread 8 exiting
FiberScheduler: thread 12 exiting
FiberScheduler: thread 4 exiting
FiberScheduler: thread 6 exiting
FiberScheduler: thread 3 exiting
FiberScheduler: thread 2 exiting
FiberScheduler: thread 11 has been joined
FiberScheduler: thread 9 has been joined
FiberScheduler: thread 12 has been joined
FiberScheduler: thread 10 has been joined
FiberScheduler: thread 7 has been joined
FiberScheduler: thread 6 has been joined
FiberScheduler: thread 5 has been joined
FiberScheduler: thread 4 has been joined
FiberScheduler: thread 3 has been joined
FiberScheduler: thread 8 has been joined
FiberScheduler: thread 2 has been joined
FiberScheduler: thread 1 has been joined
=== gst-launch-1.0[3180]: Connection closed (FFFF847CF900)=== gst-launch-1.0[3180]: Connection cleaned up (FFFF847CF900)

And for reference, the device tree we’re using looks like this. Can confirm we have the correct devname here which seems to be the issue for multiple people before:

#define CAM0_RST_L	TEGRA194_MAIN_GPIO(H, 3)

/ {
	tegra-capture-vi {
		num-channels = <1>;
		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				reg = <0>;
				imx567_vi_in0: endpoint {
					port-index = <0>;
					bus-width = <2>;
					remote-endpoint = <&imx567_csi_out0>;
				};
			};
		};
	};

	host1x@13e00000 {
		nvcsi@15a00000 {
			num-channels = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			channel@0 {
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						imx567_csi_in0: endpoint@0 {
							port-index = <0>;
							bus-width = <2>;
							remote-endpoint = <&imx567_imx567_out0>;
						};
					};
					port@1 {
						reg = <1>;
						imx567_csi_out0: endpoint@1 {
							remote-endpoint = <&imx567_vi_in0>;
						};
					};
				};
			};
		};
	};

	gpio@2200000 {
		camera-control-output-low {
			gpio-hog;
			output-low;
			gpios = <CAM0_RST_L 0>;
			label = "cam0-rst";
		};
	};

	i2c@3180000 {
		imx567_cam0: imx567_a@36 {
			compatible = "nvidia,imx567";

			reg = <0x36>; // todo... determine this
			devnode = "video0";
			reset-gpios = <&tegra_main_gpio CAM0_RST_L GPIO_ACTIVE_HIGH>;

			physical_w = "6.68";
			physical_h = "5.75";

			sensor_model ="imx567";

			post_crop_frame_drop = "0";

			use_decibel_gain = "true";

			delayed_gain = "true";

			use_sensor_mode_id = "true";

			limit_analog_gain = "false";

			mode0 {/*mode IMX567_MODE_2472X2064_30FPS*/
				num_lanes = "2";
				tegra_sinterface = "serial_a";
				phy_mode = "DPHY";
				discontinuous_clk = "no";
				dpcm_enable = "false";
				cil_settletime = "0";
				dynamic_pixel_bit_depth = "10";
				csi_pixel_bit_depth = "10";
				mode_type = "bayer";
				pixel_phase = "rggb";

				active_w = "2472";
				active_h = "2064";
				readout_orientation = "0";
				line_length = "2472";
				inherent_gain = "1";
				pix_clk_hz = "118800000"; // 594 Mbps * 2 lanes / 10 bits/pix

				gain_factor = "10";
				min_gain_val = "0"; /* 0dB */
				max_gain_val = "480"; /* 48dB */
				step_gain_val = "1"; /* 0.1 */
				default_gain = "0";
				min_hdr_ratio = "1";
				max_hdr_ratio = "1";
				framerate_factor = "1000000";
				min_framerate = "20300000"; /* 1.5 */
				max_framerate = "20300000"; /* 30 */
				step_framerate = "1";
				default_framerate= "20300000";
				exposure_factor = "1000000";
				min_exp_time = "30"; /* us */
				max_exp_time = "660000"; /* us */
				step_exp_time = "1";
				default_exp_time = "33334";/* us */
				embedded_metadata_height = "1"; 
			};
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					reg = <0>;
					imx567_imx567_out0: endpoint {
						port-index = <0>;
						bus-width = <2>;
						remote-endpoint = <&imx567_csi_in0>;
					};
				};
			};
		};
	};
};

/ {

	tegra-camera-platform {
		compatible = "nvidia, tegra-camera-platform";

		num_csi_lanes = <2>;
		max_lane_speed = <1500000>;
		min_bits_per_pixel = <10>;
		vi_peak_byte_per_pixel = <2>;
		vi_bw_margin_pct = <25>;
		max_pixel_rate = <300000>;
		isp_peak_byte_per_pixel = <5>;
		isp_bw_margin_pct = <25>;

		modules {
			module0 {
				status="okay";
				badge = "imx567_rear_imx567";
				position = "rear";
				orientation = "0";
				drivernode0 {
					status="okay";
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver v4l2 device name */
					devname = "imx567 2-0036";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/i2c@3180000/imx567_a@36";
				};
			};
		};
	};
};

What could be the issue here? Right now we have the driver as a loadable kernel module that we insmod manually. nvargus_nvraw --lps also does not show any cameras when /dev/video0 exists and we can stream with v4l2-ctl. Boosting clocks also doesn’t change anything.

Any help would be much appreciated, thank you!

hello shreeyam,

could you please also check sensor format dumps, $ v4l2-ctl -d /dev/video0 --list-formats-ext.
please also try configure higher stream-count for fetching buffers for a short while to verify the camera stream,
$ v4l2-ctl -d /dev/video0 --set-fmt-video=width=2472,height=2064,pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=100


if above v4l command works.
according to the failure. it’s camera software cannot initial camera device.

since this is not ordinary sensor mode (i.e. 2472x2064@20-fps)
please try again to assign the mode settings to gst pipeline, here’s command to disable preview and shows frame-rate only.
for example,
$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=2472, height=2064, framerate=20/1, format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v

Hi JerryChang,

We ended up finding the issue and can stream from argus now. V4L2 commands were fine.

In case anyone finds this thread on Google, I didn’t have mclk_khz in the device tree as initially I thought if we are using an external oscillator for the camera that we wouldn’t need it. A closer look at the documentation however shows that it is required even when using an external oscillator, I imagine since it uses the mclk value to calculate ISP clock rates.

Thanks for the support! :)

thanks for sharing, glad to know it works.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.