您尚未登录。

#1 Re: DOPI开源摄像头(HI3516/HI3518) » DOPI EV200实现USB UVC » 2020-08-22 15:10:04

codetez 说:

感谢分享,楼主优秀。

这个帖子实现了一个USB相机,手上还没 DOPI 不能测试下。


不知道楼主是否研究过,DOPI EV200本身能接USB相机不?

这个还没试过,我也是刚入坑,,,

#2 DOPI开源摄像头(HI3516/HI3518) » DOPI EV200实现USB UVC » 2020-08-22 13:51:13

AWalker
回复: 10

UVC的实现主要是参考SDK中《外围设备驱动 操作指南.pdf》的2.3.8章节,按照步骤提示操作应该很顺利能实现,发个帖子记录一下实现过程。

一.驱动模块编译

文档中主要提到了几个驱动模块,这5个模块在Linux内核中编译实现:
libcomposite.ko
usb_f_uvc.ko
u_audio.ko
usb_f_uac1.ko
usb_f_uac2.ko

1.首先进入Linux内核顶层目录,复制.config文件:

$ cd dopi/linux
$ cp arch/arm/configs/hi3516ev200_dopi_defconfig  .config

2.进入menuconfig菜单,勾选几项配置:

$ make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig

PHY选项:
  Device Drivers ->
    PHY Subsystem ->
PHY%E9%80%89%E9%A1%B9.png

音频驱动选项:
Device Drivers ->
  <*> Sound card support ->
    <*> Advanced Linux Sound Architecture ->
      <*> USB sound devices ->
usb%20sound.png

USB Gadget选项:
Device Drivers ->
  <*> USB support ->
    <*> USB Gadget Support ->
USB%E9%80%89%E9%A1%B91.png
USB%E9%80%89%E9%A1%B92.png

退出并保存.config配置文件

编译内核:

$ make ARCH=arm CROSS_COMPILE=arm-himix100-linux- uImage

内核编译完成后,编译module模块:

$ make ARCH=arm CROSS_COMPILE=arm-himix100-linux- modules

完成后模块路径分别为:

drivers/usb/gadget/libcomposite.ko
drivers/usb/gadget/function/usb_f_uac2.ko
drivers/usb/gadget/function/usb_f_uac1.ko
drivers/usb/gadget/function/usb_f_uvc.ko
drivers/usb/gadget/function/u_audio.ko

把以上模块复制到板子文件目录/root/uvc_app下

二.编译应用程序

1.解压SDK包里面的mpp.tgz

$ cd Hi3516EV200_SDK_V1.0.1.0/package/
$ tar -vxzf mpp.tgz
$ cd mpp/

2.修改camera配置(针对使用gc2053摄像头,imx307可跳过)

$ cd sample
$ vim Makefile.param

修改

SENSOR0_TYPE = GALAXYCORE_GC2053_MIPI_2M_30FPS_10BIT

3.编译uvc_app应用程序

$ cd sample/uvc_app/
$ make

编译完成后生成uvc_appuvc_app.conf文件,把这两个文件也复制到板子的/root/uvc_app文件夹里。

三.添加配置脚本文件

在SDK包中进入目录Hi3516EV200R001C01SPC010/01.software/pc/usb_tools
解压usb_tools_linux.rar
ConfigUVC.shDisable_UVC.sh复制到板子目录/root/uvc_app下

四.板子上修改启动命令
$ vi /etc/init.d/rcS
#! /bin/sh

/bin/mount -a

echo "
            _ _ _ _ _ _ _ _ _ _ _ _
            \  _  _   _  _ _ ___
            / /__/ \ |_/
           / __   /  -  _ ___
          / /  / /  / /
  _ _ _ _/ /  /  \_/  \_ ______
___________\___\__________________
"
for initscript in /etc/init.d/S[0-9][0-9]*
do
	if [ -x $initscript ] ;
	then
		echo "[RCS]: $initscript"
		$initscript
	fi
done

hostname -F /etc/hostname

# ifconfig eth0 192.168.117.2 up
# route add default gw 192.168.117.1

cd /root/uvc_app
insmod libcomposite.ko
insmod usb_f_uvc.ko
insmod u_audio.ko
insmod usb_f_uac1.ko
insmod usb_f_uac2.ko
export VID="0x12d1"
export PID="0x4321"
export MANUFACTURER="Huawei"
export PRODUCT="HiCamera"
export SERIALNUMBER="12345678"
export YUV="360p"
export MJPEG="360p 720p 1080p"
export H264="360p 720p 1080p"
./ConfigUVC.sh

cd /ko
insmod g_ether.ko
/ko/load3516ev200 -i -sensor gc2053

#mkdir -p /root/app
#mount -t tmpfs -o size=5M app /root/app
#tar zxf /root/app.tgz -C /root/app/

/bin/stupid-ftpd
telnetd
ifconfig usb0 192.168.137.25 up
route add default gw 192.168.137.1
# sed -i "5c bind_address = \"192.168.137.25\"" /etc/config.hcl
# /bin/mDNS --config /etc/config.hcl >/dev/null 2>&1 &
# /root/display.sh 
# cat /root/rgb.565 >/dev/fb0 

#cd /root
#/root/wifi.sh 
#/root/dopi_rtsp 

cd /root/uvc_app
./uvc_app &
五.使用测试

1.新编译的内核固件烧录到板子上
2.USB接入电脑重启板子,电脑设备列表会出现UVC Camera设备

none_20200822-1329.png
打开ECap软件(或者其他类似软件),可获取到板子采集的图形
ECap.png
ECap1.png

#3 Re: DOPI开源摄像头(HI3516/HI3518) » 在Dopi上实现二维码扫描【附源码】 » 2020-08-11 19:33:27

这是读取图片数据进行解码,还是调取摄像头数据流呢?

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn