一、对任务的理解
1、项目概述
本项目需要实现以嵌入式Web服务器为核心的视频监控系统。
摄像头采集的到的图像经过压缩后,传到内置的web服务器中。用户只需要通过浏览器就可以观看摄像头采集到的数据。
2、系统架构
该项目基本可以看作B/S架构,由有三部分组成:
(1)核心服务端:其实是客户端(严格意义上说,PC上的浏览器才是客户端)一台普通的PC机,需要与前端数据中心在同一局域网中,然后通过浏览器对系统进行监控和设置。
(2)前端数据中心:FS4412开发平台,可以连接摄像头、GPRS、zigBee、传感器、WIFI等模块。
(3)远程控制终端:zigBee模块、摄像头等用来进行信息采集的设备。采集到的信息有前端数据中心进行处理。
3、其他注意事项
(1)由于摄像头的问题,未实现使用摄像头监控,也未实现wifi模块,而是采用网线直连。
二、任务的划分与实现
1、任务的划分
(1)环境搭建
(2)编译源码
(3)镜像烧写
(4)前端数据中心数据接收与处理模块的调试
(5)理解Web服务器的搭建与配置
2、分工实现
(1)环境搭建
仅需在VMware Workstation Pro打开打开虚拟机即可
(2)编译源码
编译源码的环境是在Linux下,首先应先熟悉Linux终端的一些操作。
cd 进入一个目录 如cd /usr/local 或者是cd usr,用cd ..返回上一层。
利用tab来补全命令。
Mkdir 是一个用来在 Linux 系统下创建目录的命令。是一层一层的创建,可以创建后用cd打开然后创建。
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。如cp/xx/xx ./是将文件拷贝到当前目录下。利用这两条指令以及cd指令拷贝源码。
编译源码需要修改环境变量,BootLoader编译,Linux内核编译,主应用程序编译,根文件系统镜像制作。
①完成bootloader的编译与SD bootloader的编译
②Linux内核的编译
下面是根据指导书进入Linux内核配置图形界面。
下面是用make工具完成zImage内核二进制文件的截图
等待片刻之后,linux内核编译完成
③ 主应用程序编译
直接用make工具即可
④ 根文件系统镜像制作
在制作根文件时需要将之前编译好的应用程序、驱动等项目拷贝到rootfs下。
(3)烧写镜像
制作SD卡启动盘
用读卡器将SD卡插入电脑,虚拟机识别SD读卡器,将uboot烧写到sd卡,将SD卡插入开发板SD卡槽内,拨码至1000,连接开发板。在win上设置串口调试工具,选择Serial连接方式(如果不选择的话直接open会导致乱码,其中COMX由设备管理器看)。启动开发板,在倒计时5s结束前,按任意键停止。
安装Fastboot。
在安卓手机中fastboot是一种比recovery更底层的刷机模式。就是使用USB数据线连接手机的一种刷机模式。相对于某些系统(如ios)卡刷来说,线刷更可靠,安全。
在计算机属性下的系统属性,查看高级,选择环境变量,编译系统变量的path项,在变量值最后添加D:\Fastboot.使用win+r,输入cmd,输入fastboot测试是否安装成功。
在设备管理器中是否有Android,有则更新驱动,路径选择D:\Fastboot。
由于本机搜索不到Android,使用他人的计算机完成烧写。
烧写到开发板的Flash
硬件连接后拨动至1000 ,设置串口工具后,启动开发板,按任意键暂停,输入sdfuse flashall。等烧写结束,关闭开发板,拨至0110,启动开发板,暂停。输入fdisk -c 0
对SD卡分区,输入fastboot,再执行flash-all.bat。
在cmd命令行中输入fastboot flash BootLoader u-boot-fs4412.bin完成烧写BootLoader。
在cmd命令行中输入fastboot flash kernel zimage完成烧写内核镜像zimage。
在cmd命令行中输入fastboot flash system system.img完成烧写根文件系统镜像。
三、个人的体会
在本次的课程设计中遇到了许多的问题。由于以前从未接触过Linux操作系统,首先先熟悉Linux的操作环境。在Linux的操作下,输入代码的时候需要注意是否有空格。例如cp/mnt/hgfs/share/fs4412/u-boot-2010.03-FS4412_V4.tar.xz ./的./其中与前面有空格意为拷贝到当前文件夹。以及sudo的权限问题。
原文地址:https://www.cnblogs.com/beifangbanxian/p/9127448.html