uvc 程序, RKAIQ Init Err 错误请教

本帖最后由 ubuntu 于 2022-1-12 18:46 编辑

背景:
build 为aio-rv1126-rkmedia-uvcc.mk项目.默认 os04a10 正常预览. 但 dts 更换为 gc2053, 插入点亮验证正常的 gc2053 模组, 反复报如下错误.

iq文件名字反复核对和 dts 一样.

##RKMEDIA Log level: 2
[RKMEDIA][SYS][Info]:text is all=2
[RKMEDIA][SYS][Info]:module is all, log_level is 2
Loading model ...
Waitting RKAIQ Init ...
model input num: 1, output num: 2
input tensors:
index=0 name= n_dims=4 dims=[1 300 300 3] n_elems=270000 size=270000 fmt=0 type=3 qnt_type=2 fl=127 zp=127 scale=0.007843
output tensors:
index=0 name= n_dims=4 dims=[1 1917 1 4] n_elems=7668 size=7668 fmt=0 type=3 qnt_type=2 fl=-76 zp=180 scale=0.089482
index=1 name= n_dims=3 dims=[0 1 1917 91] n_elems=174447 size=174447 fmt=0 type=3 qnt_type=2 fl=-66 zp=190 scale=0.137463
create rknn_list success
main initial finish
tcp server listen_sockfd: 7
[    8.242038] dwc3 ffd00000.dwc3: device reset
start rknn server, version:1.5.2 (e67e5cb build: 2020-12-03 15:04:52)
I NPUTransfer: Starting NPU Transfer Server, Transfer version 2.1.0 (b5861e7@2020-11-23T11:51:07)
[    8.373855] dwc3 ffd00000.dwc3: device reset
[    8.373924] android_work: did not send uevent (0 0   (null))
Waitting RKAIQ Init ...
[    8.518602] android_work: sent uevent USB_STATE=CONNECTED
[    8.610600] configfs-gadget gadget: high-speed config #1: b
[    8.610745] configfs-gadget gadget: uvc_function_set_alt(2, 0)
[    8.610757] configfs-gadget gadget: reset UVC Control
[    8.610778] configfs-gadget gadget: uvc_function_set_alt(3, 0)
[    8.610991] android_work: sent uevent USB_STATE=CONFIGURED
[    8.741471] configfs-gadget gadget: uvc_function_set_alt(3, 0)
[    8.801643] NOHZ: local_softirq_pending 08
[    8.813989] NOHZ: local_softirq_pending 08
[    8.853983] NOHZ: local_softirq_pending 08
Waitting RKAIQ Init ...
[    9.666014] NOHZ: local_softirq_pending 08
[    9.857987] NOHZ: local_softirq_pending 08
[    9.858683] NOHZ: local_softirq_pending 08
[    9.869944] NOHZ: local_softirq_pending 08
[    9.903650] NOHZ: local_softirq_pending 08
[   10.021968] NOHZ: local_softirq_pending 08
[   10.045939] NOHZ: local_softirq_pending 08
Waitting RKAIQ Init ...
Waitting RKAIQ Init ...
set governor ondemand ok
Waitting RKAIQ Init ...
Waitting RKAIQ Init ...
Waitting RKAIQ Init ...
Waitting RKAIQ Init ...
Waitting RKAIQ Init ...
RKAIQ Init Err !!!
[  566.385294] adbd (1045): /proc/1045/oom_adj is deprecated, please use /proc/1045/oom_score_adj instead.

[root@RV1126_RV1109:/]#

更换摄像头应该是要修改源代码适配的

799959745 发表于 2022-1-13 09:05
更换摄像头应该是要修改源代码适配的

再往下追发现 问题点对比 log 如下, 能给点建议吗?

[RKMEDIA][SYS][Warn]:VI[1t]:"rkispp_scale1" buffer mayh be occupied by other module s or apps, try again...

[/code]
os04a10 正常 log

[ [RKMEDIA][SYS][Info]:#V4L2Ctx : open /dev/video20, fd 106
 10.242624] 	[width max:1280 ratio max:8 min:2]
[   10.242675] rkispp0: scale1:0x0 out of range:
[   10.242675] 	[width max:1280 ratio max:8 min:2]
[   10.242700] rkispp0: scale1:0x0 out of range:
[   10.242700] 	[width max:1280 ratio max:8 min:2]
[RKMEDIA][SYS][Info]:RK_MPI_VI_EnableChn: Enable VI[0:1]:rkispp_scale1, 720x576 End...
Rga[0] create
[RKMEDIA][SYS][Info]:RK_MPI_RGA_CreateChn: Enable RGA[0], Rect<0,0,1280,720> Start...
[RKMEDIA][SYS][Info]:FilterFlow:rkrga: Enable BufferPool! memtype:hw_mem, memcnt:2
[RKMEDIA][SYS][Info]:RK_MPI_RGA_CreateChn: Enable RGA[0], Rect<0,0,1280,720> End...
[RKMEDIA][SYS][Info]:RK_MPI_SYS_Bind: Bind Mode[VI]:Chn[0] to Mode[RGA]:Chn[0]...
Rga[1] create
[RKMEDIA][SYS][Info]:RK_MPI_RGA_CreateChn: Enable RGA[1], Rect<0,0,720,576> Start...
[RKMEDIA][SYS][Info]:FilterFlow:rkrga: Enable BufferPool! memtype:hw_mem, memcnt:2
[RKMEDIA][SYS][Info]:RK_MPI_RGA_CreateChn: Enable RGA[1], Rect<0,0,720,576> End...
[RKMEDIA][SYS][Info]:RK_MPI_SYS_Bind: Bind Mode[VI]:Chn[1] to Mode[RGA]:Chn[1]...
#Start GetMediaBuffer thread, arg:(nil)

gc2053 异常 log.

[RKMEDIA][SYS][Info]:#V4L2Ct[x: open /dev/video20, fd 105
[RKMEDIA][SYS][Error]:rkisp p_scale1, s fmt failed(cap t ype=1, NV12), Invalid argumen t
[RKMEDIA][SYS][Info]:#V4L2Ctx: close , fd 105
[RKMEDIA][S3YS][Info]:#V4L2Stream: v4l2 2ctx reset to nullptr!
.33242[RKMEDIA][VI][Info]:Create s8tream v4l2_capture_stream fa] iled
[RKMEDIA][VI][Info]:#S	urceStreamFlow[]: stream of[wf....
[RKMEDIA][VI][Info]:#iSourceStreamFlow[]: read thread exit sucessfully!
[RKMEDIA][VI][Info]:#SourceStreamFlow[]: stream reset sucessfullyd!
[RKMEDIA][SYS][Warn]:VI[1t]:"rkispp_scale1" buffer mayh be occupied by other module s or apps, try again...

cat proc/version看一下版本。
要改程序源代码。看一下rkmedia/example有关双目摄像头demo的示例进行修改。

799959745 发表于 2022-1-13 11:08
cat proc/version看一下版本。
要改程序源代码。看一下rkmedia/example有关双目摄像头demo的示例进行修改 …

版本如下, 我用的默认 uvc_app. dts里面把 os04a10 换成 gc2053. 请教哪方面的"程序源码"还要修改?

[root@RV1126_RV1109:/]# cat proc/version
Linux version 4.19.111 (x@fa14e1f641f4) (rv1126_rv1109_linux_ai_camera_20210904.xml) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)) #1 SMP PREEMPT Thu Jan 6 22:35:58 HKT 2022
[root@RV1126_RV1109:/]#

对比" dts里面把 os04a10 换成 gc2053" 前后的,开启完整 log 的对比信息如下.

![](https://pic.88.uy/images/2022/01/13/image.png)

完整 log 对比 log 下载链接.
https://klg.668168.xyz/home/share/20220110_uvc_os04a10_uvc_no_preview/fiefly开发板上面os04a10正常,%20gc2053异常对比log/fiefly开发板上面os04a10正常,%20gc2053异常对比log.rar?auth=mGGnYeuWvqsy

RKAIQ Init Err !!! 是 ARCUVC_APP 查不到 aiserver 的进程在跑,认为 RKAIQ 没有被初始化然后退出了。你应该 ps -ef | grep ispserver ; ps -ef | grep aiserver 看一下两个进程有没有运行,如果没有,你应该单独自己手动 运行 ispserver 看一下 log RKAIQ 初始化哪里报错

本帖最后由 ubuntu 于 2022-1-19 11:10 编辑

板蓝根 发表于 2022-1-17 09:25
RKAIQ Init Err !!! 是 ARCUVC_APP 查不到 aiserver 的进程在跑,认为 RKAIQ 没有被初始化然后退出了。你应 …

赞。
已经找到原因了

首先, 的确如您推测,是ispserver 和aiserver 没起来。 进而发现是RkLunch.sh 都没起来。发现@799959745 做的aio-rv1126-rkmedia-uvcc.mk项目 默认没开RkLunch.sh , 而是如下进程。
[root@RV1126_RV1109:/]# ps -ef | grep sh
root 874 1 0 02:45 ? 00:00:01 /usr/bin/firefly_rkmedia_vi_uvc_test -a /oem/etc/iqfiles/ -c /oem/usr/share/rtsp-nn.cfg -p /oem/usr/share/rknn_model/ssd_inception_v2_rv1109_rv1126.rknn -l
root 881 1 0 02:45 ? 00:00:00 /bin/sh /usr/bin/start_rknn.sh

板蓝根 发表于 2022-1-17 09:25
RKAIQ Init Err !!! 是 ARCUVC_APP 查不到 aiserver 的进程在跑,认为 RKAIQ 没有被初始化然后退出了。你应 …

有个疑问请教:
#8 楼中, 我把firefly_rkmedia_vi_uvc_test 进程杀了, 然后 adb 无法使用.
这是怎么回事呢?

确实会这样,如果要独立 adb 还是直接使用原有 /etc/init.d/S50usbdevice 去初始化设备

板蓝根 发表于 2022-1-20 10:11
确实会这样,如果要独立 adb 还是直接使用原有 /etc/init.d/S50usbdevice 去初始化设备

我把S58_lunch_init, 也就是开启firefly_rkmedia_vi_uvc_test对应的脚本, 里面的内容全部删了. 但还是无法 使用adb.
怀疑usb_config.sh 中网口影响(这个网口什么时候用 eth0 ,什么时候是 eth2 ?), 又还原为 eth0 ,也无效.
sed -i s/eth0/eth2/g /oem/usb_config.sh

可以给点建议吗?

source /etc/profile.d/RkEnv.sh

case "$1" in
	start)
		if (cat /proc/device-tree/model | grep CAM-CRV > /dev/null)
		then
			echo "/oem/usb_config.sh don't need to modify"
			/oem/usb_config.sh rndis
			sed -i '$d' /oem/usr/share/rtsp-nn.cfg
			sed -i '$a\path=/live/main_stream video_type=7 width=1920 height=1080 image_type=4 video_path=rkispp_scale1' /oem/usr/share/rtsp-nn.cfg
			/usr/bin/firefly_rkmedia_vi_uvc_double_cameras_test -a /oem/etc/iqfiles/ -c /oem/usr/share/rtsp-nn.cfg -p /oem/usr/share/rknn_model/ssd_inception_v2_rv1109_rv1126.rknn -l /oem/usr/share/rknn_model/coco_labels_list.txt -b /oem/usr/share/rknn_model/box_priors.txt &
		else
			sed -i s/eth2/eth0/g /oem/usb_config.sh
			/oem/usb_config.sh rndis
			#/usr/bin/firefly_rkmedia_vi_uvc_test -a /oem/etc/iqfiles/ -c /oem/usr/share/rtsp-nn.cfg -p /oem/usr/share/rknn_model/ssd_inception_v2_rv1109_rv1126.rknn -l /oem/usr/share/rknn_model/coco_labels_list.txt -b /oem/usr/share/rknn_model/box_priors.txt &
		fi
		;;
	stop)
		#killall firefly_rkmedia_vi_uvc_test
		;;
	*)
		echo "Usage: $0 {start|stop}"
		exit 1
		;;
esac
exit 0

如果不使用 uvc ,需要用 /etc/init.d/S50usbdevice 去初始化而不是用 usb_config.sh

板蓝根 发表于 2022-1-20 15:29
如果不使用 uvc ,需要用 /etc/init.d/S50usbdevice 去初始化而不是用 usb_config.sh

直接把 /etc/init.d/S58_lunch_init 里面所以内容都删了, 默认应该先走到S50usbdevice, 似乎 也不行啊?

S50usbdevice 先看一下,uvc mk 编译的话 S50usbdevice 会注释一些代码,需要手动打开,而且建议最好去理解一下 S50usbdevice 干了什么,这个代码量不多的