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 ->
音频驱动选项:
Device Drivers ->
<*> Sound card support ->
<*> Advanced Linux Sound Architecture ->
<*> USB sound devices ->
USB Gadget选项:
Device Drivers ->
<*> USB support ->
<*> USB Gadget Support ->
退出并保存.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_app和uvc_app.conf文件,把这两个文件也复制到板子的/root/uvc_app文件夹里。
在SDK包中进入目录Hi3516EV200R001C01SPC010/01.software/pc/usb_tools
解压usb_tools_linux.rar
把ConfigUVC.sh和Disable_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设备
打开ECap软件(或者其他类似软件),可获取到板子采集的图形
离线
感谢分享,楼主优秀。
这个帖子实现了一个USB相机,手上还没 DOPI 不能测试下。
不知道楼主是否研究过,DOPI EV200本身能接USB相机不?
离线
感谢分享,楼主优秀。
这个帖子实现了一个USB相机,手上还没 DOPI 不能测试下。
不知道楼主是否研究过,DOPI EV200本身能接USB相机不?
这个还没试过,我也是刚入坑,,,
离线
太强了,爱了爱了
离线
支持 UVC 的属性面 亮度 对比度 增益 暴光 GAMA 调节吗?
离线
支持,学习了
离线
楼主 在吗?用不起来呢!摄像头 能出来 但是没有显示图像 。 KO 出错 能否把你的 KO 发给我试试
离线
楼主 在吗?用不起来呢!摄像头 能出来 但是没有显示图像 。 KO 出错 能否把你的 KO 发给我试试
用这种方式安装ko到根文件系统:
ARCH=arm CROSS_COMPILE=arm-linux- INSTALL_MOD_PATH=/opt/f1c100s/buildroot-2019.02.2/output/target/ make modules_install
离线
“2.修改camera配置(针对使用gc2053摄像头,imx307可跳过)”
请教一下,原厂SDK中imx307的配置,编译出来是可以在DOPi+imx307上正常运行的吗?
离线
安卓手机不能识别海思的这种USB摄像头?
离线