打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
USB摄像头(中星微ZC301)驱动程序的移植
嵌入式Linux平台USB驱动程序的移植

本驱动移植基本上参照
http://loveuzz.blogchina.com/loveuzz/4918763.html
这个博客上的。写的比较好。感谢网上这么多朋友的分享。开发环境:内核2.6.15.1,busybox1.0,用3.4.5版本编译busybox,驱动程序模块编译用的是3.4.3 release版本。

1.       下载USB补丁文件。我用的是USB-2.6.12.patch.rar.在
http://www.pudn.com/
网站上能找到。也可在此下载:
     

文件:
usb-2.6.12.patch.rar
大小:
51KB
下载:
下载
      解压此文件 .
2.       打补丁。在drivers/usb/media目录下建立spca5xx目录,mkdir spca5xx,返回/driver/usb目录下,把补丁文件也放在此目录下,执行 patch –p1 2.6.12.patch,就会在 usb/media/spca5xx目录下产生如下文件:
cs2102.h
hdcs2020.h
hv7131b.h
hv7131c.h
icm105a.h
Makefile
Makefile.2.4
Makefile.org
pas106b.h
pb0330.h
sn9cxxx.h
sp5xxfw2.dat
sp5xxfw2.h
spca5xx.h
spcaCompat.h
spca_core.c
spcadecoder.c
spcadecoder.h
spcausb.h
tas5130c.h
zc3xx.h
3. 修改drivers/usb/Makefile文件,在
   Obj-$(CONFIG_USB_W9968CF)  += media/
   之后添加一行:
   obj-$(CONFIG_USB_SPCA5XX)  += media/
4. 修改drivers/usb/media/Kconfig文件,在最后添加
   config USB_SPCA5XX
        tristate "USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras"
        depends on USB && VIDEO_DEV
        ---help---
          Say Y or M here if you want to use one of these webcams:
          The built-in microphone is enabled by selecting USB Audio support.
          This driver uses the Video For Linux API. You must say Y or M to
          "Video For Linux" (under Character Devices) to use this driver.
          Information on this API and pointers to "v4l" programs may be found
          at .
          To compile this driver as a module, choose M here: the
          module will be called spca5xx.
5.        配置内核 make menuconfig
(1)Multimedia drivers à
Video For Linux
     (2) USB support à
              Support for Host-side USB
                            -- USB Host Controller Drivers
              OHCI HCD support
(3)       --USB Mulltimedia devices
               USB SPCA5XX Sunplus/Vimicro/sonix jpeg Cameras
6.        编译内核及模块 ,在源码根目录下执行 make ;make modules就行。当然你得指定交叉编译环境,可以在顶层的Makefile 里面修改。
7.        拷贝模块文件至开发板目录下
cp  drivers/media/video/v4l1-compat.ko  /home/yuaf/root_nfs/
cp  drivers/media/video/v4l2-common.ko /home/yuaf/root_nfs/
cp  drivers/media/video/videodev.ko/    /home/yuaf/root_nfs/
cp drivers/usb/core/usbcore.ko         /home/yuaf/root_nfs/
cp  drivers/usb/media/spca5xx/spca5xx.ko  /home/yuaf/root_nfs/
8.        9、将USB摄像头插入开发板(注:必须先插入摄像头才能插入模块文件,否则系统会出现kernel oops
9.        重新启动开发板
10.    插入模块文件(注:这里必须注意模块的插入顺序,这是因为模块的依赖关系
Insmod usbcore.ko
Insmod ohci-hcd.ko
Insmod v4l1-compat.ko
Insmod v4l2-common.ko
Insmod videodev.ko
Insmod spca5xx.ko
插入以上模块之后,建议设备文件
Cd /dev
Mknod video0 c 81 0
也可以将以上语句写到 /etc/init.d/rcS文件中,当开发板启动时自动加载模块。加载过程中出现如下信息。

usbcore: registered new driver usbfs
usbcore: registered new driver hub
Using ohci-hcd.ko
Set S3C2410 UPLLCON!
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: Product: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.15.1 ohci_hcd
usb usb1: SerialNumber: s3c24xx
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Using v4l1-compat.ko
Using v4l2-common.ko
usb 1-1: new full speed USB device using s3c2410-ohci and address 2
Using videodev.ko
usb 1-1: Product: PC Camera
usb 1-1: Manufacturer: Vimicro Corp.
Linux video capture interface: v1.00
Using spca5xx.ko
drivers/usb/media/spca5xx/spca_core.c: USB SPCA5XX camera found. Type Vimicro Zc301P 0x301b
usbcore: registered new driver spca5xx
drivers/usb/media/spca5xx/spca_core.c: spca5xx driver 00.57.06LE registered
这样这个驱动就移植完成了。
11.    用命令测试
Cat /dev/video0 > /tmp/a.jpg.
进入tmp目录可以看见有此文件。
也可以用servfox 和 spcaview 进行数据的采集和查看,在嵌入式Linux版块中对此有相关的介绍。
总结:在整个过程中要还是要注意编译器的问题,若生成模块,你也可以用modinfo 查看一下模块的信息。内核版本要一致等。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
电子方面的问题
Linux 下摄像头驱动支持情况
菜鸟学Linux移植lesson3之WebCamera
摄像头(WebCam)在Linux操作系统中的驱动方法 (v0.1b) | LinuxSi...
mini2440 uboot使用nfs方式引导内核,文件系统
s3c6410的 usb host问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服