本篇文章主要讲的就是移植,希望对大家有所帮助。
开发环境 zing sdk2. 上面的 主芯片是 Xilinx 的XCZ7020. 在虚拟机VM的 Ubuntu 12.04. 摄像头: 微软 HD-3000. 内核的版本linux4.0.0.
当系统跑起来, 看下 dev的目录下是否有video0,这是 camera的驱动.如下图:
最为我的摄像头插进去,没有发现video0,后来在网友的提醒下,要支持usb的摄像头,需要 v4l2驱动和UVC驱动。我看了下可能linux这个版本的uvc的驱动,默认没有编译进去。所有要把uvc的驱动编译进去。在linux-xlnx下的.config文件下加入这两个宏:
CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
这样编译后,把文件按着wiki的做法放进t-flash卡里面。插上hd-3000摄像头,给板子上电就可以看到 dev/video0.了。
下面的工作比较容易,把output_http.so ,input_uvc.so libjpeg.a libjpeg.la libjpeg.so.62 libjpeg.so.62.0.0 拷贝到usr/lib目录下。我把文件的权限都改了下chmod 777 *
然后给自己的板子设置网络地址 和网关,分别用下面的两个命令:
ifconfig eth0 192.168.1.20 netmask 255.255.255.0
route add default gw 192.168.1.1
我之前就把所有的文件都拷进tf卡中,当然需要挂载在mnt 目录下,运行命令:
./mjpg_streamer -i "/usr/lib/input_uvc.so -yuv" -o "/usr/lib/output_http.so -p 8080 -w /www/camwww"
然后在火狐浏览器里面输入:
192.168.1.20:8080/?action=stream
我把zynq的文件 和 mjpg的文件都放在网上,希望对大家有所帮助。 有什么问题,咱们再交流。
下一步工作,我要学习一下 用MJPG去控制 输出视频的帧数 和 分辨率等相关信息。
这是相关的编译文件:
http://download.csdn.net/detail/angelbosj/9111921
这是最终的结果: