开发板boa移植

1.下载Boa源码

下载地址: http://www.boa.org/

最新发行版本: 0.94.13

下载 boa-0.94.13.tar.gz

解压:# tar xzf boa-0.94.13.tar.gz

2.安装需要工具bison,flex

sudo apt-get install bison flex

否则会出现如下错误

make: yacc:命令未找到
       make: *** [y.tab.c] 错误 127

make: lex:命令未找到
       make: *** [lex.yy.c] 错误 127

3.修改文件

(1)修改 src/compat.h

找到

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff

修改成

#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

否则会出现错误:

util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o] 错误 1

(2)修改 src/log.c

注释掉

if (dup2(error_log, STDERR_FILENO) == -1) {
                         DIE("unable to dup2 the error log");
                   }

为:

/*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

(3)修改src/boa.c

注释掉下面两句话:

if (passwdbuf == NULL) {
        DIE(”getpwuid”);
        }
        if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
        DIE(”initgroups”);
        }

#if 0
        if (passwdbuf == NULL) {
        DIE(”getpwuid”);
        }
        if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
        DIE(”initgroups”);
        }
        #endif

否则会出现错误:boa.c:211 - getpwuid: No such file or directory

注释掉下面语句:

if (setuid(0) != -1) {
                        DIE(”icky Linux kernel bug!”);
        }

#if 0
         if (setuid(0) != -1) {
                        DIE(”icky Linux kernel bug!”);
                }

#endif

否则会出现问题:boa.c:228 - icky Linux kernel bug!: No such file or directory

4、生成Makefile文件

执行:

#cd boa-0.94.13/src
         #./configure

5、修改Makefile

cd src
         vim Makefile

修改CC = gcc 为 CC = arm-softfloat-linux-gnu-gcc

修改CPP = gcc -E 为 CC = arm-softfloat-linux-gnu-gcc -E

6、编译

make

arm-softfloat-linux-gnu-strip boa

7、Boa的配置

这一步的工作也在电脑主机上完成。

在boa-0.94.13目录下已有一个示例boa.conf,可以在其基础上进行修改。如下:

下处域名,通常访问不了,需要设置局域网访问,通常直接访问ip地址

此处mime.types,貌似Ubuntu14.04LTS找不到,我是从RedHan5.4下拷贝的,cp mime.types /tmp/nfs/

(8)以下配置和boa.conf的配置有关,都是在ARM根文件系统中创建

以下步骤在开发板上进行:

创建目录/etc/boa并且把boa 和 boa.conf拷贝到这个目录下

mkdir /etc/boa

cp boa.conf boa /etc/boa

#方便开启

二.与开发板的通讯

1.nfs设置

sudo apt-get install nfs-kenel-server

sudo apt-get install minicom

实现方法:
#vi /etc/exports
配置内容为:
/root/nfs *(rw,sync,no_root_squash)
格式说明如下:
[共享的目录] [主机名或 IP] [参数 1 参数 2 ...]
rw—对共享文件夹可读可写
sync—所有数据在请求时写入共享
no_root_squash—使远程用户具备本地 root 用户所具有的目录的完全管理访
问权限
“*”表示共享给所有连接的用户,也可指定具体 IP

sudo /etc/init.d/rpcbind restart重启nfs

2.minicom设置

image

/******************************/ /********好好学习-天天向上*****/ /******************************/
原文地址:https://www.cnblogs.com/langdexuming/p/4194806.html