We are bringing up a new carrier board for Xavier NX. We use the imx29 camera for testing. We can see the imx219 is configured and /dev/video0 is created. But when test the camera for video streaming, we result in the following error:
procerus-desktop$ gst-launch-1.0 nvarguscamerasrc sensor-id=$device ! "video/x-raw(memory:NVMM),width=1280,height=720" ! nvvidconv ! nvv4l2h264enc ! rtph264pay pt=96 ! udpsink host=$host port=$port
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:725 No cameras available
Redistribute latency...
NvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
Got EOS from element "pipeline0".
Execution ended after 0:00:00.011889824
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
In syslog, we see those errors:
Jul 21 12:54:42 procerus-desktop kernel: [ 198.552935] [RCE] WARNING: t194/isp5.c:901 [config_channel] "All error notifications not enabled: correctable=0x00 uncorrectable=0x00"
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: === NVIDIA Libargus Camera Service (0.98.3)=== Listening for connections...=== gst-launch-1.0[8742]: Connection established (7FAF5591D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: OFParserEnumerateDriverNode: v4l2_sensor: failed to parse device-tree to driver node
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: NvPclHwGetModuleList: No module data found
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: ---- imager: No override file found. ----
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: (NvOdmDevice) Error NotInitialized: hDev Table not initialized (in dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 97)
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: NvPclStartPlatformDrivers: Failed to start module drivers
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: NvPclStateControllerOpen: Failed ImagerGUID 0. (error 0x3)
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: NvPclOpen: PCL Open Failed. Error: 0xf
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 582)
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: SCF: Error BadParameter: (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 437)
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 305)
Jul 21 12:54:42 procerus-desktop nvargus-daemon[5862]: SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function getSource(), line 471)
It looks like the problem is in the device tree. But I just don’t know which node I should check. I dumped the device tree from target and upload it here. dtc-fromRunning (241.5 KB)
I did not see any error message from kernel log. The mediactrl output is as following:
procerus-desktop:~$ sudo media-ctl -p -d /dev/media0
[sudo] password for procerus:
Sorry, try again.
[sudo] password for procerus:
Media controller API version 0.1.0
Media device information
------------------------
driver tegra194-vi5
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 0.0.0
Device topology
- entity 1: imx219 30-0010 (1 pad, 1 link)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev0
pad0: Source
[fmt:SRGGB10_1X10/3264x2464 field:none colorspace:srgb]
-> "15a00000.nvcsi--1":0 [ENABLED]
- entity 3: 15a00000.nvcsi--1 (2 pads, 2 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev1
pad0: Sink
<- "imx219 30-0010":0 [ENABLED]
pad1: Source
-> "vi-output, imx219 30-0010":0 [ENABLED]
- entity 6: vi-output, imx219 30-0010 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "15a00000.nvcsi--1":1 [ENABLED]
@varun_pandithurai thanks for the prompt response. The target device does not have HDMI port and no monitor is connected to it. Do I need to modify the command you advised?
Hi @stuart.xu ,
The camera works fine as you can get output through v4l2-ctl.
I assume you are connected to the device through.
The streamer is not working maybe due to there is no x-server running on your kit, or you can try connect a display to it to work properly and view the output