ubuntu
1
请教这个文件ipc-display*.conf 怎么判断当前系统用的哪一个, 该如何配置才能支持新的 resolution 的 sensor
codebase 中
./app/mediaserver/src/conf/rv1109/ipc-display*.conf
bin 中
/oem/usr/share/mediaserver/rv1109/ipc-display*.conf
参考如下截图,

更换 sensor 后camera 无法预览的完整 minicom 串口 log 如下.
我认为的报错部分, 是否是 ipc**.conf 配置错误导致的?
[ 0.620877] ov8858 1-0036: [naf] Detected OV008858 sensor, REVISION 0xb2
..................
mediase]r ver[987]: [flow_pipe.cpp][CrkieateFlow]:Create flow sources_stream failed
mediaserver[987]: [flow_pipe.cpp][CreateFplow]:flow param :
name=v4l2p_capture_stream
width=2688
height=1520
virtual_width=2688
virtual_height=1520
de0vice=rkispp_m_bypass
frame_:num=6
height=1520
output_d ata_type=image:nv12
use_libvo4l2=1
v4l2_capture_type=VIDuEO_CAPTURE
v4l2_mem_type=MEMORY_DMABUF
virtual_height=tp1520
virtual_width=2688
wiudth=2688
t:0x0 should euqal to input:3264x2448
[ 12.066922] rkispp0: output:2688x1520 should euqal to input:3264x2448
17 Nov 15:07:46 ntpdate[893]: step time server 119.28.183.184 offset 28800.223217 sec
完整 串口log 下载链接
https://klg.668168.xyz/home/share/naf_ov8858_mipi_debug.log.cap?token=bc850195173b8a260faaab5ceafcf18d
log会打印你用的是什么配置。
另外,如果你现在是调试sensor driver的话,建议用rkisp_demo来测试出图效果。
ubuntu
3
15018119129 发表于 2021-11-17 16:09
log会打印你用的是什么配置。
另外,如果你现在是调试sensor driver的话,建议用rkisp_demo来测试出图 …
谢谢, 已经找到了.
但修改后还是报这样的错误, 请教这个分辨率是在哪里配置的?
mediaserver[991]: [flow_pipe.cpp][CreateFlow]:flow param :
name=v4l2_capture_stream
width=2688
height=1520
virtual_width=268 8
virtual_height=1520
dev12ice=rkispp_m_bypass
frame_num=6
height=1520
output_dat.a_type=image:nv12
use_libv41l2=1
v4l2_capture_type=VIDE5O_CAPTURE
v4l2_mem_type=MEMORY_DMABUF
virtual_height=1520
vi3rtual_width=2688
width=2688
你是想点亮你的sensor?点亮sensor不要用ipc demo去搞,用rkisp_demo比较方便,或者v4l2-ctl
ubuntu
5
15018119129 发表于 2021-11-17 16:31
你是想点亮你的sensor?点亮sensor不要用ipc demo去搞,用rkisp_demo比较方便,或者v4l2-ctl
非常谢谢您的建议.
- v4l2-ctl 是我最早尝试的方法, 但卡在 dump raw 的命令使用上.
如下最后一步中, 请教v4l2-ctl -d /dev/video5 \ 这个 应该 dump哪个 videoID呢?
media-ctl -d /dev/media0 --set-v4l2 ‘“m01_f_ov8858 1-0036”:0[fmt:SBGGR10_1X10/3264x2448]’
media-ctl -d /dev/media1 --set-v4l2 ‘“rkisp-isp-subdev”:0[fmt:SBGGR10_1X10/3264x2448]’
media-ctl -d /dev/media1 --set-v4l2 ‘“rkisp-isp-subdev”:0[crop:(0,0)/3264x2448]’
media-ctl -d /dev/media1 --set-v4l2 ‘“rkisp-isp-subdev”:2[fmt:SBGGR10_1X10/3264x2448]’
media-ctl -d /dev/media1 -l ‘“rkisp-isp-subdev”:2->“rkisp-bridge-ispp”:0[0]’
// 等价于 media-ctl -d /dev/media1 -l ‘1:2->13:0[1]’
media-ctl -d /dev/media1 -l ‘“rkisp-isp-subdev”:2->“rkisp_mainpath”:0[1]’
v4l2-ctl -d /dev/video5
–set-ctrl ‘exposure=1216,analogue_gain=10’
–set-selection=target=crop,top=0,left=0,width=3264,height=2448
–set-fmt-video=width=3264,height=2448,pixelformat=BG10
–stream-mmap=3 --stream-to=/tmp/mp.raw.out --stream-count=1 --stream-poll
/oem/RKLAUNCH.sh 会决定设备加载哪个 mediaserver 的config,mediaserver必须要配置成功才能出预览,摄像头配置和屏幕配置都要,如果你没有屏幕就要用不带屏幕的 config,具体看脚本很清晰了
ubuntu
7
本帖最后由 ubuntu 于 2021-11-18 09:36 编辑
板蓝根 发表于 2021-11-18 09:08
/oem/RKLAUNCH.sh 会决定设备加载哪个 mediaserver 的config,mediaserver必须要配置成功才能出预览,摄像 …
谢谢回复.
您提到的这个文件中, 这段 code 中, 没有适配 3264X2448 的 4:3 sensor, 都是适配的 16:9 的 sensor resolution, 那若用 4:3 3264X2448 的 sensor , 这里需要修改吗? 或者哪里有类似sysconfig-8M.db 的文件可以使用?
if [ ! -f “/oem/sysconfig.db” ]; then
media-ctl -p -d /dev/media1 | grep 3840x2160
if [ $? -eq 0 ] ;then
ln -s -f /oem/sysconfig-4K.db /oem/sysconfig.db
fi
media-ctl -p -d /dev/media1 | grep 2688x1520
if [ $? -eq 0 ] ;then
ln -s -f /oem/sysconfig-2K.db /oem/sysconfig.db
fi
media-ctl -p -d /dev/media1 | grep 1920x1080
if [ $? -eq 0 ] ;then
ln -s -f /oem/sysconfig-1080P.db /oem/sysconfig.db
fi
media-ctl -p -d /dev/media1 | grep 2592x1944
if [ $? -eq 0 ] ;then
ln -s -f /oem/sysconfig-5M.db /oem/sysconfig.db
fi
fi
ubuntu
8
板蓝根 发表于 2021-11-18 09:08
/oem/RKLAUNCH.sh 会决定设备加载哪个 mediaserver 的config,mediaserver必须要配置成功才能出预览,摄像 …
从 RKLunch.sh 中看, 贵司默认的Core-1126-JD4 开发板当前走的是如下ipc-display-firefly.conf
if [ -z “$QUICKDISPLAY” ]; then
if [ $HasAudio -eq 1 ]; then
mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc-display-firefly.conf
然后我在ipc-display-firefly.conf 中把所有的 2688 1520 都替换为 3264 2448 依旧无法显示.
所以现在就没有思路了, 请教此平台中有办法判断 sensor 是否有正常吐 raw 数据吗? 以手机上的 debug 方法:
- 看 kernel log 是否有连续的 deque buffer, 或者看 sof eof mipi信号
- 尝试 dump raw 图判断
但 rv1106 找不到具体说明如何判断.
屏幕的配置也要改,mediaserver 也管屏幕输出
ubuntu
10
板蓝根 发表于 2021-11-19 13:05
屏幕的配置也要改,mediaserver 也管屏幕输出
我这边已经把"然后我在ipc-display-firefly.conf 中把所有的 2688 1520 都替换为 3264 2448 依旧无法显示."
不知您提到的"屏幕的配置也要改,mediaserver 也管屏幕输出" 除了 resolution, 还要修改什么呢?
ubuntu
11
“stream_param”: {
“device”: “/dev/dri/card0”,
“width”: “800”,
“height”: “1280”,
“virtual_width”: “800”,
“virtual_height”: “1280”,
“output_data_type”: “image:rgb888”,
“framerate”: “54”,
“plane_type”: “Primary”,
“ZPOS”: “0”
}
屏幕宽高,framerate显示帧率都要匹配
ubuntu
13
799959745 发表于 2021-11-27 09:05
“stream_param”: {
“device”: “/dev/dri/card0”,
“width”: …
谢谢回复, 参考 #11 的配置, 贵司默认的 core 板子没有屏幕, 我直接用默认的, 也就是您这里#12 的配置, 应该不用修改吧?
但还是点不亮啊.
问题在于你有修改过内核吗?有改过设备树吗?有改mipi 屏幕时序或者删掉屏幕节点吗?mediaserver 管理视频流输入输出,如果他检测到配置文件和kernel dts 的 mipi 屏幕配置不一致就会退出就没有预览了。你可以直接用 不带屏幕的 conf,这个都是在 RKLAUNCH.SH 的脚本里面配置的。不过调摄像头还是最好用 v4l 抓到图再调后面的应用
ubuntu
16
板蓝根 发表于 2021-11-30 17:33
问题在于你有修改过内核吗?有改过设备树吗?有改mipi 屏幕时序或者删掉屏幕节点吗?mediaserver 管理视频 …
谢谢指导, 参考您的建议, 目前有两种方案:
- 用不带屏幕的 conf, 我这边对比了如下两个文件, 然后直接把屏幕的配置删除,也就是 Pipe_3 删除. 结果现象不变, 依旧无效.
\oem\usr\share\mediaserver\rv1109\ipc.conf
oem\usr\share\mediaserver\rv1109\ipc-display-firefly.conf
对比 code 见 
2.您的第二种建议,直接用 v4l2 抓图的说明.
这个小的早想这样玩了, 手机上面都是这样,先确认是否出 raw 图的.但这里怎么 dump raw 图呢,799959745大佬提供的方法无效, 后面就没回复了?
我下面这个帖子上 5 楼上799959745 大佬也建议 dump raw 图, 但提供的 dump 方法在 demo os04a10 都无法顺利 dump, 后面799959745 大佬就没回复了.
https://dev.t-firefly.com/thread-114854-1-1.html