sin210拥有4个USB接口,用其中的一个进行usb摄像头视频的采集,现在介绍些如何进行操作以及操作过程注意点。
操作环境:
win7 32位主机,
vm9.0.0 build-812388,
主机版本:ubuntu12.04lts,
硬件平台:sin210(s5vp210),
linux内核:2.6.34内核
交叉编译器:arm-linux-gcc 4.3.2
1、购买usb摄像头
为了方便,购买了中星微的摄像头,如果感兴趣,我可以告诉你我是在哪家买的。拿到之后再电脑上查看pid和vid号
。
经过查看,确认是中星微usb摄像头,支持v4l。
2、编译linux内核,支持zc301
linux内核在2.6.34支持zc301摄像头了,所以我们在内核配置中启用zc301驱动即可、进入sinlix的2.6.34内核源码包
#make menuconfig 进入配置界面增加zc301驱动
进入配置界面后Device Drivers -->
<*>Multimedia support --->
<*>Video For Linux
<*>Video capture adapters --->
<*>V4L USB devices --->
<*>USB Video Class
<*>UVC input events device support
<*>GSPCA based webcams -->
<*>ZC3XX USB Camera Driver
USB设置
Device Drivers -->
<*>USB Support --->
<*>Support for Host_side USB
<*>USB announce new devices
make zImage
获得支持usb摄像头的内核zImage。
3、烧写内核到开发板
烧写该zImage到开发板,启动开发板,通过串口查看插入usb摄像头前后的信息
插入usb摄像头之前
插入usb摄像头之后
从上面可以看出,挂载到了video4,该信息非常重要
4、移植mjpg_streamer到开发板
mjpg_streamer是一个开源的视频操作工具。下载mjpg_streamer源码
http://mjpg-streamer.svn.sourceforge.net/viewvc/mjpg-streamer.tar.gz?view=tar
解压后进入 mjgp-streamer 目录 修改顶层 Makefile ,将 CC=gcc 修改为 CC=arm-linux-gcc
或者直接使用 make CC=arm-linux-gcc 可以直接编译。
为便于使用,给出下载文档
解压到ubuntu12.04,make之后
将选中的三个文档拷贝到SIN210开发板中
运行命令
[root@DDD /mjep]# ./mjpg_streamer -i "input_uvc.so -d /dev/video4 " -o "output_http.so -w ./www"
MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video4
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MPGE
i: JPEG Quality......: 80
o: www-folder-path...: ./www/
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled
[ 8706.883189] zc3xx: probe 2wr ov vga 0x0000
出现以上信息说明usb摄像头驱动已经挂在好,。
5、设置网络
将开发板和宿主机连接在同一个路由器上,并且设置在同一个网段。设置好之后看是否能够ping通。
mjl@mjl-machine:~$ ping 192.168.0.106
PING 192.168.0.106 (192.168.0.106) 56(84) bytes of data.
64 bytes from 192.168.0.106: icmp_req=1 ttl=128 time=0.929 ms
64 bytes from 192.168.0.106: icmp_req=2 ttl=128 time=0.786 ms
64 bytes from 192.168.0.106: icmp_req=3 ttl=128 time=0.573 ms
如果出现以上信息,表明网络连接正常。
6、启动视频流监测
开发板中运行
[root@DDD /mjep]# ./mjpg_streamer -i "input_uvc.so -d /dev/video4 " -o "output_http.so -w ./www"
MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video4
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: YUV
i: JPEG Quality......: 80
o: www-folder-path...: ./www/
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled
[ 8706.883189] zc3xx: probe 2wr ov vga 0x0000
打开ubuntu的firefox,输入192.168.0.106:8080/?action=stream
显示视频流如下(只抓了个图片):
至此移植完毕。
有疑问的网友可以留言,进一步交流。