在學校拿了塊友善之臂的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 去掉調試信息。