zoukankan      html  css  js  c++  java
  • 开发板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

    /******************************/ /********好好学习-天天向上*****/ /******************************/
  • 相关阅读:
    ________________”一切都变了”被遗忘的 label
    ________________java常用快捷键
    Java核心技术 卷1 多线程----执行器(5)
    Java核心技术 卷1 多线程----线程安全的集合(4)
    Java核心技术 卷1 多线程----阻塞队列在线程中的使用(3)
    数据结构与算法之算法的度量方法(1)
    数据结构与算法之算法初体验(1)
    Java核心技术 卷1 多线程----线程的相关用法(2)
    Java核心技术 卷1 多线程----线程的相关概念(1)
    heap&stack 区别
  • 原文地址:https://www.cnblogs.com/langdexuming/p/4194806.html
Copyright © 2011-2022 走看看