Basler daA4200 30mci CSI/MIPI camera cannot be opened using nvgstcapture-1.0 in Jetson Nano 2gb

My board is Jetson Nano 2gb,

I buy a Basler daA4200 30mci CSI/MIPI camera
After installing the driver provided by basler(i.e. basler-dart-bcon-mipi-cep_1.0-for-nvidia-jetson-l4t-32.4)
I can successfully open the camera via basler pylon viewer.

However, when I would like to access the camera via the tools nvgstcapture-1.0, I got the follow error:

============================================================
ubuntu@ubuntu-desktop:/opt/nvidia/deepstream/deepstream-5.1/bin$ nvgstcapture-1.0
Encoder null, cannot set bitrate!
Encoder Profile = High
Supported resolutions in case of ARGUS Camera
(2) : 640x480
(3) : 1280x720
(4) : 1920x1080
(5) : 2104x1560
(6) : 2592x1944
(7) : 2616x1472
(8) : 3840x2160
(9) : 3896x2192
(10): 4208x3120
(11): 5632x3168
(12): 5632x4224

Runtime ARGUS Camera Commands:

Help : ‘h’
Quit : ‘q’
Set Capture Mode:
mo:
(1): image
(2): video
Get Capture Mode:
gmo
Set sensor orientation:
so:
(0): none
(1): Rotate counter-clockwise 90 degrees
(2): Rotate 180 degrees
(3): Rotate clockwise 90 degrees
Get sensor orientation:
gso
Set sensor mode:
smo: e.g., smo:1
Get sensor mode:
gsmo
Set Whitebalance Mode:
wb:
(0): off
(1): auto
(2): incandescent
(3): fluorescent
(4): warm-fluorescent
(5): daylight
(6): cloudy-daylight
(7): twilight
(8): shade
(9): manual
Get Whitebalance Mode:
gwb
Set Saturation (0 to 2):
st: e.g., st:1.25
Get Saturation:
gst
Set Exposure Compensation (-2 to 2):
ec: e.g., ec:-2
Get Exposure Compensation:
gec
Set Auto Whitebalance Lock:
awbl: e.g., awbl:0
Get Auto Whitebalance Lock:
awbl
Set Auto Exposure Lock:
ael: e.g., ael:0
Get Auto Exposure Lock:
gael
Set TNR Mode:
tnrm: e.g., tnrm:1
(0): OFF
(1): FAST
(2): HIGH QUALITY
Get TNR Mode:
gtnrm
Set TNR Strength (-1 to 1):
tnrs: e.g., tnrs:0.5
Get TNR Strength:
gtnrs
Set EE Mode:
eem: e.g., eem:1
(0): OFF
(1): FAST
(2): HIGH QUALITY
Get EE Mode:
geem
Set EE Strength (-1 to 1):
ees: e.g., ees:0.5
Get EE Strength:
gees
Set Auto Exposure Anti-Banding (0 to 3):
aeab: e.g., aeab:2
(0): OFF
(1): MODE AUTO
(2): MODE 50HZ
(3): MODE 60HZ
Get Auto Exposure Anti-Banding:
gaeab
Set Gain Range:
gr: e.g., gr:1 16
Get Gain Range:
ggr
Set Exposure Time Range:
etr: e.g., etr:34000 35000
Get Exposure Time Range:
getr
Set ISP Digital Gain Range:
dgr: e.g., dgr:2 152
Get ISP Digital Gain Range:
gdgr
Capture: enter ‘j’ OR
followed by a timer (e.g., jx5000, capture after 5 seconds) OR
followed by multishot count (e.g., j:6, capture 6 images)
timer/multihot values are optional, capture defaults to single shot with timer=0s
Start Recording : enter ‘1’
Stop Recording : enter ‘0’
Video snapshot : enter ‘2’ (While recording video)
Get Preview Resolution:
gpcr
Get Image Capture Resolution:
gicr
Get Video Capture Resolution:
gvcr

Runtime encoder configuration options:

Set Encoding Bit-rate(in bytes):
br: e.g., br:4000000
Get Encoding Bit-rate(in bytes):
gbr
Set Encoding Profile(only for H.264):
ep: e.g., ep:1
(0): Baseline
(1): Main
(2): High
Get Encoding Profile(only for H.264):
gep
Force IDR Frame on video Encoder(only for H.264):
Enter ‘f’

bitrate = 4000000
Encoder Profile = High
Encoder control-rate = 1
Encoder EnableTwopassCBR = 0
Opening in BLOCKING MODE
Opening in BLOCKING MODE
** Message: 10:25:01.540: main:4670 iterating capture loop …
NvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:645 No cameras available

(nvgstcapture-1.0:961): GStreamer-CRITICAL : 10:25:01.780: gst_mini_object_set_qdata: assertion ‘object != NULL’ failed
^C
Message: 10:25:14.641: <_intr_handler:4261> User Interrupted…

===========================================================

Is that basler camera cannot be access via Nvidia API?
Thank you for your help.

Below message tell the dts file have problem report the camera device to camera framework(Argus),
I would suggest consult with vendor to get the root cause.

Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:645 No cameras available

For the dts file,
since in basler driver package, there is no proper dts for nano2gb, I change the one for nano, as follows:

===============================================================

// SPDX-Licence-Identifer: GPL-2.0-only

/dts-v1/;
/plugin/;

/ {
overlay-name = “Basler camera overlay”;
compatible = “nvidia,p3542-0000+p3448-0003”, “nvidia,jetson-nano”, “nvidia,tegra210”;

/* Dual camera */
fragment@0 {
	target-path = "/cam_i2cmux";
	__overlay__ {
		i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;

			status = "okay";

			basler_camera0: basler_camera@36 {
				reg = <0x36>;
			};
		};

		i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;

			basler_camera1: basler_camera@36 {
				reg = <0x36>;
			};
		};
	};
};

fragment@1 {
	target = <&basler_camera0>;
	__overlay__ {
		compatible = "basler,basler-camera";
		physical_w = "3.680";
		physical_h = "2.760";
		sensor_model = "basler-mcm";
		devnode = "video0";
		status = "okay";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				basler_camera_out0: endpoint {
					port-index = <0>;
					bus-width = <2>;
					remote-endpoint = <&rbpcv2_imx219_csi_in0>;
					data-lanes = <1 2>;
					clock-lanes = <0>;
					link-frequencies = /bits/ 64 <600000000>;
				};
			};
		};
	};
};

fragment@2 {
	target = <&basler_camera1>;
	__overlay__ {
		compatible = "basler,basler-camera";
		physical_w = "3.680";
		physical_h = "2.760";
		sensor_model = "basler-mcm";
		devnode = "video1";
		status = "okay";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				basler_camera_out1: endpoint {
					port-index = <0>;
					bus-width = <2>;
					remote-endpoint = <&rbpcv2_imx219_csi_in1>;
					data-lanes = <1 2>;
					clock-lanes = <0>;
					link-frequencies = /bits/ 64 <600000000>;
				};
			};
		};
	};
};

fragment@3 {
	target = <&i2c7>;
	__overlay__ {
		/* NOTE: The base device tree (tegra210-soc-base.dtsi) configures the clock
		 * frequency of this I2C bus to 400kHz although the USB hub chip (RTS5411S)
		 * is connected to it via it's SMBus interface which only supports clock
		 * frequencies up to a maximum of 100kHz.  With our cameras we observed
		 * problems with the I2C communication when no USB devices are connected
		 * while it works fine with a USB device connected. Reducing the clock to
		 * 100kHz makes it work reliably in both cases
		 */
		clock-frequency = <100000>;
	};
};

fragment@4 {
	target-path = "/plugin-manager";
	__overlay__ {

// fragement@9 {
// ids = “<3448-0003-000”;
//
// /* IMX219 single sensor module /
// override@2 {
// target = <&imx219_single_cam0>;
// overlay {
// status = “disabled”;
// };
// };
// override@3 {
// target = <&cam_module0>;
// overlay {
// status = “disabled”;
// };
// };
// override@4 {
// target = <&cam_module0_drivernode0>;
// overlay {
// status = “disabled”;
// };
// };
// override@5 {
// target = <&cam_module0_drivernode1>;
// overlay {
// status = “disabled”;
// };
// };
// /
Enable VI ports /
// override@6 {
// target = <&vi_base>;
// overlay {
// num-channels=<1>;
// };
// };
// override@7 {
// target = <&vi_port0>;
// overlay {
// status = “okay”;
// };
// };
// override@8 {
// target = <&rbpcv2_imx219_vi_in0>;
// overlay {
// status = “okay”;
// port-index = <0>;
// bus-width = <2>;
// remote-endpoint = <&rbpcv2_imx219_csi_out0>;
// };
// };
// /
Enable CSI ports */
// override@9 {
// target = <&csi_base>;
// overlay {
// num-channels=<1>;
// };
// };
// override@10 {
// target = <&csi_chan0>;
// overlay {
// status = “okay”;
// };
// };
// override@11 {
// target = <&csi_chan0_port0>;
// overlay {
// status = “okay”;
// };
// };
// override@12 {
// target = <&rbpcv2_imx219_csi_in0>;
// overlay {
// status = “okay”;
// port-index = <0>;
// bus-width = <2>;
// remote-endpoint = <&basler_camera_out0>;
// };
// };
// override@13 {
// target = <&csi_chan0_port1>;
// overlay {
// status = “okay”;
// };
// };
// override@14 {
// target = <&rbpcv2_imx219_csi_out0>;
// overlay {
// status = “okay”;
// remote-endpoint = <&rbpcv2_imx219_vi_in0>;
// };
// };
// };

		fragement@10 {
			ids = ">=3448-0003-000";

			/* IMX219 dual sensor module */
			override@4 {
				target = <&imx219_cam0>;
				_overlay_ {
					status = "disabled";
				};
			};
			override@5 {
				target = <&cam_module0>;
				_overlay_ {
					status = "disabled";
				};
			};
			override@6 {
				target = <&cam_module0_drivernode0>;
				_overlay_ {
					status = "disabled";
				};
			};
			override@7 {
				target = <&cam_module0_drivernode1>;
				_overlay_ {
					status = "disabled";
				};
			};
			override@8 {
				target = <&imx219_cam1>;
				_overlay_ {
					status = "disabled";
				};
			};
			override@9 {
				target = <&cam_module1>;
				_overlay_ {
					status = "disabled";
				};
			};
			override@10 {
				target = <&cam_module1_drivernode0>;
				_overlay_ {
					status = "disabled";
				};
			};
			override@11 {
				target = <&cam_module1_drivernode1>;
				_overlay_ {
					status = "disabled";
				};
			};

			/* Enable VI ports */
			override@12 {
				target = <&vi_base>;
				_overlay_ {
					num-channels=<2>;
				};
			};
			override@13 {
				target = <&vi_port0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@14 {
				target = <&vi_port1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@15 {
				target = <&rbpcv2_imx219_vi_in0>;
				_overlay_ {
					status = "okay";
					port-index = <0>;
					bus-width = <2>;
					remote-endpoint = <&rbpcv2_imx219_csi_out0>;
				};
			};
			override@16 {
				target = <&rbpcv2_imx219_vi_in1>;
				_overlay_ {
					status = "okay";
					port-index = <4>;
					bus-width = <2>;
					remote-endpoint = <&rbpcv2_imx219_csi_out1>;
				};
			};

			/* Enable CSI ports */
			override@17 {
				target = <&csi_base>;
				_overlay_ {
					num-channels = <2>;
				};
			};
			override@18 {
				target = <&csi_chan0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@19 {
				target = <&csi_chan0_port0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@20 {
				target = <&rbpcv2_imx219_csi_in0>;
				_overlay_ {
					status = "okay";
					port-index = <0>;
					bus-width = <2>;
					remote-endpoint = <&basler_camera_out0>;
				};
			};
			override@21 {
				target = <&csi_chan0_port1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@22 {
				target = <&rbpcv2_imx219_csi_out0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@23 {
				target = <&csi_chan1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@24 {
				target = <&csi_chan1_port0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@25 {
				target = <&rbpcv2_imx219_csi_in1>;
				_overlay_ {
					status = "okay";
					port-index = <4>;
					bus-width = <2>;
					remote-endpoint = <&basler_camera_out1>;
				};
			};
			override@26 {
				target = <&csi_chan1_port1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@27 {
				target = <&rbpcv2_imx219_csi_out1>;
				_overlay_ {
					status = "okay";
				};
			};
		};
	};
};

};

Check the context under the tegra-camera-platform{}

You mean I need to add something like this to the above dts file?

tegra-camera-platform {
    compatible = "nvidia, tegra-camera-platform";
    modules {
        module0 {
            badge = "imx185_bottom_liimx185";
            position = "bottom";
            orientation = "0";
            drivernode0 {
                pcl_id = "v4l2_sensor";
                devname = "imx185 30-001a";
                proc-device-tree =
      "/proc/device-tree/i2c@3180000/tca9546@70/i2c@0/imx185_a@1a";
            };
        };
    };
};

Yes, need add imx219 to it.