加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 单片机学习

让嵌入式Linux支持普通USB摄像头

时间:2013-11-23  来源:123485.com  作者:9stone

    我用的是最普通的usb摄像头,主芯片为中星微ZC0301P(据说市场占有率70%以上),COMS传感器为hynix的hv7131e1,市面上能买到的基本上是这种配置。
    linux下驱动,我直接移植spca5xx,现在出了spc5xx-le(Light-Edition for Linux Embedded)更方便,直接针对嵌入式系统做了优化,可以参考这里http://mxhaard.free.fr/embedded.html

刚才实验了一下,spc5xx-le也可以用。下面就以spc5xx-le为例。
具体步骤:
1、我的linux是ATMEL最新版本,Linux-2.4.27-vrs1-Atmel。toolchain为arm-linux-2.95.3。
2、配置内核,试着让linux可以在at91rm9200上运行起来。
3、下载补丁(http://mxhaard.free.fr/spca50x/Doc/KernelPatch),打补丁
    cp usb-2.4.31.patch.gz  /work/Atmel-9200-dist/linux-2.4.27-vrs1-ATMEL/drivers/usb
    cd /work/Atmel-9200-dist/linux-2.4.27-vrs1-ATMEL/drivers/usb
    tar -xvzf usb-2.4.31.patch.gz
    patch -p1 < usb-2.4.31.patch
4、重新配置内核,内核 USB support  ---> USB Multimedia devices   选项下应该有
   <M>   USB SPCA5XX Sunplus Vimicro Sonix Cameras,要把它配置成module。
5、让内核支持usb-ohci 和video for linux (V4L)。
6、重新编译内核,make dep Image module
   make module 后,在/work/Atmel-9200-dist/linux-2.4.27-vrs1-ATMEL/drivers/usb/spc5xx/目录下生成spc5xx.o
7、加载新内核运行。
8、配置网络 ifconfig eth0 192.168.8.241
9、mknod /dev/video0 c 81 0
10、insmod spca5xx.o 会找到摄像头
  [root@AT91RM9200DK /]$insmod spca5xx.o
  usb.c: registered new driver spca5xx
  spca_core.c: USB SPCA5XX camera found. Type Vimicro Zc301P 0x301b
  spca_core.c: spca5xx driver 00.57.06LE registered
  [root@AT91RM9200DK /]$
11、下面就是应用程序的问题了,我一直了一个webcam server,交叉编译后,可以在ARM上运行了。如果自己写,主要是熟悉v4l编程,关于v4l我不太懂,就不献丑了。


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->单片机学习
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门