当前位置: 首页 > news >正文

OpenHarmony5.0.2 USB摄像头适配

开发环境

OpenHarmony5.0.2 RK3568

USB摄像头

遇到问题

编译后插上USB摄像头后打开相机无图像

解决思路

5.0.2版本是支持USB摄像头的,需要修改默认的板载相机配置即可。

修改代码
1、修改HCS配置

文件地址:vendor/hihope/rk3568/hdf_config/uhdf/camera/hdi_impl/camera_host_config.hcs

删除ability_01 :: ability {}

2、删除缓存后编译

修改hcs后编译时可能会有缓存,最后先在代码根目录下执行下面的命令后再编译。
find ./out -type f -name "*.hcb" -exec rm -v {} \;
find ./out -type f -name "*.cfg" -exec rm -v {} \;

3、调试排查步骤

linux安装v4l2-ctl查看USB摄像头支持的格式

/dev$ sudo v4l2-ctl -d video0 --list-formats
ioctl: VIDIOC_ENUM_FMTIndex       : 0Type        : Video CapturePixel Format: 'MJPG' (compressed)Name        : Motion-JPEGIndex       : 1Type        : Video CapturePixel Format: 'YUYV'Name        : YUYV 4:2:2

Windows 环境安装AMCap查看摄像头支持格式

查看插入的串口日志包含USB Camera

插入串口日志[ 4245.564927] usb 5-1.3: new high-speed USB device number 13 using xhci-hcd
[ 4245.685701] usb 5-1.3: New USB device found, idVendor=0bda, idProduct=5b05, bcdDevice= 0.00
[ 4245.685741] usb 5-1.3: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[ 4245.685751] usb 5-1.3: Product: USB Camera
[ 4245.685759] usb 5-1.3: Manufacturer: Generic
[ 4245.685767] usb 5-1.3: SerialNumber: 200901010001
[ 4245.687188] [AUTH_CTRL] no auth data for this pid = 578
[ 4245.687188] , tgid
[ 4245.687199] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[ 4245.745061] uvcvideo: Found UVC 1.00 device USB Camera (0bda:5b05)
[ 4245.757268] [I/USB_PNP_NOTIFY] UsbPnpNotifyCallback: action=0x1
[ 4245.757323] [I/USB_PNP_NOTIFY] UsbPnpNotifyAddInitInfo:209 i=0, interfaceInfo=0xe-0x1-0x0-0x0
[ 4245.757335] [I/USB_PNP_NOTIFY] UsbPnpNotifyAddInitInfo:209 i=1, interfaceInfo=0xe-0x2-0x0-0x1
[ 4245.757377] [I/USB_PNP_NOTIFY] UsbPnpNotifyReportThread: UsbPnpNotifyReportThread start!
[ 4245.757409] [I/USB_PNP_NOTIFY] UsbPnpNotifyHdfSendEvent:375 device information, 3 usbDevAddr=18446743525960148992, devNum=13, busNum=5, infoTable=2-0xbda-0x5b05!
[ 4245.777467] [AUTH_CTRL] no auth data for this pid = 643

确定Linux 内核UVC协议已生效以及USB UVC camera被识别

# lsusb
Bus 005 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 001 Device 001: ID 1d6b:0002
Bus 005 Device 013: ID 0bda:5b05
Bus 005 Device 007: ID 34d1:0608
Bus 006 Device 001: ID 1d6b:0003
Bus 004 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
Bus 005 Device 008: ID 0000:3825
Bus 003 Device 002: ID 34d1:0608

查看USB设备信息

cat /sys/kernel/debug/usb/devicesT:  Bus=05 Lev=02 Prnt=07 Port=02 Cnt=01 Dev#= 13 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0bda ProdID=5b05 Rev= 0.00
S:  Manufacturer=Generic
S:  Product=USB Camera
S:  SerialNumber=200901010001
C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
E:  Ad=83(I) Atr=03(Int.) MxPS=  16 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
I:  If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS= 128 Ivl=125us
I:  If#= 1 Alt= 2 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS= 512 Ivl=125us
I:  If#= 1 Alt= 3 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=1024 Ivl=125us
I:  If#= 1 Alt= 4 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=1536 Ivl=125us
I:  If#= 1 Alt= 5 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=2048 Ivl=125us
I:  If#= 1 Alt= 6 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=2688 Ivl=125us
I:  If#= 1 Alt= 7 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=3072 Ivl=125u

查看节点信息是否新增video9和video10

# ls -l /dev/video*
crw-rw---- 1 camera_host camera_host 81,   0 2017-08-05 17:03 /dev/video0
crw-rw---- 1 camera_host camera_host 81,   1 2017-08-05 17:03 /dev/video1
crw-rw---- 1 camera_host camera_host 81,  13 2017-08-05 17:04 /dev/video10
crw-rw---- 1 camera_host camera_host 81,   2 2017-08-05 17:03 /dev/video2
crw-rw---- 1 camera_host camera_host 81,   3 2017-08-05 17:03 /dev/video3
crw-rw---- 1 camera_host camera_host 81,   4 2017-08-05 17:03 /dev/video4
crw-rw---- 1 camera_host camera_host 81,   5 2017-08-05 17:03 /dev/video5
crw-rw---- 1 camera_host camera_host 81,   6 2017-08-05 17:03 /dev/video6
crw-rw---- 1 camera_host camera_host 81,   7 2017-08-05 17:03 /dev/video7
crw-rw---- 1 camera_host camera_host 81,   8 2017-08-05 17:03 /dev/video8
crw-rw---- 1 camera_host camera_host 81,  12 2017-08-05 17:04 /dev/video9

开启CameraDumper排查采集的数据格式

参考网站:

Camera HDI调试工具 - CameraDumper_DarkKnight888-Laval社区

其他板载相机适配可参考

OpenHarmony USB UVC camera 适配说明_kgduwu-Laval社区


http://www.mrgr.cn/news/98246.html

相关文章:

  • Java面向对象核心:多态、抽象类与接口实战解析
  • 基于51单片机的正负5V数字电压表( proteus仿真+程序+设计报告+讲解视频)
  • c语言 open函数
  • C语言中冒泡排序和快速排序的区别
  • 02核心-EffectSpec,EffectContext
  • Excel表格文件分组归并——通过sql
  • Sklearn入门之datasets的基本用法
  • Android Studio 在 Windows 上的完整安装与使用指南
  • 八大定位UI
  • 从宇树摇操avp_teleoperate到unitree_IL_lerobot:如何基于宇树人形进行二次开发(含Open-TeleVision源码解析)
  • 【HD-RK3576-PI】系统更新与恢复
  • CSI-PVController-claimWorker
  • Linux上位机开发实践(OpenCV算法硬件加速)
  • 【redis进阶三】分布式系统之主从复制结构(1)
  • 【复旦微FM33 MCU 底层开发指南】高级定时器ATIM
  • NoSQL入门指南:Redis与MongoDB的Java实战
  • 2025蓝桥杯python A组题解
  • 数据库事务管理:ACID特性与隔离级别的深度解读
  • QScrCpy源码解析(4)获取手机端数据知识补充
  • RVOS-4.实现上下文切换和协作式多任务