嵌入式课设报告web远程控制系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课设报告

课程名称嵌入式系统课程设计实验项目web远程控制系统设计指导教师周金和、王勇

学院信息与通信工程

专业电子信息工程

班级/学号电信1101/

学生姓名

实验日期

成绩____________________

实验步骤

一、搭建及移植web服务器

搭建及移植boa服务器是本次课题的要点所在,为了能够顺利搭建服务器,前期做了大量工作对其进行学习以及研究,在基本掌握boa服务器的搭建和移植的具体操作方法还有该服务器的工作方式、流程之后,才着手进行搭建和移植,即便如此,在搭建和移植的过程中还是遇到了不少问题,下文也进行了分析和解决。

1.1 下载及配置BOA服务器

1.1.1 下载安装boa服务器

首先在/下载BOA服务器的源码:boa-0.94.13.tar.gz版本为0.94.13。

对其进行解压:

$ tar xzf boa-0.94.13.tar.gz

还要安装必要的工具bison,flex。否则会出现:

make: yacc:命令未找到

make: *** [y.tab.c] 错误127。

$ sudo apt-get install bison flex

在输入上一条命令之前需要保证虚拟机联网,虚拟机联网方式如下

首先把主机联上网,虚拟机网络设置桥接改成nat

$ sudo vim /etc/network/interfaces

static改成dhcp ,在address,netmask, gateway加#注释

用:wq保存并退出

重启网路配置

$sudo /etc/init.d/networking restart

1.1.2 修改相关配置文件

修改src/compat.h文件:

打开compat.h找到这一条语句:

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

将其修改为:

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

这是由于本机所使用的交叉编译版本对语句用法的不同。

修改src/log.c文件。

打开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。

修改src/boa.c文件。

打开src/boa.c注释掉下面两句话:

#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 0

if (setuid(0) != -1) {

DIE(”icky Linux kernel bug!”);

}

#endif

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

1.1.3 生成boa可执行文件

进入相关目录生成makefile文件:

$ cd boa-0.94.13/src

$ ./configure

修改makefile文件。

$sudo vim Makefile

修改CC =gcc 为CC =arm-linux-gnueabihf-gcc

修改CPP =gcc -E 为CPP =arm-linux-gnueabihf-gcc -E

接下来进行编译。

$ make

然后为刚刚生成的二进制文件boa瘦身删除其调试信息。

$ arm-linux-gnueabihf-strip boa

1.1.4 修改配置

找到配置文件boa.conf并进行如下修改:

$ sudo gedit boa-conf

以下步骤需要在计算机上完成:

(1)对Group的修改

将Group nogroup(这是修改程序所属的组)。

修改为Group 0

(2)对user的修改

将User nobody(这里是修改程序所属的用户)。

修改为User 0

(3)对ScriptAlias的修改

将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/(这里是配置服务器读取cgi程序的目录,需要在SD卡中同样的位置建立同样的目录)。

修改为ScriptAlias /cgi-bin/ /www/cgi-bin/

(5)对DoucmentRoot的修改

将DoucmentRoot /var/www (这里是服务器初始网页放置的位置同样需要在SD卡同样的位置建立同样的文件夹并将名为index.html的网页放置在其中)。

修改为DoucmentRoot /www

(6)对ServerName的修改

将#ServerName .here(取消掉注释否则提示没有服务器名)。

修改为ServerName .here

否则会出现错误“gethostbyname::No such file or directory”

(7)对AccessLog修改

将AccessLog /var/log/boa/access_log(在SD卡相应位置建立同名文件夹以存放日志文件,否则提示找不到文件夹)。

修改为#AccessLog /var/log/boa/access_log

否则会出现错误提示:“unable to dup2 the error log: Bad file descriptor”

修改完成后直接点击文件左上方的保存按钮进行保存。

在目标板上需要做的配置:

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

$ mkdir /etc/boa

$ sudo cp boa.conf /media/rootfs/etc/boa

创建HTML文档的主目录/www:

$ mkdir /www

创建CGI脚本所在的目录/www/cgi-bin:

$ mkdir /www/cgi-bin

相关文档
最新文档