嵌入式课设报告web远程控制系统设计 下载本文

内容发布更新时间 : 2024/12/27 5:58:22星期一 下面是文章的全部内容请认真阅读。

课 设 报 告

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

学 院 信息与通信工程

专 业 电子信息工程 班级/学号 电信1101/ 学生姓名 实验日期 成 绩 ____________________

实验步骤

一、搭建及移植web服务器

搭建及移植boa服务器是本次课题的要点所在,为了能够顺利搭建服务器,前期做了大量工作

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

1.1 下载及配置BOA服务器

1.1.1 下载安装boa服务器

对其进行解压:

还要安装必要的工具bison,flex。否则会出现: make: yacc:命令未找到 $ 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(\ }*/ 否则会出现错误:

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文件: $ ./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卡中同样