在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3807|回复: 0

【itellyou】项目四

[复制链接]
发表于 2014-8-17 14:14:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 itellyou 于 2014-8-18 10:01 编辑

项目四要求在microZED开发板上面搭建FTP/WEB服务器,题目本身并没有其他的限制。实际上,在开发板的文件系统中,已经有基于bysyboxhttpdWEB服务器和ftpd服务器.


将开发板的ramdisk文件系统挂载到电脑上来查看开机自启动文件/etc​/init.d/rcS 文件。

Screenshot from 2014-08-17 09:39:06.png

可以看到,在27行启动httpd服务器,在33行启动ftpd服务器(行数略有变化,以文件内容为准)。


查看系统目录/usr/sbin/下的tftpd httpd的属性。

Screenshot from 2014-08-17 09:46:44.png

可以看到,这两个文件都是链接到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文件可以拷贝主机的文件,日志文件也只需要建立相应的目录即可。

1boa.conf

/etc下面建立boa文件夹,复制源代码中的boa.conf,完成如下的修改。

2mime.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访问目录。目录结构如下图所示。

Screenshot from 2014-08-17 10:27:51.png Screenshot from 2014-08-17 10:28:18.png


boa WEB服务器的测试

开发板的IP地址为192.168.1.10,通过网线连接开发板和PC机,并设置PC机的IP地址为同一网段。在浏览器中输入开发板的IP,就可以看到boaWEB 服务器的INDEX页面了。


1.静态网页测试

Screenshot from 2014-07-23 21:55:02.png

2.自己编写的html文档测试


自己编写一个简单的html文件,通过浏览器访问,测试页面如下图所示。

Screenshot from 2014-07-23 21:57:02.png

3.CGI 测试


CGI-BIN下交叉编译一个简单的HELLOWORLD 程序,即使用C语言依次打印出相应的HTML文件,测试结果如下图所示。

Screenshot from 2014-07-23 21:59:19.png

4.CGIC test 测试


通过移植CGIC,方便使用CGIC库来开发CGI 程序,移植CGICtest程序到开发板中,结果如下图所示。

Screenshot from 2014-07-23 22:00:46.png

5.CGIC test测试响应

Screenshot from 2014-07-23 22:03:14.png

四 VSFTPD FTP服务器


Screenshot from 2014-07-23 22:06:23.png

Screenshot from 2014-07-23 22:07:50.png


五 总结

很荣幸能够有这样的一个机会来使用microzed开发板,ZYNQ系列SOC融合了ARM和FPGA,但是项目四很明显地是一个单纯的嵌入式软件方面的应用,并没有很好地使用microzed内置的逻辑资源,所以,整个的流程就是嵌入式软件开发的流程,交叉编译等等。

boa WEB服务器支持CGI,借助于CGIC库,可以使用C语言来开发CGI程序,这样就可以干很多的事情了,比如说通过浏览器控制硬件,而microzed开发板的硬件资源很丰富,所以这次挑战赛搭建的开发平台为以后基于boa WEB服务器的应用开发提供了条件。附件中是我前面所说的方法做的文件系统,可以直接下载到开发板中。

uramdisk.image.gz (5.51 MB, 下载次数: 0 )


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-26 09:20 , Processed in 0.016406 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表