Subject: Issues with IMX477 and IMX219 Cameras on Jetson Orin Nano Super Developer Kit - GStreamer Works but OpenCV Fails; Hot-Plugging Causes Crashes

Hello NVIDIA Community,

I’m a beginner with Jetson Orin and running into camera issues that didn’t occur on my previous setups (Jetson Nano and Raspberry Pi 5). Any help would be greatly appreciated—I’m trying to get a stable video stream into OpenCV, ideally from both cameras, but at least one.

Hardware Setup

  • Platform: Jetson Orin Nano Super Developer Kit (8 GB RAM)

  • Cameras:

    • IMX477 (UC-517 Rev D3) – Connected to CSI port 1 (sensor-id=1)

    • IMX219 – Connected to CSI port 0 (sensor-id=0)

  • Cameras are connected via CSI interface; tested individually and together—no difference in behavior.

Software Details

  • JetPack/L4T Version: From /etc/nv_tegra_release:

    text

    # R36 (release), REVISION: 4.7, GCID: 42132812, BOARD: generic, EABI: aarch64, DATE: Thu Sep 18 22:54:44 UTC 2025
    # KERNEL_VARIANT: oot
    TARGET_USERSPACE_LIB_DIR=nvidia
    TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia
    
  • Kernel: From uname -a:

    text

    Linux roman-desktop 5.15.148-tegra #1 SMP PREEMPT Fri Jul 4 06:53:27 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
    
  • nvargus-daemon Status (via sudo systemctl status nvargus-daemon):

    text

    ● nvargus-daemon.service - Argus daemon
         Loaded: loaded (/etc/systemd/system/nvargus-daemon.service; enabled; vendor preset: enabled)
         Active: active (running) since Wed 2025-11-05 11:32:51 EAT; 44min ago
       Main PID: 877 (nvargus-daemon)
          Tasks: 1 (limit: 8810)
           Memory: 31.0M
              CPU: 42ms
         CGroup: /system.slice/nvargus-daemon.service
                 └─877 /usr/sbin/nvargus-daemon
    
    Nov 05 11:32:51 roman-desktop systemd[1]: Started Argus daemon.
    
  • Loaded Modules (relevant, via lsmod | grep -i imx):

    text

    nv_imx477              24576  0
    tegra_camera          249856  4 nvhost_isp5,nvhost_nvcsi_t194,nv_imx477,nvhost_vi5
    

What Works

  • Basic GStreamer preview launches fine right after boot:

    text

    gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! nvvidconv ! nveglglessink -e
    
    • Shows live video on the monitor for both cameras (tested individually).

What Doesn’t Work

  1. OpenCV Integration Fails:

    • Can’t capture the stream in OpenCV. cap.isOpened() always returns False.

    • Test code:

      python

      import cv2
      
      pipeline = "nvarguscamerasrc sensor-id=0 ! video/x-raw(memory:NVMM), width=1920, height=1080, framerate=30/1 ! nvvidconv ! appsink"
      cap = cv2.VideoCapture(pipeline, cv2.CAP_GSTREAMER)
      
      print(cap.isOpened())  # Outputs: False
      
    • No frames can be read: ret, frame = cap.read() always fails.

  2. Hot-Plugging/Restarting Cameras Causes Crashes:

    • Cameras only initialize reliably on cold boot.

    • If I power off a camera (unplug/replug) and try to relaunch, it fails ~80% of the time.

    • Error on relaunch (from GStreamer or similar):

      text

      nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
      Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadExecute:734 NvBufSurfaceFromFd Failed.
      Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamerasrc.cpp, threadFunction:245 (propagating)
      Got EOS from element "pipeline0"
      
    • Results in black screen and pipeline crash. Only fix is a full reboot.

    • This happens regardless of whether cameras are connected together or separately.

Device Detection

  • From v4l2-ctl --list-devices:

    text

    NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca):
    	/dev/media0
    
    vi-output, imx477 10-001a (platform:tegra-capture-vi:1):
    	/dev/video1
    
    vi-output, imx477 9-001a (platform:tegra-capture-vi:2):
    	/dev/video0
    
    • Note: Only IMX477 devices listed? IMX219 might not be enumerating properly—any ideas?
  • I2C Detection on Bus 10 (via i2cdetect -y -r 10):

    text

    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- --
    
    • UU at 0x10/0x11 suggests some device (likely camera-related).
  • Kernel Logs (dmesg for camera-related, but requires sudo—output was permission-denied; can provide if needed):

    text

    dmesg: read kernel buffer failed: Operation not permitted
    
  • System Errors (via journalctl -b -p err | tail -20):

    text

    Nov 05 11:32:57 roman-desktop gnome-session-binary[1790]: GLib-GIO-CRITICAL: g_bus_get_sync: assertion 'error == NULL || *error == NULL' failed
    Nov 05 11:32:57 roman-desktop gnome-session-binary[1790]: GLib-GIO-CRITICAL: g_bus_get_sync: assertion 'error == NULL || *error == NULL' failed
    Nov 05 11:33:08 roman-desktop gdm-password][2034]: gkr-pam: unable to locate daemon control file
    Nov 05 11:33:10 roman-desktop systemd[2043]: Failed to start Application launched by gnome-session-binary.
    Nov 05 11:33:10 roman-desktop systemd[2043]: Failed to start Application launched by gnome-session-binary.
    Nov 05 11:33:10 roman-desktop systemd[2043]: Failed to start Application launched by gnome-session-binary.
    Nov 05 11:33:10 roman-desktop systemd[2043]: Failed to start Application launched by gnome-session-binary.
    Nov 05 11:33:13 roman-desktop systemd[2043]: Failed to start Application launched by gnome-session-binary.
    Nov 05 11:33:13 roman-desktop systemd[2043]: Failed to start Application launched by gnome-session-binary.
    Nov 05 11:33:16 roman-desktop gdm-launch-environment][1045]: GLib-GObject: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
    
    • Mostly GNOME-related; nothing obvious about cameras.

Goal

  • Stable video capture in OpenCV (at least from one camera, preferably both simultaneously).

  • Fix the hot-plug crash so I don’t need reboots every time.

I’ve searched the forums but couldn’t find exact matches for this combo (IMX477 + IMX219 on Orin Nano). Any suggestions on pipeline tweaks, driver configs, or workarounds? Happy to provide more logs (e.g., full dmesg with sudo) or test patches.

Thanks in advance!
-Roman

Hello,

Thanks for visiting the NVIDIA Developer Forums.
To ensure better visibility and support, I’ve moved your post to the Jetson category where it’s more appropriate

Cheers,
Tom

1 Like

Duplicated with Subject: Issues with IMX477 and IMX219 Cameras on Jetson Orin Nano Super Developer Kit - GStreamer Works but OpenCV Fails; Hot-Plugging Causes Crashes - Jetson & Embedded Systems / Jetson Orin Nano - NVIDIA Developer Forums

1 Like