工具/软件:
尊敬的 TI 社区
我在这里指的是最新的 am62a Linux SDK 文档
dev.ti.com/.../dev-use-camera.html
有人可以帮助完成步骤 6 吗
它应该为 dtb-$(CONFIG_ARCH_K3)+= 文档中提到的.dtso、
或 dtb-$(CONFIG_arch_K3)+= .dtbo
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
尊敬的 TI 社区
我在这里指的是最新的 am62a Linux SDK 文档
dev.ti.com/.../dev-use-camera.html
有人可以帮助完成步骤 6 吗
它应该为 dtb-$(CONFIG_ARCH_K3)+= 文档中提到的.dtso、
或 dtb-$(CONFIG_arch_K3)+= .dtbo
另一个问题
按照相同的指南构建了内核、使用加载到 SD 卡上
sudo destdir=/media/$USER/rootfs2 make linux_install
ov5647.ko 未自动加载、
已尝试
root@am62axx-EVM:/usr/lib/modules/6.12.35-g72f48d59b8f0-dirty/kernel/drivers/media/i2c、insmod ov5647.ko
并得到了这些误差
[166.121794] ov5647:未知符号 v4l2_async_unregister_subdev (err –2)
[ 166.128746] ov5647:未知符号__v4l2_async_register_subdev (err –2)
[ 166.135553] ov5647:未知符号 v4l2_fwnode_Endpoint_parse (err –2)
insmod:错误:无法在模块中插入模块 ov5647.ko:未知符号
在 uEnv.txt 中添加叠加层后
启动时加载传感器内核模块、但收到这些错误消息
[ 7.416799] virtio_rpmsg_bus virtio1:创建通道 rpmsg_chrdev 地址 0xd
[ 7.431059] ov5647 4-0036:写入 SENSOR_OE_ENABLE_REGS 错误
[7.432289] rproc-virtio rproc-virtio.8.auto: registered virtio1 (type 7)
[7.437580] ov5647 4-0036:带有驱动程序 ov5647 的探测器失败、错误为–121
[7.443694] Remoteproc remoteproc2:远程处理器 78000000.r5f 现已连接
谢谢 Dilna K
现在一切看起来都很好、我已经使用捕获了原始 BGGR10 帧
yavta -c -Fcapture -s 640x480 -f SBGGR10 /dev/video3 -c20
使用基本 python 脚本、我已经将帧解压缩并转换为 png、图片看起来更绿色、但它可以验证驱动程序/传感器是否正常工作、
https://dev.ti.com/tirex/explore/content/am62ax_academy_10_01_00_00/_build_am62ax_academy_10_01_00_00/source/linux/ch-develop/dev-use-camera.html#configure-camera-parameters
参考这里的最后一步,我无法找到 ov5647 目录下的 opt/imaging,你能帮助这个步骤,我想捕捉像这样的视频
gst-launch-1.0 -v v4l2src device=/dev/video3
尊敬的 Farrukh:
默认情况下、 ov5647 目录不在 opt/imaging 下、您必须生成它。 为此、请参阅以下主题
此致、
Dilna k
首先、我从论坛上的另一个线程复制了该目录 、并 在 执行时更新了 tiovx_sensor_module 和 gsttiovxisp
GST-CHECK-1.0 tiovxisp
我们都会得到这些错误
错误:./gst-libs/gst/tiovx/gsttiovxcontext.c:146:gst_tiovx_cont[ 28.528110]审计:type=1701 审计 (1757394109.429:26):auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=1607 comm=“gst-checking-1.0" exe="“ exe="/usr/bin/gst-inspect-1.0“/usr/bin/gst-inspect-1.0 sig =6 res=1
EXT_init:置为无效失败:(0 == ret)
[28.555907] audit: type=1334 audit(1757394109.457:27):prog-id=23 op=load
1861.950002 s:app_log:错误:无法映射内存@ 0xa1000[28.568195]审计:type=1334 审计 (1757394109.469:28):prog-id=24 op=load
000 个大小 262144 字节!!!
应用程序:错误:日志写入器 init fai[ 28.580512]审核:type=1334 audit (1757394109.481:29):prog-id=25 op=load
LED!!!
app_log:错误:无法映射大小为 3288576 字节的内存@ 0xa2000000!!
应用程序:错误:文件 IO 写入器初始化失败!!!
应用程序:初始化...完成!!
保释! 错误:../gst-libs/gst/tiovx/gsttiovxcontext.c:146:gst_tiovx_context_init:断言失败:(0 == ret)
已中止(核心已转储)
root@am62axx-EVM:/opt/edgeai-gst-apps #[ 29.555037] audit:type=1334 audit (1757394110.457:30):prog-id=25 op=unload
[29.562043]审计:type=1334 审计 (1757394110.457:31):prog-id=24 op=unload
[29.569012]审计:type=1334 审计 (1757394110.457:32):prog-id=23 op=unload
尊敬的 Farrukh:
解决该错误 app_log:错误:无法映射大小为 3288576 字节的内存@ 0xa2000000!!
此致、
Dilna K
谢谢 Dilna K 它解决了内存问题,
gst-launch-1.0 -v v4l2src device=/dev/video3 io-mode=dmabuf-import ! \ > video/x-bayer, width=640, height=480, framerate=30/1, format=bggr10 ! \ > tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="SENSOR_ONSEMI_OV5647" \ > dcc-isp-file=/opt/imaging/SENSOR_ONSEMI_OV5647/linear/dcc_viss.bin sink_0::dcc-2a-file=/opt/imaging/SENSOR_ONSEMI_OV5647/linear/dcc_2a.bin format-msb=9 ! \ > video/x-raw, format=NV12, width=640, height=480, framerate=30/1 ! kmssink driver-name=tidss APP: Init ... !!! 4007.669070 s: MEM: Init ... !!! 4007.669134 s: MEM: Initialized DMA HEAP (fd=8) !!! 4007.669289 s: MEM: Init ... Done !!! 4007.669304 s: IPC: Init ... !!! 4007.687724 s: IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 4007.692215 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 4007.692372 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR 4007.692397 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING 4007.692444 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO 4007.693212 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-0 4007.693542 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-1 4007.693817 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-2 4007.694078 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-3 4007.694106 s: VX_ZONE_INFO: [tivxInitLocal:202] Initialization Done !!! 4007.694116 s: VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... /GstPipeline:pipeline0/GstKMSSink:kmssink0: display-width = 1920 /GstPipeline:pipeline0/GstKMSSink:kmssink0: display-height = 1080 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-bayer, width=(int)640, height=(int)480, framerate=(fraction)30/1, format=(string)bggr10, interlace-mode=(string)progressive New clock: GstSystemClock /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-bayer, width=(int)640, height=(int)480, framerate=(fraction)30/1, format=(string)bggr10, interlace-mode=(string)progressive /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0.GstTIOVXIspPad:sink_0: caps = video/x-bayer, width=(int)640, height=(int)480, framerate=(fraction)30/1, format=(string)bggr10, interlace-mode=(string)progressive /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-bayer, width=(int)640, height=(int)480, framerate=(fraction)30/1, format=(string)bggr10, interlace-mode=(string)progressive /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0.GstTIOVXMisoPad:src: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1
嗨 Dilna K ,我得到了“GstPipeline:pipaine0/GstV4l2Src:v4l2src0:无法分配所需的内存“
任何高度赞赏的帮助,
迄今采取的步骤
ov5647_properties.txt 用于生成 DCC bin、生成的 bin 复制到 opt/imaging 目录
SENSOR_WIDTH 1920 SENSOR_HEIGHT 1080 # BIT_DEPTH may be 12, 10, or 8 for linear mode BIT_DEPTH 10 # 0=RGGB; 1=GRBG; 2=GBRG; 3=BGGR COLOR_PATTERN 3 WDR_MODE 0 WDR_BIT_DEPTH 20 WDR_KNEE_X 0,512 WDR_KNEE_Y 0,2048 BLACK_PRE 0 GAMMA_PRE 70 H3A_INPUT_LSB 0 BLACK_POST 0 SENSOR_ID 5647 PRJ_DIR ../../../../imaging/sensor_drv/src/ov5647 SENSOR_NAME ov5647 SENSOR_DCC_NAME SENSOR_ONSEMI_OV5647 YUV_GAMMA 0
应用了 media-ctl 命令
media-ctl -V '"ov5647 4-0036":0 [fmt:SBGGR10_1X10/1920x1080 field:none]' media-ctl -V '"cdns_csi2rx.30101000.csi-bridge":0 [fmt:SBGGR10_1X10/1920x1080 field:none]' media-ctl -V '"30102000.ticsi2rx":0 [fmt:SBGGR10_1X10/1920x1080 field:none]' media-ctl --set-v4l2 "'ov5647 4-0036':0[fmt:SBGGR10_1X10/1920x1080 field:none]"
media-ctl-p 的输出
media-ctl -p
Media controller API version 6.12.35
Media device information
------------------------
driver j721e-csi2rx
model TI-CSI2RX
serial
bus info platform:30102000.ticsi2rx
hw revision 0x1
driver version 6.12.35
Device topology
- entity 1: 30102000.ticsi2rx (7 pads, 7 links, 1 route)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev0
routes:
0/0 -> 1/0 [ACTIVE]
pad0: SINK
[stream:0 fmt:SBGGR10_1X10/1920x1080 field:none]
<- "cdns_csi2rx.30101000.csi-bridge":1 [ENABLED,IMMUTABLE]
pad1: SOURCE
[stream:0 fmt:SBGGR10_1X10/1920x1080 field:none]
-> "30102000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
pad2: SOURCE
-> "30102000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE]
pad3: SOURCE
-> "30102000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE]
pad4: SOURCE
-> "30102000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE]
pad5: SOURCE
-> "30102000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE]
pad6: SOURCE
-> "30102000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE]
- entity 9: cdns_csi2rx.30101000.csi-bridge (5 pads, 2 links, 1 route)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev1
routes:
0/0 -> 1/0 [ACTIVE]
pad0: SINK
[stream:0 fmt:SBGGR10_1X10/1920x1080 field:none colorspace:srgb]
<- "ov5647 4-0036":0 [ENABLED,IMMUTABLE]
pad1: SOURCE
[stream:0 fmt:SBGGR10_1X10/1920x1080 field:none colorspace:srgb]
-> "30102000.ticsi2rx":0 [ENABLED,IMMUTABLE]
pad2: SOURCE
pad3: SOURCE
pad4: SOURCE
- entity 15: ov5647 4-0036 (1 pad, 1 link, 0 routes)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev2
pad0: SOURCE
[stream:0 fmt:SBGGR10_1X10/1920x1080 field:none colorspace:srgb
crop.bounds:(16,16)/2592x1944
crop:(364,450)/1928x1080]
-> "cdns_csi2rx.30101000.csi-bridge":0 [ENABLED,IMMUTABLE]
- entity 21: 30102000.ticsi2rx context 0 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video2
pad0: SINK
<- "30102000.ticsi2rx":1 [ENABLED,IMMUTABLE]
- entity 27: 30102000.ticsi2rx context 1 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video3
pad0: SINK
<- "30102000.ticsi2rx":2 [ENABLED,IMMUTABLE]
- entity 33: 30102000.ticsi2rx context 2 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video4
pad0: SINK
<- "30102000.ticsi2rx":3 [ENABLED,IMMUTABLE]
- entity 39: 30102000.ticsi2rx context 3 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video5
pad0: SINK
<- "30102000.ticsi2rx":4 [ENABLED,IMMUTABLE]
- entity 45: 30102000.ticsi2rx context 4 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video6
pad0: SINK
<- "30102000.ticsi2rx":5 [ENABLED,IMMUTABLE]
- entity 51: 30102000.ticsi2rx context 5 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video7
pad0: SINK
<- "30102000.ticsi2rx":6 [ENABLED,IMMUTABLE]
已尝试 UDP 流式传输
gst-launch-1.0 v4l2src io-mode=dmabuf device=/dev/video3 ! video/x-bayer, width=1920, height=1080, format=bggr10, framerate=30/1 ! tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name=SENSOR_ONSEMI_OV5647 dcc-isp-file=/opt/imaging/SENSOR_ONSEMI_OV5647/linear/dcc_viss.bin sink_0::dcc-2a-file=/opt/imaging/SENSOR_ONSEMI_OV5647/linear/dcc_2a.bin format-msb=9 ! v4l2h264enc ! rtph264pay config-interval=1 pt=96 ! udpsink host=192.168.3.33 port=5000 -e
响应
APP: Init ... !!! 2443.985649 s: MEM: Init ... !!! 2443.985712 s: MEM: Initialized DMA HEAP (fd=8) !!! 2443.985854 s: MEM: Init ... Done !!! 2443.985870 s: IPC: Init ... !!! 2444.003622 s: IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 2444.007767 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 2444.007996 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR 2444.008020 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING 2444.008029 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO 2444.008741 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-0 2444.009025 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-1 2444.009305 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-2 2444.009608 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-3 2444.009662 s: VX_ZONE_INFO: [tivxInitLocal:202] Initialization Done !!! 2444.009673 s: VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory. Additional debug info: /usr/src/debug/gstreamer1.0-plugins-good/1.22.12/sys/v4l2/gstv4l2src.c(950): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Buffer pool activation failed Execution ended after 0:00:00.011013854 Setting pipeline to NULL ... ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error. Additional debug info: /usr/src/debug/gstreamer1.0/1.22.12/libs/gst/base/gstbasesrc.c(3134): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: streaming stopped, reason not-negotiated (-4) Freeing pipeline ... APP: Deinit ... !!! REMOTE_SERVICE: Deinit ... !!! REMOTE_SERVICE: Deinit ... Done !!! 2444.055991 s: IPC: Deinit ... !!! 2444.056632 s: IPC: DeInit ... Done !!! 2444.056680 s: MEM: Deinit ... !!! 2444.056690 s: DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes 2444.056707 s: DDR_SHARED_MEM: Free's : 0 free's of 0 bytes 2444.056722 s: DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes 2444.056741 s: MEM: Deinit ... Done !!! APP: Deinit ... Done !!!
谢谢
已 在 Ubuntu 计算机上启动服务器、IP 为 3.33
gst-launch-1.0 udpsrc port=5000 caps=“application/x-rtp、media=(string)video、clock-rate=(int)90000、encoding-name=(string)h264、payload=(int)96“! rtph264depay! 汤底鱼! 视频转换! autovideosink sync=false
还将 HDMI 显示屏连接到 开发套件、 以前曾尝试过类似的错误、
这肯定是 DCC 槽的一些兼容性问题、
我复制了 DCC 箱以获得 2592x1944 分辨率
尝试了完全相同的 Ctrl-v 步长和更新的分辨率、并尝试以该分辨率进行流式传输、帧速率降至 10fps、
视频现在正在成功流式传输,但它看起来黑,我只能看到指向相机的光,休息所有黑色。
但流媒体正在运行、数据按预期在 UDP 上传输。
下面是我下载 DCC 文件的另一个线程、 关于:SK-AM62A-LP:对大于 1920x1080 的源视频使用 H.264 编码器
但当我为相同的分辨率生成自己时、会出现相同的错误。
尊敬的 Farrukh:
1.您可以尝试使用“yavta"命令“命令即流式传输而不使用 ISP DCC 文件吗? 以便我们可以确认这是否是 DCC 文件问题。
2.您能否按照 TI ISP 调优指南中的步骤尝试生成与您的传感器相对应的 DCC 文件、然后重试?
ISP 调优指南: — https://www.ti.com/lit/an/sprad86a/sprad86a.pdf
此致、
Dilna K