【精品博文】嵌入式3G机器人项目实战----第三方软件移植
在系统构建中会使用一些第三方的软件,我们先把这些软件移植到我们的系统中去。
1 boa服务器移植
boa服务器是一个web服务器,在嵌入式系统中使用比较广泛。
1) 源码下载
boa下载地址:http://www.boa.org/
我们这里选择版本是boa-0.94.13.tar.gz
2) 工具安装
boa在移植过程中需要工具bison flex,安装方法:
sudo apt-get install bison flex
3) 解压源码
tar xvf boa-0.94.13.tar.tar
cd boa-0.94.13
4) 修改src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
否则运行boa时会出现错误:
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o] 错误 1
5) 修改 src/log.c
注释掉
if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}
否则会出现错误:
log.c:73 unable to dup2 the error log:bad file descriptor
6) 修改src/boa.c
注释掉下面两句话:
if (passwdbuf == NULL) {
DIE(”getpwuid”);
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE(”initgroups”);
}
否则运行boa时会出现错误:boa.c:211 - getpwuid: No such file or directory
注释掉下面语句:
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}
否则运行boa时会出现问题:boa.c:228 - icky Linux kernel bug!: No such file or directory
7) 编译
cd src
./configure
修改Makefile
修改CC = gcc 为 CC = arm-none-linux-gnueabi-gcc
修改CPP = gcc -E 为 CC = arm-none-linux-gnueabi-gcc -E
make
8) 创建boa服务器配置文件存放目录
mkdir /source/rootfs/etc/boa
9) 将boa源码目录下的boa.conf拷贝到/source/rootfs/etc/boa目录下
cp boa.conf /source/rootfs/etc/bo
10) 修改boa.conf
修改 Group nogroup
为 Group 0
修改 User nobody
为 User 0
修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
为 ScriptAlias /cgi-bin/ /www/cgi-bin/
修改DoucmentRoot /var/www
为DoucmentRoot /www
修改#ServerName www.your.org.here
为 ServerName www.your.org.here
否则会出现错误“gethostbyname::No such file or directory”
修改AccessLog /var/log/boa/access_log
为#AccessLog /var/log/boa/access_log
否则会出现错误提示:“unable to dup2 the error log: Bad file descriptor”
11) 创建boa服务器工作目录,这个目录得和上面配置相匹配
创建HTML文档的主目录/www
mkdir /source/rootfs/www
创建CGI脚本所在录 /www/cgi-bin
mkdir /source/rootfs/www/cgi-bin
12) 将编译好的boa拷贝到跟文件系统中
cp src/boa /source/rootfs/etc/boa
13) 将ubuntu系统中的mine.types拷贝到跟文件系统中
cp /etc/mime.types /source/rootfs/etc
14)将我们的主页index.html拷贝到boa工作目录
cp index.html /source/rootfs/www
15) 测试
打开开发板运行boa显示如下内容说明boa正常工作
[01/Jan/1970:02:21:38 +0000] boa: server version Boa/0.94.13
[01/Jan/1970:02:21:38 +0000] boa: server built Oct 23 2010 at 00:38:58.
[01/Jan/1970:02:21:38 +0000] boa: starting server pid=1009, port 80
16) 访问主页
在主机打开浏览器,输入目标板ip地址就能够访问到我们的主页了
到此为止,第三方软件安装完毕。