RK3568模拟摄像头实现UVC视频输出

本文详细介绍了在基于Android11操作系统的RK3568硬件平台上,如何配置DTS以支持OTG功能,启用USBGadget以实现webcam服务,以及如何通过修改系统配置文件来切换工作模式。在完成一系列配置和编译后,设备管理器能显示出UVC摄像头已成功实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

1、操作系统 : Android 11

2、硬件平台:RK3568/RK3588

二、实现步骤

1、DTS支持

 因为是使用rk3568 的OTG实现,所以需要配置相关的dts项:

&usbdrd_dwc3 {
    dr_mode = "otg";
    extcon = <&usb2phy0>;
    status = "okay";
};

&usbdrd30 {
    status = "okay";
};

其它默认配置即可。

2、内核支持

USB Gadget 支持,重点是webcam

3、配置

修改1、源码: device/rockchip/common/init.rk30board.usb.rc   

    文件系统位置 /vendor/etc/init/hw/init.rk30board.usb.rc  
on property:sys.usb.config=uvc && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x0005

on property:sys.usb.config=uvc,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/idProduct 0x0015
    
修改为:    

on property:sys.usb.config=uvc && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/os_desc/use 1            增加项
    write /config/usb_gadget/g1/idProduct 0x0005
 
on property:sys.usb.config=uvc,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/os_desc/use 1             增加项
    write /config/usb_gadget/g1/idProduct 0x0015
    
    
修改2:源码:system/core/rootdir/init.usb.configfs.rc  

文件系统位置  /system/etc/init/hw/init.usb.configfs.rc  
文件末尾增加:
on property:sys.usb.config=uvc && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "uvc"
    symlink /config/usb_gadget/g1/functions/uvc.gs6 /config/usb_gadget/g1/configs/b.1/f1
    write /config/usb_gadget/g1/UDC ${sys.usb.controller}
    setprop sys.usb.state ${sys.usb.config}
 
on property:sys.usb.config=uvc,adb && property:sys.usb.configfs=1
    start adbd
 
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=uvc,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "uvc_adb"
    symlink /config/usb_gadget/g1/functions/uvc.gs6 /config/usb_gadget/g1/configs/b.1/f1
    symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
    write /config/usb_gadget/g1/UDC ${sys.usb.controller}
    setprop sys.usb.state ${sys.usb.config}
    
修改3:源码system/core/rootdir/init.usb.rc 文件系统位置/system/etc/init/hw/init.usb.rc 

增加如下:
on property:sys.usb.config=uvc && property:sys.usb.configfs=0
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 2207
    write /sys/class/android_usb/android0/idProduct 5
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}
 
on property:sys.usb.config=uvc,adb && property:sys.usb.configfs=0
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 2207
    write /sys/class/android_usb/android0/idProduct 15
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}  

4、配置切换工作模式

在串口使用su进行配置,切换为uvc工作模式,如下:

setprop sys.usb.config none;setprop sys.usb.config uvc

或者

setprop sys.usb.config none;setprop sys.usb.config uvc,adb

5、重新整体编译

./build.sh -UKAup

下载升级固件: update.img

6,测试

下载成功后,运行rk3568,在PC 上的设备管理器可以看到

一个UCV摄像头已经实现 。

7、应用程序uvc_app 

  app可以通过下载相关的代码进行修改,移植,再次不在描述。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值