基于linux-2.6.32.2的servfox移植
說明:這篇文章是本人在做基于web客戶端的遠程監控系統課題期間,在移植servfox應用服務程序費了很大周折,所以寫下的。
只是介紹了基于arm的servfox移植【因為其他部分的移植沒有遇到過錯誤】
前言:
如何移植基于linux的USB攝像頭驅動,及搭建web服務器。請參考這篇文章:?點擊打開鏈接
正文:
1.下載servfox軟件,在你虛擬機下解壓
2.將makefile.arm 文件名改為 makefile
3.修改 spcav4l.c 文件
/* Only jpeg webcam allowed */
(1))
if(vd->cameratype != JPEG) {
exit_fatal ("Not a JPEG webcam sorry Abort !");
2)/* if (vd->formatIn != vd->videopict.palette?
? ?? ?vd->bppIn != vd->videopict.depth)
? ? exit_fatal ("could't set video palette Abort !");
if (erreur < 0)
? ? exit_fatal ("could't set video palette Abort !");*/
這兩段注銷掉,否則會出現wrong spca5xx device
Not a JPEG webcam sorry Abort ! ?
這樣的錯誤
4.make 然后 將生成的servfox 復制到開發板目錄
執行 ./servfox -d ?/dev/video0 ?-g ?-s 320*240 ?-w 7070
【如果復制到了usr/bin目錄,則去掉前面servfox的 ?./
說明:
此命令如果不加 -g 會出現
wrong spca5xx device
Waiting .... for connection. CTrl_c to stop !!!!?
cvsync err
: Invalid argument
cmcapture: Invalid argument
這樣的錯誤。
-g表示use read method for grab instead mmap?
5.本人出現的問題
耗費本人幾天的問題并不是此應用程序servfox的問題
當我執行?./servfox -d ?/dev/video0 ?-g ?-s 320*240 ?-w 7070
移植提示 illegal instruction 的錯誤,及非法指令。
由于缺乏相關的經驗,開始一直以為是此程序的問題,編譯時沒有加上鏈接庫,嘗試過靜態編譯,然后還是提示此錯誤。最后在朋友的提醒下,是我的交叉編譯器的問題,我之前是在s3c6410的板子上開發的,所以用的交叉編譯器是4.3.1for6410的,現在是基于s3c2410的平臺開發的,更換了一個4.3.32for 2410的。錯誤解決了。
總結:其實出現上述錯誤,還是對交叉編譯器的認知不夠,當時只知道交叉編譯器是用來在一個平臺上開發是例外一個平臺上運行的程序,如在電腦端開發基于ARM的程序,卻沒有理解arm的體系結構并不一樣,他們的指令集有交叉【我開始有懷疑是交叉編譯器的問題,用for6410的交叉編譯器編譯一個簡單的hello程序,是可以再2410板子上正常運行的】,但是還是有很大不同的【具體有什么,暫時還不清楚】
轉載于:https://www.cnblogs.com/stoneFang/archive/2013/05/06/6715340.html
總結
以上是生活随笔為你收集整理的基于linux-2.6.32.2的servfox移植的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Comet OJ - Contest #
- 下一篇: linux 其他常用命令