No image capture from camera via FPD Link for Orin nano R36.3 module

hello akvadak66,

(1) did you always start v4l2 IOCTL first then testing gst pipeline with nvarguscamerasrc plugin?
could you please give it a try to reboot the system, and running gst pipeline directly?

(2) could you please also gather another logs from workable setup?
let’s compare the logs reported after IspHw frameComplete start.

Worker thread IspHw frameComplete start
SCF: Error NotSupported:  (propagating from src/services/capture/FusaCaptureIspHw.cpp, function openIspHw(), line 252)
SCF: Error NotSupported:  (propagating from src/services/capture/CaptureServiceDeviceIsp.cpp, function open(), line 188)
Worker thread IspHw frameComplete stop
SCF: Error NotSupported:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function initialize(), line 352)
SCF: Error InvalidState: Isp is not opened (in src/services/capture/CaptureServiceDeviceIsp.cpp, function close(), line 201)
SCF: Error NotSupported:  (propagating from src/services/capture/CaptureService.cpp, function startService(), line 644)
SCF: Error InvalidState: Queue mutex not initialized (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamerautils/inc/QueueImpl.h, function dequeue(), line 228)
SCF: Error NotSupported:  (propagating from src/components/ServiceHost.cpp, function startServices(), line 123)
Stopping services...

(3) BTW, set_mode_delay_ms should be added outside mode info.
please also try increasing the timeout values for verification.
for instance,


			imx477_a@10 {
				status = "okay";
				compatible = "ridgerun,imx477";
				reg = <0x10>;
				physical_w = "3.680";
				physical_h = "2.760";
				set_mode_delay_ms = "3000";
				sensor_model = "imx477";

Hello JerryChang.

We do not run v4l2 IOCTL before running the gst pipeline
We run gst pipeline directly, after system booting

We will add more later

We increased the time according to your advice.
Alas no result

hello akvadak66,

since Orin NX/Nano they’re sharing the same software stack, looking forward the logs from workable setup (to confirm there’re NotSupported errors as well)

Hello JerryChang.
I got the log of a working installation.
But when I run your commands below

sudo su 
# pkill nvargus-daemon
# export enableCamScfLogs=5
# export enableCamPclLogs=5
# nvargus-daemon 2>&1 | tee argus-output.log

Then start capturing the image, then the window with the image closes.
Is this how debug output is supposed to work?

If you just run the gst pipeline, there is an image capture.
Please check the debug output.
Thanks.
argus-output-nx.log (20.8 KB)

hello akvadak66,

it looks camera stream did not enabled.

(Argus) Error NotSupported: Failed to initialize EGLDisplay (in src/eglutils/EGLUtils.cpp, function getDefaultDisplay(), line 77)
(Argus) Error NotSupported: Failed to get default display (in src/api/EGLOutputStreamImpl.cpp, function initialize(), line 99)
(Argus) Error NotSupported:  (propagating from src/api/CaptureSessionImpl.cpp, function createEGLOutputStream(), line 987)
(Argus) Error InvalidState: Unknown stream deleted. (in src/api/CaptureSessionImpl.cpp, function outputStreamDeleted(), line 1104)
(Argus) Error NotSupported:  (propagating from src/api/CaptureSessionImpl.cpp, function createOutputStreamInternal(), line 849)

note,
you must configure those settings on the target directly to gather debug logs.

Hello JerryChang.
Thank you for your reply.

Strange, but the image is there in this case.

Could you please tell me how to adjust these settings?

Thanks

Hi akvadak66

We stumbled upon a similar issue with the Orin NX and the Orin Nano. Do you have the following line there, when flashing the device:

OVERLAY_DTB_FILE+=“,tegra234-p3768-0000+p3767-0000-dynamic.dtbo”;

Without this overlay, we also had a camera that did not work with the Orin Nano but worked with the Orin NX. Maybe someone from NVidia can elaborate which setting inside this overlay could have such an effect?

Kind regards

Hello, sevm89.

Yes, that’s a problem we’ve encountered too.
All due to the fact that in tegra234-p3768-0000+p3767-0000-dynamic.dtbo imx219 camera is prescribed.
It interferes with everything else.
We solved it the following way.

1.	In the sources for Orin NX find the file
hardware\nvidia\t23x\nv-public\overlay\tegra234-p3768-0000+p3767-0000-dynamic.dts
You need to comment out the lines 
//#include “tegra234-p3768-camera-rbpcv2-imx219.dtsi” and
//#include “tegra234-p3767-sku-handling.dtsi”.
2.	Build the device tree make dtbs 
How to do it is in the link below
https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/Kernel/KernelCustomization.html
3. find the compiled tegra234-p3768-0000+p3767-0000-dynamic.dtbo.
I have it here
nvidia-oot/device-tree/platform/gtntric-dts/dtbs/ tegra234-p3768-0000+p3767-0000-dynamic.dtbo
4.	Replace this file in the Linux distribution 
Linux_for_Tegra/kernel/dtb
6.	Re-flash the module

But this does not help in case of Orin Nano and camera connected to FPD Link

Hi JerryChang,

“note, you must configure those settings on the target directly to gather debug logs.”

*** Could you please provide moer details how to configure those settings?

Thank you very much!

hello akvadak66,

do you have physical access to your platform? you should setup those commands for nvargus-daemon to executed locally for gathering the logs.

you should not disable this, there’re specific settings for Orin Nano SKUs.

anyways, per r36.4 release note of [4.2. Device Registration] section.
it’s suggest to create a device tree overlay (DTB overlay or .dtbo) file to register the camera module.