【精品博文】嵌入式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地址就能够访问到我们的主页了

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

(0)

相关推荐

  • 实用 | 10分钟教你搭建一个嵌入式web服务器

    大家好,我是ZhengN,本次来教大家在10分钟内使用开发板搭建一个web服务器. 之前分享的文章:常见的嵌入式web服务器有哪些?中分享了几种可以在嵌入式中使用的web服务器. 嵌入式 web 服务 ...

  • 【精品博文】嵌入式3G机器人项目实战——工具链的编译

    工具的获得有多种途径,第一种方法也是最简单的一种方法是在下面这个网站下载 http://www.codesourcery.com/sgpp/lite/arm/portal/release1600在这个 ...

  • 【精品博文】嵌入式3G机器人项目实战

    随着物联网技术.3G通讯技术.多媒体技术.机电控制技术的日趋成熟,基于相关技术的产品也备受消费者的欢迎.目前嵌入式用人市场上紧缺相关人才.家用3G智能机器人项目正是在此背景下设立的. 本项目是基于AR ...

  • 【精品博文】基于嵌入式系统的SQLite C/C++接口

    嵌入式监控系统中很重要的一个环节就是当有人闯入和有火灾生时候,需要进行报警并喷水,今天我给大家写一个模块的设计. 设计中将四个LED灯与S3C2410处理器的四个管脚相连接,由于GPIO是复用管脚,所 ...

  • 【精品博文】嵌入式监控系统喷水模块的设计

    嵌入式监控系统中很重要的一个环节就是当有人闯入和有火灾生时候,需要进行报警并喷水,今天我给大家写一个模块的设计. 设计中将四个LED灯与S3C2410处理器的四个管脚相连接,由于GPIO是复用管脚,所 ...

  • 【精品博文】嵌入式开发中串口配置知多少

    串口是计算机一种常用的接口,常用的串口有RS-232-C接口.它是于1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准,它的全称是&qu ...

  • 【精品博文】嵌入式6410中蓝牙的使用

    Bluetooth USB 适配器拥有一个 Bluetooth CSR 芯片组,并使用 USB 传输器来传输 HCI 数据分组.因此,Linux USB 层.BlueZ USB 传输器驱动程序以及 B ...

  • 【精品博文】嵌入式高端内存全揭秘

    在一般情况下,Linux在初始化时,总是尽可能的将所有的物理内存映射到内核地址空间中去.如果内核地址空间起始于0xC0000000,为vmalloc保留的虚拟地址空间是128M,那么最多只能有(1G- ...

  • 项目实战系列-增强智能下拉列表【2】

    上次我们介绍了使用COUNTA来实现智能下拉列表,已经非常好用了,但是我在项目却遇到了一些不老实的用户,他跳着配置--我 问题出现了,那么我们是否有更好的办法去兼容了,答案肯定是有的,就是我们今天的主 ...

  • C# WPF项目实战(经典)

    dotNET跨平台 今天 以下文章来源于CSharp编程大全 ,作者zls365 CSharp编程大全C#编程.net core开发,winform桌面开发,wpf开发,c sharp编程大全,CSh ...