I am testing the CSI camera functions on Orin Nano with Xavier NX carrier board P3518, the used camera is IMX477 compatible.
I setup the CSI camera to “Camera IMX477 Dual” by using utility jetson-io.py (menu “Configure Jetson 24pin CSI Connector” → “Configure for compatible hardware”), reboot the Orin Nano, and then, test the CSI camera with utility nvgstcapture.
When the IMX477 compatible camera is attached to interface CAM0 on the Xavier NX carrier board, the camera works as expected with nvgstcapture, the video is shown in the window as expected.
But when the IMX477 compatible camera is attached to interface CAM1 on the Xavier NX carrier board, the device /dev/video0 could be found, nvgstcapture starts normally, a black window is shown, there is no video output in the window, and the following error message is shown on the terminal which nvgstcapture starting:
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadExecute:694 NvBufSurfaceFromFd Failed.
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:247 (propagating)
May I learn from you what could be possible reason about the error message, and the way to resolve this issue?
we’ve also checked locally, it confirmed IMX477 working on CAM0 and CAM1 with Orin-Nano + P3509 devkit.
could you please double check the hardware connections, thanks
I learn from the Jetson Linux developer guide (Welcome — Jetson Linux Developer Guide documentation), section “Welcome” → " Devices Supported by This Document", in the column “Compatible Developer Kit”, there are lines:
Jetson Xavier NX Developer Kit (P3518-0000)
Includes the P3668-0000 module.
I presume the P3518 is Xavier NX Developer Kit, and I learn from the carrier board which I used for Orin Nano testing, its model number is P3518.
The JetPack 5.1.1 (rev. 1) is installed to the NVME on my Orin Nano (4GB) by using Nvidia SDK Manager, only Jetson Linux is installed, Jetson Runtime components and Jetson SDK components are not installed.
While the Jetson Linux is configured manually in its first boot, I log into the desktop, open a terminal window, start jetson-io.py with command “sudo /opt/nvidia/jetson-io/jetson-io.py” in this window, and select “Configure Jetson 24pin CSI Connector” → “Configure for compatible hardware” → “Camera IMX477 Dual” in the menu of jetson-io, “Save the pin changes”, and then “Save and reboot to reconfigure pins”.
After the Orin Nano reboots again, the IMX477 compatible camera is detected and the device “/dev/video0” could be found, then, I test it with utility nvgstcapture.
the error message, dmabuf_fd it’s related to buffer surfaces allocation failure, which may due to no sensor frames,
you may try an alternative ways to select sensor-id to enable the camera stream,
for example, $ gst-launch-1.0 nvarguscamerasrc sensor-id=X ! 'video/x-raw(memory:NVMM),framerate=30/1,format=NV12' ! nvvidconv ! xvimagesink
When the IMX477 camera is attached to the CSI interface CAM0, the video is shown in the display window, and the following log gst-launch0.log is gotten: gst-launch0.log (1.2 KB)
When the IMX477 camera is attached to the CSI interface CAM1, no video is shown in the display window, the display window is a black window, the following log gst-launch1.log is gotten: gst-launch1.log (1.8 KB)