一、boa web服务器介绍
boa服务器是一个细巧高效的web服务器(巨细只要60kb),效率高,专为嵌入式运用而开发,能够支撑CGI脚本合适各种资源有限的嵌入式运用环境,是一种单任务的web服务器,其关于http的恳求选用次序履行办法来完结,不会调用fork创立新的进程来完结,可是在履行CGI的时分,起选用的是多进程的办法,能够独自为CGI程序fork相应的进程来履行,这种规划办法极大的确保了再嵌入式渠道上布置web服务不会给渠道带来过大的压力和过多的资源损耗而影响渠道运转其他运用的功能,十分合适一些嵌入式的运用需求。
图1 Boa log
二、准备工作
1)下载Boa源码包
在http://www.boa.org/网站上能够下载最新的Boa源码,本文移植进程中下载的是0.94.13版别。
2)建立开发环境
本文移植的进程是根据linux体系环境下完结的,需求在DragonBoard 410c上装置好linux操作体系,详细的装置办法能够参阅高通供给的DragonBoard 410c 的LinuxUserGuide.pdf文档,而且设置好网络。
3)在PC机上装置好穿插编译东西链
本文运用的是arm-linux-gcc 4.4.3,详细的装置办法能够参阅以下链接:
http://www.cnblogs.com/tdyizhen1314/p/4124886.html,完结装置后,依照下图建立好穿插编译环境,其间设置好网络后,该图中的micro usb衔接电脑的办法能够用WiFi衔接,一起借助于ssh长途登录东西,登录开发板即可。
图2 编译环境
三 、Boa 的移植
1) 解压Boa包
# tar xzf boa-0.94.13.tar.gz
2)参阅Boa官网上的材料http://www.boa.org/,装置bison和flex东西
3)修正相关的文件
在装置的进程总需求修正src/compat.h、src/log.c和src/boa.c三个文件,详细的修正办法如下:
// src/compat.h文件修正
#gedit src/compat.h
找到:#define TIMEZONE_OFFSET(foo) foo##-》tm_gmtoff
将该代码修正为:#define TIMEZONE_OFFSET(foo) (foo)-》tm_gmtoff
//src/log.c文件修正
#gedit src/log.c
找到代码段:
if (dup2(error_log, STDERR_FILENO) == -1) {
DIE(“unable to dup2 the error log”);
}
将该代码段注释掉。
//src/boa.c文件修正
注释掉下面两句话:
if (passwdbuf == NULL) {
DIE(”getpwuid”);
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE(”initgroups”);
}
和
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}
4) 生成Makefile文件
在解压后的boa源码文件中,供给了configure东西来进行装备生成makefile,详细的指令如下:
首要转到src目录下
cd boa-0.94.19/src
然后履行./configure
5)修正makefile中的编译东西,在生成的makefile文件中是指定了CC=gcc即运用gcc东西来进行编译,可是咱们的方针是要讲Boa移植到开发板上,开发板是根据ARM架构的,因而需求修正编译东西,即修正CC=gcc为:
CC = arm-softfloat-linux-gnu-gcc
一起在编译Boa中还需求运用CPP编译东西,运用的是gcc-E因而还需求修正CPP = gcc -E 为 CC = arm-softfloat-linux-gnu-gcc -E。
6)编译Boa
直接履行#make指令即可进行编译,编译后就能够得到可履行的boa文件,假如需求进一步紧缩boa巨细,能够履行#arm-softfloat-linux-gnu-strip boa,还能够进一步对生成的boa进行减肥。
7)Boa装备
在下载的源码目录下有一个boa.conf装备文件,在该装备文件中用户能够修正自己的web装备,包含Group、user、ScriptAlias、documentRoot、SserverName、AccessLog等信息,详细的修正能够参阅http://www.boa.org中的装备材料和办法进行修正,也能够直接翻开boa.conf文件看其间注释进行修正。
8)下载到开发板
将文件在开发板的/etc目录下建一个boa文件夹,然后将编译和修正好的boa、boa.conf拷贝到开发板的/etc/boa目录下,PC机器上的etc/mime.types文件拷贝到开发板的/etc目录下。
完结上述文件下载后,在410c开发板的/etc/boa文件夹下创立www目录,在www目录下创立cgi-bin目录,其间www目录用于寄存网页html文件,cgi-bin用于寄存cgi脚本。
最终将自己的主页文件index.html拷贝到开发板的www目录下,假如index.html还有相关的文件或许文件夹,都悉数仿制到该目录下。到此,整个Boa web服务器移植完结,在PC机上翻开浏览器,输入开发板的ip即可看到主页内容。
在完结了web服务器的建立后,一起结合前面的一篇博客《根据DragonBoard 410c渠道的移动图画监测体系》,最终就能够便利的构建根据web的移动图画检测体系,用moTIon完结移动图画监测,一起根据web形式进行检查监测内容。
假如在移植进程中对html不熟悉,能够经过浏览器翻开一个页面(如www.baidu.com)然后另存为html文件即可,然后仿制或许修正其间一个html为index.html文件即可,然后就能够用这个程序做测验。