snifer

嵌入式3G机器人项目实战----第三方软件移植

0
阅读(1413) 评论(8)

在系统构建中会使用一些第三方的软件,我们先把这些软件移植到我们的系统中去。

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地址就能够访问到我们的主页了

到此为止,第三方软件安装完毕。

  1. 学习了一下

  2. @sunyang19920107   

    楼主这款硬件是什么型号的

    华清远见的fs4412


  3. 加油加油哦

  4. 超级实用哦

  5. 学习一下哈哈哈

  6. 楼主这款硬件是什么型号的

  7. 学习了一下

  8. 学习学习了