-
1 BSP environment:
TX2 jetpack 4.6 L4T R32.6.1 kernel 4.9 aarch64 -
2 operation:
DT modify & i2c config → done
nvcsi vi binding → done
root@t-desktop:~# media-ctl -p -d /dev/media0
Media controller API version 0.1.0
Media device information
------------------------
driver tegra-vi4
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 0.0.0
Device topology
- entity 1: 150c0000.nvcsi--1 (2 pads, 2 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev0
pad0: Sink
<- "ov9281 2-0060":0 [ENABLED]
pad1: Source
-> "vi-output, ov9281 2-0060":0 [ENABLED]
- entity 4: ov9281 2-0060 (1 pad, 1 link)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev1
pad0: Source
[fmt:SBGGR10_1X10/1280x800 field:none colorspace:srgb]
-> "150c0000.nvcsi--1":0 [ENABLED]
- entity 6: vi-output, ov9281 2-0060 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "150c0000.nvcsi--1":1 [ENABLED]
v4l2-ctl --all → done
root@t-desktop:~# v4l2-ctl --all
Driver Info (not using libv4l2):
Driver name : tegra-video
Card type : vi-output, ov9281 2-0060
Bus info : platform:15700000.vi:2
Driver version: 4.9.253
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Priority: 2
Video input : 0 (Camera 2: no power)
Format Video Capture:
Width/Height : 1280/800
Pixel Format : 'BG10'
Field : None
Bytes per Line : 2560
Size Image : 2048000
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
Camera Controls
frame_length 0x009a2000 (int) : min=1 max=65535 step=1 default=1820 value=1820 flags=slider
coarse_time 0x009a2001 (int) : min=1 max=1048575 step=1 default=10896 value=10896 flags=slider
group_hold 0x009a2003 (intmenu): min=0 max=1 default=0 value=0
hdr_enable 0x009a2004 (intmenu): min=0 max=1 default=0 value=0
otp_data 0x009a2006 (str) : min=0 max=64 step=2 value='0000000000000000000000000000000000000000000000000000000000000000' flags=read-only, has-payload
fuse_id 0x009a2007 (str) : min=0 max=32 step=2 value='00000000000000000000000000000000' flags=read-only, has-payload
gain 0x009a2009 (int) : min=1 max=8191 step=1 default=16 value=16 flags=slider
bypass_mode 0x009a2064 (intmenu): min=0 max=1 default=0 value=0
override_enable 0x009a2065 (intmenu): min=0 max=1 default=0 value=0
height_align 0x009a2066 (int) : min=1 max=16 step=1 default=1 value=1
size_align 0x009a2067 (intmenu): min=0 max=2 default=0 value=0
write_isp_format 0x009a2068 (int) : min=1 max=1 step=1 default=1 value=1
sensor_signal_properties 0x009a2069 (u32) : min=0 max=0 step=0 default=0 flags=read-only, has-payload
sensor_image_properties 0x009a206a (u32) : min=0 max=0 step=0 default=0 flags=read-only, has-payload
sensor_control_properties 0x009a206b (u32) : min=0 max=0 step=0 default=0 flags=read-only, has-payload
sensor_dv_timings 0x009a206c (u32) : min=0 max=0 step=0 default=0 flags=read-only, has-payload
low_latency_mode 0x009a206d (bool) : default=0 value=0
preferred_stride 0x009a206e (int) : min=0 max=65535 step=1 default=0 value=0
sensor_modes 0x009a2082 (int) : min=0 max=30 step=1 default=30 value=3 flags=read-only
v4l2-ctl --list-formats-ext → done
root@t-desktop:~# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'BG10'
Name : 10-bit Bayer BGBG/GRGR
Size: Discrete 1280x800
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 640x400
Interval: Discrete 0.017s (60.000 fps)
- 3 problems
3.1. we use the following command to build pipeline.
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), width=(int)640, height=(int)400, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! nvegltransform ! nveglglessink -e
however gst failed, and the console shows that:
Setting pipeline to PAUSED ...
Using winsys: x11
Pipeline is live and does not need PREROLL ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Setting pipeline to PLAYING ...
New clock: GstSystemClock
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 2592 x 1944 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 16.000000; Exposure Range min 34000, max 550385000;
GST_ARGUS: 2592 x 1458 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 16.000000; Exposure Range min 34000, max 550385000;
GST_ARGUS: 1280 x 720 FR = 120.000005 fps Duration = 8333333 ; Analog Gain range min 1.000000, max 16.000000; Exposure Range min 22000, max 358733000;
GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 2
Output Stream W = 1280 H = 720
seconds to Run = 0
Frame Rate = 120.000005
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD... Exiting...
CONSUMER: Done Success
Got EOS from element "pipeline0".
Execution ended after 0:00:04.082451992
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
GST_ARGUS: Cleaning up
GST_ARGUS: Done Success
(Argus) Error Timeout: (propagating from src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 137)
(Argus) Error Timeout: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
Setting pipeline to NULL ...
Freeing pipeline ...
what`s more, the gst-launch command above can work normally on the kit board.
3.2. two data lanes differential signals are captured by oscilloscope, however, the clock lane goes flatline.
Any help would be greatly appreciated.
yours
henry