让嵌入式Linux支持普通USB摄像头
我用的是最普通的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我不太懂,就不献丑了。
相关文档:
1.在线下载:wget http://www.realvnc.com/dist/vnc-4.0-x86_linux.tar.gz
2.解压缩:tar -zxvf vnc-4.0-x86_linux.tar.gz
可以看README里内容来安装
3。进入vnc目录下安装:./vncinstall /usr/local/bin
4。mkdir -p /usr/local/vnc/classes
cp java/* /usr/local/vnc/classes
5。启动vncserver
......
以 i2c-mpc.c 驱动模块为例
fsl_i2c_init -> of_register_platform_driver -> of_register_driver -> driver_register -> bus_add_driver -> driver_attach
-> bus_for_each_dev -> __driver_attach -> driver_probe_device -> really_probe -> drv->probe(dev); ......
man是manual(手册)的缩写
man可以在不同的版本中使用,主要分为两类。Red Hat和许多其他基于RPM的版本使用传统的man程序,而基于Debian的版本使用一个名为man-db的软件包。
man(1)
在文本窗口中浏览文件的方式在普遍使用HTML和PDF的时代中似乎有些过时了,但在终端窗口中阅读文件仍有其优势。对于那些Linux开发者来 ......
对Linux内核中进程上下文和中断上下文的理解
2010年3月3日 10:51 维库开发网 作 者:杨硕,华清远见嵌入式学院讲师
内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同 ......
从这个总结正式开始了我的驱动之旅,心情不免有点激动,尽管现在对驱动的编写还很模糊,但还是有纪念意义的……
开发平台:
虚拟机下RedHat9,内核2.4.20.8
交叉编译编译器:天嵌公司提供的arm-linux-gcc 4.3.3
内核树:/h ......