Camera does not work as expected with Orin Nano
Issue Overview
Users are experiencing issues with the IMX477 camera when connected to the Orin Nano using the Xavier NX carrier board (P3518). The camera functions correctly when attached to CAM0, but fails to display video when connected to CAM1. The symptoms include a black window in the nvgstcapture utility and an error message indicating a failure in mapping buffer entries. Specifically, the error reads:
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamerasrc.cpp, threadExecute:694 NvBufSurfaceFromFd Failed.
The issue arises after configuring the camera via the jetson-io.py
utility, where users select "Camera IMX477 Dual" and reboot the device. Despite successful detection of the camera at /dev/video0
, no video output is produced on CAM1, affecting overall functionality and user experience.
Possible Causes
- Hardware Incompatibilities: The issue may stem from hardware differences between CAM0 and CAM1 on the Xavier NX carrier board.
- Configuration Errors: Incorrect configuration settings in
jetson-io.py
could lead to improper lane settings (2-lane vs. 4-lane). - Driver Issues: Potential bugs in the NVIDIA drivers or conflicts with JetPack versions could prevent proper camera operation.
- Environmental Factors: Power supply issues or overheating may affect camera performance.
- User Misconfigurations: Incorrect connections or settings by users during setup may lead to failures.
Troubleshooting Steps, Solutions & Fixes
-
Verify Hardware Connections:
- Ensure that the IMX477 camera is properly connected to CAM1. Check for any loose cables or incorrect orientations.
-
Check Camera Configuration:
- Use
jetson-io.py
to confirm that the correct lane configuration (2-lane or 4-lane) is set for the IMX477 camera. - Example command to check configuration:
cat /etc/nv_boot_control.conf
- Use
-
Gather System Information:
- Collect kernel logs for further analysis:
dmesg > klogs.txt
- Check device listing for camera:
v4l2-ctl --list-devices
- Collect kernel logs for further analysis:
-
Test Alternative Sensor IDs:
- If only one IMX477 camera is connected, try launching with different sensor IDs:
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),framerate=30/1,format=NV12' ! nvvidconv ! xvimagesink
- If only one IMX477 camera is connected, try launching with different sensor IDs:
-
Update JetPack and Drivers:
- Ensure you are using the latest version of JetPack (currently 5.1.1) and update drivers if necessary.
-
Isolate the Issue:
- If possible, test with another compatible camera or use a different carrier board (e.g., P3509) to determine if the problem persists.
-
Consult Documentation:
- Refer to the Jetson Linux Developer Guide for detailed instructions on supported devices and configurations.
-
Community Support:
- Engage with NVIDIA forums for additional troubleshooting tips or similar user experiences.
-
Best Practices:
- Regularly update software and drivers.
- Document hardware configurations for future reference.
Unresolved Aspects
Further investigation may be needed regarding specific driver issues related to sensor registration failures noted in kernel logs, such as:
imx477 10-001a: imx477_board_setup: error during i2c read probe (-121)
This indicates a potential I2C communication issue that may require deeper debugging or alternative configurations.