Argus can not interact with CSI IMX477 camera module on Jetson Orin Nano

I am using Jetson Orin Nano, which has an IMX477 camera, I am accessing my server remotely by SSH.
Here are some outputs of the following commands -

  1. v4l2-ctl --list-devices -
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca):
        /dev/media0

vi-output, imx477 10-001a (platform:tegra-capture-vi:1):
        /dev/video0
  1. v4l2-ctl --stream-mmap -c bypass_mode=0
<<<<<<<<<<<<<<<<<<<<<<< 21.92 fps
<<<<<<<<<<<<<<<<<<<<<< 21.92 fps
<<<<<<<<<<<<<<<<<<<<<< 21.92 fps
<<<<<<<<<<<<<<<<<<<<<< 21.92 fps
<<<<<<<<<<<<<<<<<<<<<< 21.92 fps
<<<<<<<<<<<<<<<<<<<^C
  1. sudo systemctl status nvargus-daemon
● nvargus-daemon.service - Argus daemon
     Loaded: loaded (/etc/systemd/system/nvargus-daemon.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-12-11 12:51:47 IST; 3min 48s ago
   Main PID: 5567 (nvargus-daemon)
      Tasks: 1 (limit: 8814)
     Memory: 2.2M
        CPU: 12ms
     CGroup: /system.slice/nvargus-daemon.service
             └─5567 /usr/sbin/nvargus-daemon
  1. lsof /dev/video0-
lsof: WARNING: can't stat() overlay file system /var/lib/docker/overlay2/596891717e0e9ad59d1242850e3a21037e6ce6a544a4dd1d32cf78f83c7e0137/merged
      Output information may be incomplete.
lsof: WARNING: can't stat() nsfs file system /run/docker/netns/719def1c73db
      Output information may be incomplete.
lsof: WARNING: can't stat() overlay file system /var/lib/docker/overlay2/075f31b382737831001619b32003256c5984bbc373b81465e24b95190a01c5cb/merged
      Output information may be incomplete.
lsof: WARNING: can't stat() nsfs file system /run/docker/netns/bef001f73794
      Output information may be incomplete.
lsof: WARNING: can't stat() overlay file system /var/lib/docker/overlay2/32c4bc50154ba828ae0bcff54042f47dbd7a299bd7ffb52f1a30bb57abe7c7e2/merged
      Output information may be incomplete.
lsof: WARNING: can't stat() nsfs file system /run/docker/netns/ba9cc4f6870b
      Output information may be incomplete.
lsof: WARNING: can't stat() overlay file system /var/lib/docker/overlay2/56ff1861f9e906575b0dd950da344f1173c4e434c560d388f3f42f87ca9e8135/merged
      Output information may be incomplete.
lsof: WARNING: can't stat() nsfs file system /run/docker/netns/1c81dafadf1d
      Output information may be incomplete.
lsof: WARNING: can't stat() overlay file system /var/lib/docker/overlay2/fe31cfdb54f60036b1aa5c7080b96a95c72efabe7b2d1677e403c3843014dfda/merged
      Output information may be incomplete.
lsof: WARNING: can't stat() nsfs file system /run/docker/netns/394a81aefbec
      Output information may be incomplete.
lsof: WARNING: can't stat() overlay file system /var/lib/docker/overlay2/f58ed901a8cc5a79f6e4db6471393f5d7d9efc9fe8ce6a9c36313b3274b15abd/merged
      Output information may be incomplete.
lsof: WARNING: can't stat() nsfs file system /run/docker/netns/bce9144c44e8
      Output information may be incomplete.
lsof: WARNING: can't stat() overlay file system /var/lib/docker/overlay2/9495ca329212625681d4d237fabe2b00ef42cdfdcedd5a9697c1bb47b629a7e4/merged
      Output information may be incomplete.
lsof: WARNING: can't stat() nsfs file system /run/docker/netns/9cc502e665b9
      Output information may be incomplete.
  1. nvargus_nvraw --lps -
nvargus_nvraw version 1.15.0
("nvargus_nvraw") Error BadParameter (0x04): getCameraDevices() failed (in capture_nvraw/src/mobile/
    ArgusNvRawCapture.cpp, func initialize(), line 71)
(Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 277)
(Argus) Error EndOfFile: Receive worker failure, notifying 1 waiting threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 350)
(Argus) Error InvalidState: Argus client is exiting with 1 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 366)
(Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 379)
(Argus) Error EndOfFile: Client thread received an error from socket (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 145)
(Argus) Error EndOfFile:  (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
("nvargus_nvraw") Error BadParameter (0x04): Unable to initialize (propagating from capture_nvraw/src/mobile/main.cpp,
     func main(), line 73)
  1. v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'RG10' (10-bit Bayer RGRG/GBGB)
                Size: Discrete 4032x3040
                        Interval: Discrete 0.048s (21.000 fps)
                Size: Discrete 3840x2160
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.017s (60.000 fps)

But this command is giving error -

  1. gst-launch-1.0 nvarguscamerasrc ! ‘video/x-raw(memory:NVMM)’ ! nvvidconv ! queue ! fpsdisplaysink video-sink=fakesink text-overlay=false -v
nvbufsurftransform: Could not get EGL display connection
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = true
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:792 No cameras available
/GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
Redistribute latency...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = true
Got EOS from element "pipeline0".
Execution ended after 0:00:00.004065855
Setting pipeline to NULL ...
Freeing pipeline ...
(Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 277)
(Argus) Error EndOfFile: Receive worker failure, notifying 1 waiting threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 350)
(Argus) Error InvalidState: Argus client is exiting with 1 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 366)
(Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 379)
(Argus) Error EndOfFile: Client thread received an error from socket (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 145)
(Argus) Error EndOfFile:  (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)

Looks like argus doesn’t recognize the camera sensor.
Have you modify the device tree?
What’s the BSP version?

I checked the BSP version with -

cat /etc/nv_tegra_release

output -

R36 (release), REVISION: 3.0, GCID: 36923193, BOARD: generic, EABI: aarch64, DATE: Fri Jul 19 23:24:25 UTC 2024

KERNEL_VARIANT: oot

TARGET_USERSPACE_LIB_DIR=nvidia
TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia

Initially lsof /dev/video0 gave a list of tasks occupying the camera, I terminated those, that’s it.

On devkit or customized carrier board?
Maybe flash whole system by sdkmanager again to try.

Thanks

By now I have debugged that the libargus library is not working, as v4l2-ctl is capturing RG10 Bayer format raw images. Is there is way I can view those images just to confirm my hardware or something in the low level is not broken? I do not want to use libargus for this purpose then i can be sure of the thing.

You can get the raw image and use tools to check it.

Can you suggest some tools to process .raw format files and how to do that?

You can try 7yuv.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.