马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 itellyou 于 2014-8-18 10:01 编辑
项目四要求在microZED开发板上面搭建FTP/WEB服务器,题目本身并没有其他的限制。实际上,在开发板的文件系统中,已经有基于bysybox的httpdWEB服务器和ftpd服务器.
将开发板的ramdisk文件系统挂载到电脑上来查看开机自启动文件/etc​/init.d/rcS 文件。
可以看到,在27行启动httpd服务器,在33行启动ftpd服务器(行数略有变化,以文件内容为准)。
查看系统目录/usr/sbin/下的tftpd 和httpd的属性。
可以看到,这两个文件都是链接到busybox里面的。
在嵌入式系统中,busybox的重要性不言而喻,但是基于busybox的嵌入式web服务器和ftp服务器在可配置性和性能方面还是有明显的不足。在这里,我打算移植boaWEB服务器和vfstpdFTP服务器来实现题目要求。
一boa WEB 服务器
Boa是使用最为广泛的轻量级WEB服务器之一,它是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行,Boa的设计目标是速度和安全。 1.从官网(www.boa.org)下载boa源代码boa-0.94.13.tar.gz 2.解压缩到方便的目录下,修改src/Makefile中的交叉编译器为arm-xilinx-linux-gnueabi-完成交叉编译,在src目录下生成了可以在microZed上运行的WEB服务器程序。 3.配置 boa的配置文件为boa.conf,配置完成后还需要mime.types文件,日志文件。boa.conf文件在源代码中有提供,可以在此基础上进行修改,mime.types文件可以拷贝主机的文件,日志文件也只需要建立相应的目录即可。 (1)boa.conf 在/etc下面建立boa文件夹,复制源代码中的boa.conf,完成如下的修改。 (2)mime.types 复制电脑中的该文件到开发板文件系统的/etc目录下 (3)日志文件 在开发板文件系统的/var/log下建立boa目录,boa.conf文件中指定日志目录到该目录下. 4.生成ramdisk文件系统 生成流程参考网址:修改文件系统,也可以直接在开发板上进行修改,但是重启之后所做的修改都没了,所以还是自己生成需要的文件系统为好,也方便以后的使用。在最后附有我修改生成的文件系统。
至此,boaWEB服务器的移植工作就完成了。考虑到boa支持CGI,因此下一步移植CGIC,来方便CGI程序的开发。
二CGIC的移植 1.下载源码cgic206.tar.gz。官网(http://www.boutell.com/cgic/) 2.解压,配置交叉编译器,编译生成cgitest.cgi. 3.配置 在开发板的文件系统的/var/www下建立cgi-bin目录。(boa.conf中配置所需)
4.建立wwwWEB访问目录。目录结构如下图所示。
三boa WEB服务器的测试 开发板的IP地址为192.168.1.10,通过网线连接开发板和PC机,并设置PC机的IP地址为同一网段。在浏览器中输入开发板的IP,就可以看到boaWEB 服务器的INDEX页面了。
1.静态网页测试
2.自己编写的html文档测试
自己编写一个简单的html文件,通过浏览器访问,测试页面如下图所示。
3.CGI 测试
在CGI-BIN下交叉编译一个简单的HELLOWORLD 程序,即使用C语言依次打印出相应的HTML文件,测试结果如下图所示。
4.CGIC test 测试
通过移植CGIC,方便使用CGIC库来开发CGI 程序,移植CGIC的test程序到开发板中,结果如下图所示。
5.CGIC test测试响应
四 VSFTPD FTP服务器
五 总结 很荣幸能够有这样的一个机会来使用microzed开发板,ZYNQ系列SOC融合了ARM和FPGA,但是项目四很明显地是一个单纯的嵌入式软件方面的应用,并没有很好地使用microzed内置的逻辑资源,所以,整个的流程就是嵌入式软件开发的流程,交叉编译等等。 boa WEB服务器支持CGI,借助于CGIC库,可以使用C语言来开发CGI程序,这样就可以干很多的事情了,比如说通过浏览器控制硬件,而microzed开发板的硬件资源很丰富,所以这次挑战赛搭建的开发平台为以后基于boa WEB服务器的应用开发提供了条件。附件中是我前面所说的方法做的文件系统,可以直接下载到开发板中。
uramdisk.image.gz
(5.51 MB, 下载次数: 0 )
|