S3c2410-linux实现网络视频监控功能
2007-04-22 16:58
731 查看
这两天一直在作一个网络视频监控的项目,前两天在X86平台上实现了,从昨天开始就一直想怎么把它移植到s3c2410开发板上。由于这个板子的所 有资料全部丢失,如果从头再把u-boot、内核等所有的东东再移植一遍就比较麻烦,最后想一个比较简单的办法:板子上的内核版本号是2.4.18- rmk7-pxa1,我就到网上下一个2.4.18的内核和一个for arm的补丁,通过编译内核生成自己需要的摄像头驱动模块,然后把驱动模块拷到开发板上,最后加载模块就行了。 if (window.showTocToggle) { var tocShowText = "显示"; var tocHideText = "隐藏"; showTocToggle(); }
[编辑]
[编辑]
改为
前面已经说过板子上的内核版本号是-rmk7-pxa1,所以此处要将它改过来,否则在加载模块时会出现“内核版本号不一致”的错误
[编辑]
[编辑]
此处会出现两个错误,解决方法如下: 把Makefile.rej文件中的
加到Makefile文件中
把Config.in.rej文件中的
加到Config.in文件中
[编辑]
改为
此处只能用2.95.3版的,如果用比它高的版本就会出现
的错误
内核配置
此处只需选择两处就行了:
这些选项一定要是M
然后make dep && make modules就行了,因为我们不需要内核映像文件所以就把make zIamge省去了
[编辑]
linux-2.4.18/driver/usb/spca5xx文件下有:spca5xx.o、spca_core.o、spcadecoder.o
linux-2.4.18/driver/media/video文件下有:videodev.o
有以下四种方法文件拷贝到开发板上:
[编辑]
会在/dev目录下生成一个video0的字符设备文件
若出现类似于以下的信息就代表成功了:
[编辑]
加载摄像头驱动
[编辑]下载内核补丁和摄像头驱动补丁
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的补丁)[编辑]
修改内核补丁版本号
打开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.olinux-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
相关文章推荐
- S3c2410-linux实现网络视频监控功能
- S3c2410-linux实现网络视频监控功能
- Linux 网络协议栈开发代码分析篇之VLAN(二)—— Linux下VLAN功能的实现概述
- linux下实现监控进程网络带宽
- Linux设备上的Onvif实现18: ONVIF视频监视功能开发问题总结
- 基于AVI的网络视频监控存储系统的实现方法
- 安全实现Linux网络监控(1)
- 搭建Linux(centos5.3)+Apache2+Mysql5+Php5+zabbix1.8.5系统环境实现网络状况监控
- Linux 文件操作监控inotify功能及实现原理【转】
- 摄像头(WebCam)在Linux中采用Spcaserv 架设网络视频监控服务器 (v0.1b)
- Linux用ICMP协议实现简单Ping网络监测功能
- Linux-视频监控系统(3)-Epoll框架的实现
- Linux用ICMP协议实现简单Ping网络监测功能
- 基于AVI的网络视频监控存储系统的实现方法
- 安全实现Linux网络监控(2)
- Linux用ICMP协议实现简单Ping网络监测功能
- linux 判断文件最后更新时间 实现监控日志是否有输出功能
- linux裁剪--实现启动和简单网络功能
- Linux-视频监控系统(4)-摄像头子系统实现
- 安全实现Linux网络监控(3)