"); //-->
操作环境:
编译器:arm-2014.05编译器
文件系统:使用的busybox移植Qt5.7的文件系统。
硬件平台:IMX6ULL
本章用iTOP-IMX6ULL开发板搭建一个web服务器。需要用到boa,boa是一个小型的web服务器,可执行代码只有约60KB,可以用于多种平台,它是一个单任务web服务器,只能依次完成用户的请求,在嵌入式中比较常见。boa的官方网站为www.boa.org,可以在上面下载最新版本的boa,这里使用的是boa-0.94.13.tar.gz。下载解压后如图1:

进入解压后的boa-0.94.13文件夹,进入目录src,运行./configure生成Makefile编译文件,成功后如图2:

修改Makefile,找到“CC = gcc”这一行,将这一行修改成“CC = arm-none-linux-gnueabi-gcc -static”,找到”CPP = gcc -E“这一行,修改成“CPP = arm-none-linux-gnueabi-gcc -E -static”,修改完成后如图3:

完成后执行make编译,过程中可能会报缺少依赖库,百度查找即可解决,如果出现下面的错误要修改compat.h,如图4所示:

解决办法,使用vi命令打开当前目录下的compat.h,然后找到“#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff”这一行,修改为如图 5所示:

然后保存并退出compat.h,输入make,继续编译boa,如图6:

接下来使用arm-none-linux-gnueabi-strip boa命令为bos文件瘦身,如图7:

通过上面的图片看到boa文件比之前变小了,至此boa的编译就完成了,下面需要把boa文件拷贝到文件系统里面。
拷贝编译最终生成的boa到共享文件夹。
虚拟机Ubuntu的/etc目录下的mime.types文件到共享文件夹。
boa-0.94.13目录下面有个默认的boa.conf文件,把它也拷贝到共享文件夹。

在/etc/目录下创建boa文件夹,将boa.conf拷贝到板子的etc/boa目录下;

mime.types拷贝到开发板etc目录下;

boa拷贝到开发板的bin目录下

接下来在开发板根目录下建立www文件夹,如图12:

然后在开发板上面建立的www目录下面建立文件夹cgi-bin目录,如图13:

然后在开发的etc目录下用命令touch group命令建立group文件,如图14:

然后进到开发板etc/boa目录,使用vi boa.conf命令打开boa.conf文件,如图15所示。
打开boa.conf文件,找到”Group nogroup”,修改为”Group 0”。

找到“ErrorLog ”和“AccessLog”这两行,指定log文件的路径,文件就会自动在此路径创建,修改成如图16:

然后找到“#ServerName www.your.org.here”这一行,修改为“ServerName www.your.org.here“如图17所示:

然后找到“DocumentRoot /var/www”这一行,修改
为“DocumentRoot /www”(注意:这里的“/www”就是前面步骤使用mkdir创建的www目录),如图 18所示:

然后找到“ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/”这一行,修改为“ScriptAlias /cgi-bin/ /www/cgi-bin/”,如图 19所示:

boa.conf修改结束。
进入到前面创建的 www 目录,然后使用 vi index.html 命令建立 index.html 文件,在里面输入下面的代码:(注意:web 页面不要包含汉字)


然后保存并退出 index.html,至此基于 boa 的 web 服务器就搭建完成了,上面创建的index.html 是一个简单的网页,用于测试。现在启动开发板,开发板起来以后直接
输入 ps - e | grep “boa” 命令,可以看到 boa 程序在运行,如图21:

在Ubuntu的浏览器输入开发板的IP地址可以看到我们放入的index.html网页:

到此boa服务器移植成功。

迅为i.MX6ULL终结者开发板使用手册内容提纲:

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
江苏大学:基于 FPGA 的 LCD 显示的远程更新
汽车以太网:如何平衡性能与可重构性?
哪位仁兄用过Protel DXP?
手残党亲测!把激光雷达大卸八块后,我发现了这些惊天秘密...
2024 年中国市场智能驾驶芯片市场分析:算力与发展趋势
电热水器电话远程控制系统的实现
山东大学:基于FPGA的车牌识别系统
展望2nm工艺的可持续性
2.5D封装为何成为AI芯片的“宠儿”?
电信级统一消息系统的计费系统设计
山东大学:LED里的三维世界
电磁兼容技术在电信局域网中的应用
第三代移动通信中的多用户检测技术
意法半导体32通道LED驱动器技术解析与应用展望
蔚来净亏224亿背后的增长密码:年销22万辆破纪录
电调微带贴片天线CAD
山东大学:植物识别
复读机市场升温 专家提醒要良性竞争
广东工业大学:基于Microblaze Linux的三轴数控系统
高校排行之东邪西毒
智能充电系统原理框图(TOP225Y)
小弟现在开始接触Vhdl/Fpga的东东,请大家以后多关照!
由MAXl660构成的充放电系统
基于DS2770的非稳压电源脉冲充电器
一文带你了解ISO汽车电子标准体系
用C/C++语言开发大规模FPGA [转载于www.fpga.com.cn]
分立器件的多功能充电器原理图
新型高性能锂离子电池充电器设计方案图(DS2770,DS2720)
汽车底盘控制技术的系统综述与未来发展
一文读懂面向自动驾驶的线控底盘系统