嵌入式课设报告web远程控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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