移植usb-camera(ZC0301PLH)

转载 2013年12月04日 17:41:23

 linux3.6.6移植usb-camera(ZC0301PLH)

分类: linux linux-kernel移植 3.6.6 linux-kernel移植 kernel-3.6.6 camera 294人阅读 评论(0) 收藏举报

//--------------------------------------------------------------------------------------------

// 作者:longtian635241(longtian_huang@urbetter.com

// 论坛ID:idea6410

// 版权:idea6410

// 平台:友坚idea6410开发板

// 发布日期:2012-11-22

// 最后修改:2012-11-22

//

//----------------------------------------------------------------------------------------------

 

1、因为内核已经支持这款usbcamera所以只需配置即可!

  1. Device Drivers --->
  2. <*> Multimedia support --->
  3. [*]   Cameras/video grabbers support 
  4. [*]   Video capture adapters  --->
  5. [*] V4L USB devices --->
  6. <*> USB Video Class (UVC)
  7. [*] UVC input events device support
  8. [*] GSPCA based webcams --->
  9. <*>   ZC3XX USB Camera Driver

    插入USB摄像头(我使用的UVC摄像头),会提示:

     

    usb 1-1: new full-speed USB device number 7 using s3c2410-ohci
    usb 1-1: New USB device found, idVendor=0ac8, idProduct=303b
    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_main: gspca_zc3xx-2.14.0 probing 0ac8:303b
    input: gspca_zc3xx as /devices/platform/s3c2410-ohci/usb1/1-1/input/input3

    查看设备:

    [root@urbetter /]# ls dev/video0 
    dev/video0

    2、测试:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <assert.h>

    #include <getopt.h>           

    #include <fcntl.h>             
    #include <unistd.h>
    #include <errno.h>
    #include <malloc.h>
    #include <sys/stat.h>
    #include <sys/types.h>
    #include <sys/time.h>
    #include <sys/mman.h>
    #include <sys/ioctl.h>

    #include <asm/types.h>         
    #include <linux/videodev2.h>

    #define CLEAR(x) memset (&(x), 0, sizeof (x))

    struct buffer {
            void *                  start;
            size_t                  length;
    };

    static char *           dev_name        = "/dev/video0";//这个的根据你查看到的设备好修改为你的!
    static int              fd              = -1;
    struct buffer *         buffers         = NULL;

    FILE *file_fd;
    static unsigned long file_length;
    static unsigned char *file_name;

    int main (int argc,char ** argv)
    {
    struct v4l2_capability cap; 
    struct v4l2_format fmt;

    file_fd = fopen("test.jpg", "w");

    fd = open (dev_name, O_RDWR /* required */ | O_NONBLOCK, 0);

    ioctl (fd, VIDIOC_QUERYCAP, &cap);

    CLEAR (fmt);
    fmt.type                = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    fmt.fmt.pix.width       = 640; 
    fmt.fmt.pix.height      = 480;
    fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
    fmt.fmt.pix.field       = V4L2_FIELD_INTERLACED;
    ioctl (fd, VIDIOC_S_FMT, &fmt);

    file_length = fmt.fmt.pix.bytesperline * fmt.fmt.pix.height;

    buffers = calloc (1, sizeof (*buffers));

    buffers[0].length = file_length;
    buffers[0].start = malloc (file_length);

    for (;;) 
    {
       fd_set fds;
       struct timeval tv;
       int r;

       FD_ZERO (&fds);
       FD_SET (fd, &fds);

       /* Timeout. */
       tv.tv_sec = 3;
       tv.tv_usec = 0;

       r = select (fd + 1, &fds, NULL, NULL, &tv);

       if (-1 == r) {
        if (EINTR == errno)
         continue;
        printf ("select");
                            }

       if (0 == r) {
        fprintf (stderr, "select timeout\n");
        exit (EXIT_FAILURE);
                            }

       if (read (fd, buffers[0].start, buffers[0].length))
       break;
    }

    fwrite(buffers[0].start, buffers[0].length, 1, file_fd);

    free (buffers[0].start);
    close (fd);
    fclose (file_fd);
    exit (EXIT_SUCCESS);
    return 0;
    }

    编译:

    # arm-linux-gcc usb_camera.c -o usb_camera

    拷贝到文件系统中运行即可,在当前目录下就能看到test.jpg的图片!

嵌入式平台USB驱动程序移植(zc0301p 摄像头)

关键词: zc0301p    s3c2410   linux2.6.11.1                                           (参考了一个开源的项...
  • zbk8888
  • zbk8888
  • 2011年09月04日 21:44
  • 1768

MTK USB CAMERA (中芯微Z0301调试)

MTK USB CAMERA (中芯微Z0301调试) 驱动的部分:难点在于 mtk 不支持原生的 menuconfig, 需要以下方法来配置: 保证kernel new 过, 将 /out/....
  • chiooo
  • chiooo
  • 2015年02月28日 13:55
  • 1489

linux-3.0.8-LZ210-V1 移植摄像头: USB 摄像头 芯片:中星微ZC301P

注意你为何使用本文件针对 内核版本:linux-3.0.8-LZ210-V1 移植摄像头: USB 摄像头 芯片:中星微ZC301P     首先内核配置一些相关信息 一:添加驱动(video) m...

关于ZC0301摄像头问题

装了之后连接到虚拟机下redhat文件下 我以后他们自己集成了摄像头驱动的东西    原来是我太天真了 linux下也要你自己  因为你去找设备找不到  [root@root spc...

Dragonboard410c Android USB Camera 使用:mjpg-streamer 移植到Android平台(三)

mjpg-streamer移植的android平台也很简单,只要写好Android.mk文件进行编译就行。由于mjpg-streamer是基于jpeg库来处理摄像头数据的,因此在移植mjpg-stre...

Android移植源码APP(USB CAMERA APK)问题总结

最近公司的一个项目(行车记录仪)要求能支持USB camera(兼容uvc)预览显示。在网上浏览了一番相关知识,了解到要使android系统支持usb 摄像头,除了要打开内核中的驱动支持之外,还需要加...

mini6410移植cmos和usb camera到android中

友善在新的版本上闭源了多媒体相关的驱动,而我花了好多钱从友善那里买的camera不能浪费啊,所以就只好自己porting了。好久不写东西了,而且在libreoffice里排好版贴上来就乱了...
  • hnmsky
  • hnmsky
  • 2011年11月26日 22:59
  • 3871

linux 2.6.35内核移植- USB camera功能添加

一、环境 主机环境 :ubuntu 10.10         目标机:FS2410(S3C2410)         主机工具链 :gcc-4.4.5         交叉工具链:arm-n...

如何查看你的USB摄像头是不是中星微ZC301系列的摄像头

转载自 sww的生活最终编辑 依然节奏蓝调      之前就一直为这个问题而烦恼,实在找不到好的办法。自己用的摄像头呢,就直接把它拆开,查看里面的DSP视频芯片组,一看是励志SGS310的,不行啊,总...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:移植usb-camera(ZC0301PLH)
举报原因:
原因补充:

(最多只允许输入30个字)