S3c2410-linux实现网络视频监控功能

       也不知道以下的这篇文章最初来自哪里,正在照着做,出现一些意想不到的困难,解决中......
这两天一直在作一个网络视频监控的项目,前两天在 X86 平台上实现了,从昨天开始就一直想怎么把它移植到 s3c2410 开发板上。 想一个比较简单的办法:板子上的内核版本号是 2.4.18- rmk7-pxa1, 我就到网上下一个 2.4.18 的内核和一个 for arm 的补丁,通过编译内核生成自己需要的摄像头驱动模块,然后把驱动模块拷到开发板上,最后加载模块就行了。
加载摄像头驱动
下载内核补丁和摄像头驱动补丁 http://ftp.linux.org.uk/pub/linux/arm/kernel/v2.4/patch-2.4.18-rmk7.bz2 (内核补丁) http://mxhaard.free.fr/spca50x/embedded/KernelPatch/usb-2.4.31LE06.patch.tar.gz ( 摄像头驱动 spca5xx 的补丁 )
但是 , 有时候需要对 " 官方内核 " 添加补丁 , 以支持特定的系统 . 比如 ARMLinux, 它往往不是发布完整的内核 , 而是发布针对特定版本的补丁包 . 这种情况下就要知道如何打补丁了 . 方法很简单 : 把补丁下载 , 解压 . 得到 patch-<version>. 将它放到解压后的内核目录树的父目录中 ( 也就是补丁和内核目录在同一目录 ). 然后 cd 到内核目录树中运行 :

$ patch -p1 <../patch-<version>
修改内核补丁版本号打开 patch-2.4.18-rmk7 文件,把
+EXTRAVERSION = -rmk7
改为
+EXTRAVERSION = -rmk7-pxa1
前面已经说过板子上的内核版本号是 -rmk7-pxa1 ,所以此处要将它改过来,否则在加载模块时会出现 内核版本号不一致 的错误
打内核补丁 cd linux-2.4.18
patch -p1 < ../patch-2.4.18-rmk7
打摄像头驱动补丁 cd linux-2.4.18/drivers/usb
patch -p1 < ../../../usb-2.4.31.patch
此处会出现两个错误,解决方法如下: Makefile.rej 文件中的
subdir-$(CONFIG_USB_SPCA5XX)  += spca5xx
ifeq ($(CONFIG_USB_SPCA5XX),y)
    obj-y += spca5xx/spca5xx.o
endif
加到 Makefile 文件中
Config.in.rej 文件中的
dep_tristate '  USB SPCA5XX Sunplus Vimicro Sonix Cameras'  CONFIG_USB_SPCA5XX     $CONFIG_USB $CONFIG_VIDEO_DEV
加到 Config.in 文件中
编译内核打开 Makefile 文件,把
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
CROSS_COMPILE =
改为
ARCH := arm
CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
此处只能用 2.95.3 版的,如果用比它高的版本就会出现
“arm-linux-ld:arch/arm/kernel/vmlinux.lds:799: parse error
make: *** [.tmp_vmlinux1]”
的错误
内核配置
make menuconfig
此处只需选择两处就行了:
Multimedia device --->
<M>Video for linux
USB support  --->
<M> Support for USB
--- USB Multimedia devices
<M>   USB SPCA5XX Sunplus Vimicro Sonix Cameras
这些选项一定要是 M
然后 make dep && make modules 就行了,因为我们不需要内核映像文件所以就把 make zIamge 省去了
需要的点 o 文件可能需要四个点 o 文件: spca5xx.o spca_core.o spcadecoder.o videodev.o
linux-2.4.18/driver/usb/spca5xx 文件下有: spca5xx.o spca_core.o spcadecoder.o
linux-2.4.18/driver/media/video 文件下有: videodev.o
有以下四种方法文件拷贝到开发板上:
1) U 盘等移动设备
2) NFS 服务
3) FTP 服务
4) Apache+wget
加载模块 insod videodev.o
会在 /dev 目录下生成一个 video0 的字符设备文件
insod spca5xx.o
若出现类似于以下的信息就代表成功了:
usb.c: registered new driver spca5xx
spca_core.c: spca5xx driver 00.57.06LE registered
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值