s3c6410,mjpg-streamer,ZC3XX ,USB网络摄像头移植成功。

时间:2023-01-21 17:49:25

吐槽先:USB 设备,是我刚刚开始学习的,完全搞不懂,玩这个USB摄像头淘宝上买的杂牌子,我在xp 下测试了一下,只能保证芯片是芯片是ZC0301PL。 其它都未知。

现在开始正文:( 博文来自**** Acanoe 的博客:http://blog.****.net/ACanoe

我的操作环境是、主机:xp + VMware ubuntu 10.10 。 开发板:OK6410 A板。  使用内核:Linux 2.6.36.2 。  使用软件: mjpg-streamer

1、配置内核支持 中微星的 ZC3XX 摄像头。

Device Drivers ->

   Multimedia devices->

        <*>video for linux

         [*]video capture adapters->

              [*]V4l USB devices ->

                   <*>USB video class (UVC)

                    [*]  UVC input events device support

                   <*>GSPCA based webcams ->

                             <*>ZC3XX USB Camera Driver

配置好了以后编译内核,下载到开发板。


2、查看USB 摄像头接入开发板的打印信息,当然你的开发板首先需要先支持 USB-Host 。我的开发板串口打印信息是:

[root@FORLINX6410]# usb 1-1: new full speed USB device using s3c2410-ohci and ad
dress 4
usb 1-1: New USB device found, idVendor=0ac8, idProduct=301b
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: PC Camera
usb 1-1: Manufacturer: Vimicro Corp.
gspca: probing 0ac8:301b
zc3xx: probe sensor -> 000a
zc3xx: Find Sensor PB0330. Chip revision 0
input: zc3xx as /class/input/input2
gspca: video0 created
[root@FORLINX6410]# 

释放 USB 摄像头 的打印信息是:
[root@FORLINX6410]# usb 1-1: USB disconnect, address 4
gspca: video0 disconnect
gspca: video0 released
[root@FORLINX6410]#


3、编译安装:mjpg-streamer 

移植参考了百度文库的

基于TQ2440开发板的Linux-2.6.30.4的网络现, 下载地址为:

http://wenku.baidu.com/view/9c712cd950e2524de5187e76.html

主要步骤,自己总结为:
3.1 : 下载 mjgp-streamer 源码包
解压后进入 mjgp-streamer 目录 修改顶层 Makefile ,将 CC=gcc  修改为 CC=arm-linux-gcc。 或者直接使用 make CC=arm-linux-gcc 可以直接编译。
3.2 : make 后在 mjpg-streamer 目录下会生成 *.so  和 mjpt-streamer 可执行文件 ,其中 input_uvc.so 和 output_http.so 是我们需要的测试文件

3.3 : 测试准备,你可以直接将我们编译好的 mjpg-streamer 的整个目录 copy 到你的文件系统根目录下,也可以只copy mjpg-streamer , input_uvc.so
和 output_http.so 这三个文件。 不过我是将真个目录copy 到我的文件系统根目录下的。(我是用的是yaffs2 文件系统)。测试前先用网线联通你的主机
和 开发板,我是用虚拟机上的 火狐浏览器测试的。(使用viewer.exe 和 XP 下的IE 浏览器都不成功),要保证你的虚拟机能 ping 通你的开发板。

3.4 :进入你的文件系统,进入你已经copy 好了的mjpg-streamer 目录,我mjpg-streamer 下的文件有:
[root@FORLINX6410]# ls
CHANGELOG             mjpg-streamer         plugins
LICENSE               mjpg_streamer         scripts
Makefile              mjpg_streamer.c       start.sh
README                mjpg_streamer.h       utils.c
TODO                  mjpg_streamer.o       utils.h
input_file.so         output_file.so        utils.o
input_testpicture.so  output_http.so        www
input_uvc.so          output_udp.so
[root@FORLINX6410]#

然后输入命令:
./mjpg_streamer -i "./input_uvc.so"  -o "./output_http.so -w  ./www"
输入完命令后我开发板串口的打印信息是:
MJPG Streamer Version: svn rev:
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: 5
 i: Format............: MJPEG
Adding control for Pan (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan/tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Focus (absolute)
UVCIOC_CTRL_ADD - Error: Invalid argument
mapping control for Pan (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan/tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Focus (absolute)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Mode
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Frequency
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Disable video processing
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Raw bits per pixel
UVCIOC_CTRL_MAP - Error: Invalid argument
 o: www-folder-path...: ./www/
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: enabled

我这里显然有报错信息, 上次也是,这此我就没管它,然后进入ubuntu 虚拟机进行测试。
在火狐浏览器里面输入:
192.168.0.232:8080/?action=stream
就可以看到流畅的视频流了。
很想给大家上传我的视频截图,可是我学校用的网络客户端很垃圾,总是和 **** 有冲突,不能上传图片,也不能进个人主页。
呵呵:想看图的点这里: 
 
哈:这是我用外网上传的图片:
s3c6410,mjpg-streamer,ZC3XX ,USB网络摄像头移植成功。
s3c6410,mjpg-streamer,ZC3XX ,USB网络摄像头移植成功。