EDA365电子论坛网

标题: 移植gspcav1 [打印本页]

作者: uqHZau    时间: 2020-9-17 17:51
标题: 移植gspcav1

Kernel version :2.6.22.6
4 d/ P( m- s; f. @/ @Crosstool      :arm-linux-gcc-3.4.5% e' c8 ]9 I1 z
Board          :FS2410

System         :Fedora 8
7 k* y3 J6 Q9 \' R# tSource         :gspcav1-20071224、servfox-R1_1_3、spcaview-20061208

Author                   :http://viviwei.cublog.cn

一、移植gspcav1-20071224

gspcav1-20071224下载地址:http://www.slackware.com/~alien/ ... av1-20071224.tar.gz& O& ^! e% l* n' U
FS2410开发板上移植的是Linux-2.6.22.6内核,USB及CS8900A均能工作,由于linux-2.6.22.6/drivers/usb 目录下没有 media 目录,故移植步骤如下:5 N1 T, [8 K5 M  x
a)  在 linux-2.6.22.6/drivers/usb 目录下新建 media 目录,将gspcav1-20071224.tar.gz copy 到 media  下并解压。为了使media 编译进内核,需修改linux-2.6.22.6/drivers/usb 目录下的Kconfig、Makefile 文件。
9 k8 w8 f: ]2 ~& @/ S3 d+ X[linux@weijing usb]$ pwd
/ b* S8 z0 V! |0 b3 `/ x% V7 V/work/kernel/linux-2.6.22.6/drivers/usb
6 U- R* A" I" L4 U[linux@weijing usb]$ vi  Kconfig
, p$ T% q! ], S' M6 t添加3 v, W1 Y8 P: N5 F; o& ], ?
source "drivers/usb/media/Kconfig"
, C. ^4 [4 R4 a% `9 m[linux@weijing usb]$ vi Makefile  Q: }+ [. ]8 h, |/ P
添加0 V3 m( R0 l: C; }
obj-$(CONFIG_USB_SPCA5XX)        += media/$ ~$ g' U1 Z# {; T8 |5 k
b)  为添加 gspcav1-20071224 编译选项,在 media 下新建 Kconfig、Makefile 文件。
2 m4 S: t# w) e[linux@weijing media]$ pwd
4 p( ]; a. r2 E! N/work/kernel/linux-2.6.22.6/drivers/usb/media* f* f2 i8 w: r) \
[linux@weijing media]$ vi Kconfig
0 i, W& S+ A' z, w! y#4 W' K% X5 }4 m/ M! V4 h
# USB Multimedia device configuration$ @' R# ~2 |, D" ?* ^
#
% u/ N9 q7 X/ J) f+ f$ W  _comment "USB Multimedia devices"; Y- ?: Y% C# F% \4 W
        depends on USB
- n0 g6 y" F  i& K% w& J) Zconfig USB_SPCA5XX$ B/ g$ J& F/ W( B5 S# W- f0 z% s$ j
        tristate "USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras"  k+ t+ S# J4 i* @1 o
        depends on USB && VIDEO_DEV
4 [) p$ i4 X3 F9 v        ---help---( c# @. x- Y- C: e- V; J  M
          Say Y or M here if you want to use one of these webcams:
- v! l4 a; e% [: _+ |- u( Y% Q. I          The built-in microphone is enabled by selecting USB Audio support.7 c$ l. m+ q7 k7 d' ]
          This driver uses the Video For Linux API. You must say Y or M to
: e2 r: K8 P) r, h( \, s          "Video For Linux" (under Character Devices) to use this driver.
) S- v  N, a/ w8 m; k          Information on this API and pointers to "v4l" programs may be found6 d- E0 }6 ~, h3 @3 g# F5 p
          at <Documentation/video4linux/API.html>.
' ]! \8 w" O& J          To compile this driver as a module, choose M here: the
9 }* {* p% r. Z7 W" G- x          module will be called spca5xx.
4 h5 m' T6 G7 Z( a3 V* p/ ~[linux@weijing media]$ vi Makefile
. F! K9 X6 }9 h$ F#; D& K; k1 q  @+ X: ]5 {# [, @
# Makefile for USB Media drivers$ _0 }0 ]$ `* q; R
#
: O( C% ~# s0 C. w& O: H4 Oobj-$(CONFIG_USB_SPCA5XX)   += gspcav1-20071224/! O1 D# |! E6 U: P' W3 {. V/ s
c)  修改 gspcav1-20071224 的 Makefile
& r1 o1 ~' a) ^% J+ G% c[linux@weijing gspcav1-20071224]$ pwd7 R, x  d0 D7 {$ d! l/ h3 x* U
/work/kernel/linux-2.6.22.6/drivers/usb/media/gspcav1-20071224
" w7 E5 J8 Q* t7 S! J[linux@weijing gspcav1-20071224]$ vi Makefile  V9 }$ m: W1 g
gspca-objs := gspca_core.o decoder/gspcadecoder.o6 {  _* m0 j' R+ @
obj-$(CONFIG_USB_SPCA5XX) += gspca.o
  a9 a1 ?0 r1 a' Sclean:
. r7 x' T! N/ S6 o( g        rm -f *.[oas] .*.flags *.ko .*.cmd .*.d .*.tmp *.mod.c / a9 a' ^7 x7 z7 I
        rm -rf .tmp_versions
5 g. j3 H. j; C" S* B/ ]. ?d)  编译内核

(1)Multimedia devices  --->
5 m- s* x3 y3 t# I: W; ~         Video For Linux, \8 a6 r/ E& q1 n& W( S6 \% k
(2) USB support  --->7 o5 l5 y5 n0 Q+ ]
        Support for Host-side USB
. m! F+ l. F9 t" U8 g       --- USB Host Controller Drivers   
0 J: G2 J% ^2 b* E; A        OHCI HCD support# m  f# D- e8 ]) @5 y
(3)--- USB Multimedia devices
9 L1 k5 @( M, I* g' S+ e* |+ w     USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras

此时,可能会提示 gspca_core.c 的一些轻微错误,稍作修改即可:* B6 K& G: T1 X; m
//static const char gspca_version[] = GSPCA_VERSION;
& Y+ j% y: `1 v4 k; G- u0 z/ s( cstatic const char gspca_version[] = "00.60.00";
1 O7 N! e+ }& P" A' y* m把新生成的 uImage 烧进开发板,重启,插上中星微芯片的摄像头,命令行出现5 X8 U/ ^" P$ a' X3 T6 w
# usb 1-1: new full speed USB device using s3c2410-ohci and address 2           
! F! s& L/ d* a" T2 {usb 1-1: configuration #1 chosen from 1 choice                                 
3 @( o& ^* a' {7 X1 Odrivers/usb/media/gspcav1-20071224/gspca_core.c: USB GSPCA camera found.(ZC3XX)
1 ~" F/ |) i9 ^4 z1 I0 F4 q  u; \说明移植的驱动已经能识别设备,设备名所在路径 /dev/video0。
7 }2 D8 a, _, I6 j5 ^二、servfox
. A6 r1 P5 ~2 B. c4 d    服务器端程序用是servfox,通过它可以在PC上看到开发板采集来的图像,从这里下载

http://mxhaard.free.fr/spca50x/embedded/Servfox/servfox-R1_1_3.tar.gz
8 e$ F7 i9 I7 \& `8 v# J6 ^3 P下载,解压,进入其目录,发现没有一个makefile.arm,还有一个makefile.386,将makefile.arm改名为makefile,然后输入命令 make,生成 servfox 可实行文件,copy 到开发板运行之:

# ./servfox -d /dev/video0 -g -s 640x480 -w 7070                                
0 g# _! _" Q1 |  R% K# h! bservfox version: 1.1.3 date: 11:12:2005 (C) mxhaard@magic.fr  e1 Q! _/ i" C& ~
wrong spca5xx device                                                            & {+ B$ ~  D; o1 n$ W" s& D+ h0 r- `$ V
Waiting .... for connection. CTrl_c to stop !!!!                                
. F/ ]' \, L+ P: xGot connection from 192.168.1.2
! H8 A. E( k# v3 |1 q- M+ {三、spcaview
1 O% L; A7 a  E0 Y客户端程序使用的是spcaview,下载地址为:

http://mxhaard.free.fr/spca50x/Download/spcaview-20061208.tar.gz
/ k1 w" ~2 K% g这个程序在PC 上运行,直接解压编译,生成 spcaview 可实行文件,运行如下:

[root@weijing spcaview-20061208]# ./spcaview -g -w 192.168.1.17
9 Y' O; V7 Q4 K% n- o, T: v1 eSpcaview version: 1.1.7 date: 06:11:2006 (C) mxhaard@magic.fr
0 X6 ]- o4 h, H4 |' Z6 LERROR Set default port to 7070 / q7 H" e7 Z. w8 D; D% ?
using Server 192.168.1.17 Port 7070
# ?# o, O6 j/ f7 O/ Z6 Jbright 32768 contrast 32768


0 ~, q4 k: {( X: ^
. a% i$ s# d9 p# E3 b: n5 ^6 L: m/ E3 E8 Z* B4 x$ h

作者: youOK    时间: 2020-9-17 18:29
为啥一看见移植就头疼




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2