您的位置:首页 > 运维架构 > Linux

基于linux2.6.32.2的远程监视系统

2011-11-30 11:24 232 查看
最近花了很长的时间在学习,嵌入式的相关知识,也一直在做着实践工作。

把最近所学所做的东西整合一下,正好完成了一个嵌入式的远程监视系统。

那么首先来说一下我的硬件和软件。

虚拟机:ubuntu11.04和fodera9.0(为什么是两个呢?因为我主要是在ubuntu下开发的,但是有时候ubuntu库文件确实不全,

为了节省时间后半程是在fodera9.0下面进行的开发。建议初学者用fodera9.0)

硬件:mini2440开发板

交叉编译器是:4.3.2

因为这个系统全程DIY,所以步骤很繁琐,很多文档我都在别的博客中贴了出来所以,再此整合一下。

首先第一步是编译内核,

请参照
http://blog.csdn.net/zhaole20094463/article/details/6882266
第二步是做一个跟文件系统

参照
http://blog.csdn.net/zhaole20094463/article/details/7001563 http://blog.csdn.net/zhaole20094463/article/details/6899439
遇到问题在网上搜索一下应该不难。

这两步都完成了,系统便和你可以通过串口交互了。

那么接下来我们分析一下问题和需要。

首先

我们的系统要独立于电脑而存在,因为远程嘛,所以需要输入和输出设备。

那么在开发板上提供的输入输出设备是什么呢?

usb键盘和LCD屏

好了,那么下一步我们来移植usb键盘驱动和LCD屏驱动。

参考:
http://blog.csdn.net/zhaole20094463/article/details/6901880 http://blog.csdn.net/zhaole20094463/article/details/6905297
这两步都移植成功了,可是LCD屏幕上除了一个小企鹅或者是一个闪烁的光标外什么也没有

当然,光着两步还不够我们还要在根文件系统中进行设置。

参考:
http://blog.csdn.net/zhaole20094463/article/details/6905303
这些都做完了,终于我们的开发板可以和我们进行独立的交互了,(不是通过串口)

那么,接下来我们需要什么呢?

我们如果想要远程访问的话,那么肯定是通过网路。所以我的开发板内核中一定要有相应的网卡驱动

才行。那么继续努力,移植网卡驱动
http://blog.csdn.net/zhaole20094463/article/details/6927201
网卡驱动也移植成功了,可是这还不够因为,如果我们的开发板要想发布网页来让别的电脑可以远程登录的话,

那么一定要嵌入服务器才行,

总共有两种一种是boa服务器,一种是apache服务器,两种我都移植过。

可以参照:
http://blog.csdn.net/zhaole20094463/article/details/7024530 http://blog.csdn.net/zhaole20094463/article/details/7024722
再者我们需要采集视频信息,那么摄像头驱动则必不可少,同时在根文件系统中也要加入

一个视频流采集程序。

关于摄像头的驱动

Makemenuconfig

DeviceDrivers--->

<*>Multimediasupport--->

<*>VideoForLinux

[*]EnableVideoForLinuxAPI1(DEPRECATED)(NEW)

[*]Videocaptureadapters(NEW)--->

[*]V4LUSBdevices(NEW)--->

<*>USBVideoClass(UVC)

[*]UVCinputeventsdevicesupport(NEW)

<*>GSPCAbasedwebcams---->(里面的全选上)

这样基本上你的摄像头驱动支持应该就没有问题了。

(当然我们在做测试的时候试了两种摄像头,一种是UVCvideo具体型号不知道了,第二种是ov511

前一种是好使的,打印信息如下

[root@Happymjpg-streamer]#./mjpg_streamernterface driver s

usbcore: registered new

i: Desired Resolution: 640 x 480

MJPG-streamer [1152]: Desired Resolution: 640 x 480

i: Frames Per Second.: 5

MJPG-streamer [1152]: Frames Per Second.: 5

i: Format............: MJPEG

MJPG-streamer [1152]: Format............: MJPEG

o: www-folder-path...: disabled

MJPG-streamer [1152]: www-folder-path...: disabled

o: HTTP TCP port.....: 8080

MJPG-streamer [1152]: HTTP TCP port.....: 8080

o: username:password.: disabled

MJPG-streamer [1152]: username:password.: disabled

o: commands..........: enabled

MJPG-streamer [1152]: commands..........: enabled

MJPG-streamer [1152]: starting input plugin

MJPG-streamer [1152]: starting output plugin: output_http.so (ID: 00)

后一种是不好使的打印信息如下

#./mjpg_streamer]root@Happymjpg-streamer]#./mjpg_streamer

MJPG-streamer [1048]: starting application

MJPG Streamer Version.: 2.0

MJPG-streamer [1048]: MJPG Streamer Version.: 2.0

i: Using V4L2 device.: /dev/video0

MJPG-streamer [1048]: Using V4L2 device.: /dev/video0

i: Desired Resolution: 640 x 480

MJPG-streamer [1048]: Desired Resolution: 640 x 480

i: Frames Per Second.: 5

MJPG-streamer [1048]: Frames Per Second.: 5

i: Format............: MJPEG

MJPG-streamer [1048]: Format............: MJPEG

Pixel format is unavailable, using O511

should never arrive exit fatal !!

i: init_VideoIn failed

MJPG-streamer [1048]: init_VideoIn failed

尝试了一些方法始终想不到问题在哪里,希望某位大神可以给予帮助

或者谁遇到了相似的问题大家互相交流)

接着就是将一个视频流采集软件考到开发板上,

mjpg-streamer这个的具体介绍你可以在网上搜索一下

我这里用到的功能就是启动它后,它会自动调用摄像头驱动,采集视频并显示到一个网页上

参考:

/article/8321699.html

这里还有一点要说明的关于mjpg-streamer有两种一种是需要你自己编译的另外一种是不需要你自己编译的

放到开发板上就好使。如前所述:我的编译器是4.3.2我想如果编译器是一样的是可以通用的。

关于mjpg-streamer 和以后要遇到的jpeglib的编译

参考

/article/8321701.html

两种源码都下载了,

http://download.csdn.net/detail/zhaole20094463/3860868

http://download.csdn.net/detail/zhaole20094463/3860939

同时我们还需要一个支持jpeg的lib库

把它考到开发板上的根文件系统/lib目录下就好了

http://download.csdn.net/detail/zhaole20094463/3860981

以上这个是编译好的

http://download.csdn.net/detail/zhaole20094463/3861014

这个是源码,需要编译的。

如果这些都做完了,恭喜你,你就可以通过网络来访问你的开发板

并进行视频监控了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: