当前位置:首页 > 通信技术 > 通信技术
[导读] boa服务器是一个小巧高效的web服务器(大小只有60kb),效率高,专为嵌入式应用而开发,可以支持CGI脚本适合各种资源有限的嵌入式应用环境,是一种单任务的web服务器,其对于http的请求采用顺序执行方式来完成,不会调用fork创建新的进程来实现,但是在执行CGI的时候,起采用的是多进程的方式,可以单独为CGI程序fork相应的进程来执行,这种设计方式极大的保证了再嵌入式平台上部署web服务不会给平台带来过大的压力和过多的资源损耗而影响平台运行其他应用的性能,非常适合一些嵌入式的应用需求。

 一、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文件即可,然后就可以用这个程序做测试。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭