mini6410开发板上实现usb摄像头B/S方式网络监控
在学校拿了块友善之臂的mini6410回来··打算在项目上加个B/S的摄像头监控··以前在博创的2410上看到有这个实验,当初看实验指导书觉得好像有点麻烦就不做了·· 直到上个星期拿了个友善之臂的mini2440,又有个想在上面做的冲动··搞了一番,发现网上有个mjpg-streamer的谷歌开源项目,还是专门针对mini2440的··一移植就上去能跑了(mjpg-streamer这个配合合适的摄像头才行,中微星那个好像是不行的,后来用了个蓝色妖姬可以```)。 详见http://code.google.com/p/mjpg-streamer-mini2440/
之后由于屏幕大小和性能等各种原因,掏钱淘宝了块mini6410回来```实现摄像头监控基本有2中方法,一种是直接使用V4L接口采集图像信息,通过网络发送给客户端,客户端绘图在界面上显示;室友有做过这个,但由于我对V4l不太了解,短时间上手有点麻烦,所以果断打消这个念头。 另外一种方法是利用B/S方法实现,这方面的资料比较多···例如mjpg-streamer,servfox、spcaview、boa、SDL等···经试验在6410上移植mjpg-streamer的方法不行··而根据博创指导书移植spcaview的方法也不行(移植过程出错较多)··最后就用了这种servfox+spcaview(要用http-java-applet)+boa的方法。 集合一下网上的资料和实际情况总结一下:
板上内核版本:linux-2.6.28.6
交叉编译工具:arm-linux-gcc 4.4.1
boa-0.94.13.tar.gz,servfox.tar.gz,spcaview-20061208.tar.gz
1。先移植boa,制作嵌入式web服务器
解压后进入src目录 ./configure,
修改Makefile,找到CC=gcc和CPP=gcc -E,将其改为交叉编译器安装的路径CC=arm-linux-gcc和CPP=arm-linux-gcc -E 并保存退出。
make;
其中make的过程中可能会遇到一些错误··
错误1:
debian:/home/a/boa-0.94.13/src# make
yacc -d boa_grammar.y
make: yacc: Command not found
make: *** [y.tab.c] Error 127
解决方法:
debian:/home/a/boa-0.94.13/src# apt-get install bison
错误2:
debian:/home/a/boa-0.94.13/src# make
lex boa_lexer.l
make: lex: Command not found
make: *** [lex.yy.c] Error 127
解决方法:
debian:/home/a/boa-0.94.13/src# apt-get install flex
错误3:
debian:/home/a/sss/boa-0.94.13/src# make
gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
解决方法:
修改 src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
然后
debian:/home/a/sss/boa-0.94.13/src# make clean
debian:/home/a/sss/boa-0.94.13/src# make
最后 # arm-linux-strip boa 去掉调试信息。