翟倩倩,吴加权,叶 飞,马 琨
(昆明理工大学 理学院,云南 昆明 650500)
基于ZedBoard的Web服务器移植研究*
翟倩倩,吴加权,叶飞,马琨
(昆明理工大学 理学院,云南 昆明 650500)
研究了基于采用Xilinx公司官方开发板ZedBoard进行Web服务器的移植。该开发板采用Xilinx 7系列芯片:XC7Z020,封装为CLG484,等级速度为-1。该芯片属于Artix系列型号。Web服务器是一个可以接收HTTP请求并响应请求的网络服务器,用户可以通过浏览器来访问并控制ZedBoard。为了实现这一目的,采用Boa服务器进行移植,在Linux系统下运行,支持HTTP1.0和CGI,适用于嵌入式系统的服务器。
ZedBoard开发板;Xilinx 7系列;ARM9;Linux系统;Boa服务器;超级终端;Web服务器;HTML;CGI
在Xilinx公司的7系列芯片推出以前,主要是Virtex系列和Sparartan系列的产品占市场主导地位。由于Virtex系列(如Virtex4和Virtex5)的硬核为PowerPC,随着市场上V4和V5的芯片大部分停产,以及ARM的广泛应用,Xilinx推出7系列芯片。Xilinx 7系列包括Artix-7、Kintex-7和Virtex-7,其中Artix-7为低成本的一款系列[1]。本设计采用的ZedBoard开发板的FPGA芯片就是Artix-7系列的产品。
由于ZedBoard中有2个ARM9硬核,因此可以把Linux移植到ZedBoard开发板上。该开发板有官方自带的Linux操作系统,可以直接从SD卡中启动。ZedBoard连线图如图1所示。该开发板还具有多种方式的视频输入,如1080p HDMI、8-bit VGA、OLED、I2S的音频编码解码器、FMC与Pmod接口、千兆以太网接口、4 GB的SD卡与512DDR3内存,用户可用于视频处理、电动机控制和以太网通信等方面的应用。该开发板具有双核ARM9的硬核[2],用户可以单独进行FPGA的设计,也可以和ARM进行协调设计,同样适合Linux/Andrio的开发。本文采用官方自带的Linux操作系统,将Web服务器移植到该开发板上。
图1 ZedBoard连线图
移植Web服务器的主要目的是方便用户在IE中访问ZedBoard,并对其进行控制。在当今社会网络发展如此迅速的今天,在嵌入式管理和交互中,基于Web方式的应用已成为设计的一个主流方向,用户可以对设备进行远程交互与控制,大大减少了维护者的工作量[3]。
Boa服务器是一个轻量级的Web服务器,其占用的系统内存小,运行速度快,可实行源代码开发。Boa服务器支持http1.0和CGI等,其设计主要在于速度与安全方面的考虑[4],在嵌入式Linux领域比较流行。
本文采用Xilinx公司的ZedBoard开发板自带的Linux系统进行Boa服务器的移植。由于要在Linux系统下对Boa进行配置,首先需要安装由Xilinx官方提供的交叉编译工具链,该工具链在Xilinx wiki网站上进行下载,下载完成后放在虚拟机中的Linux系统中并对其进行安装;安装完成后打开超级终端输入vi/etc/profile,把安装后的路径加进去完成环境变量的设置(见图2);最后在超级终端输入source/etc/profile[5]。
图2 环境变量设置
本文采用Red Hat Enterprize 5进行移植操作。首先,在“http://www.boa.org/”下载Boa服务器后进行解压,在超级终端上输入“tar-xzvf boa-0.94.13.tar.gz-C/home/boa/”,解压完成后进入src文件,在超级终端上输入“./configure”,产生Makefile文件;然后,对Makefile进行修改,找到CC=gcc,替换成上述安装的交叉编辑工具CC=arm-xilinx-linux-gnueabi-gcc,交叉编译工具CC=arm-xilinx-linux-gnueabi-g ++;最后,修改完成后在超级终端输入make,从而成功完成。
在RedHat中打开boa文件,可以通过修改boa.conf来对Boa服务器进行配置。打开boa.conf对其进行修改[6],修改根目录文件DocumentRoot /mnt/www;服务器名字修改为ServerName:www.zedboard.org;指定mim.type文件的位置:MimeTypes /etc/mime.types。
从ZedBoard中的SD卡中取出ramdisk.image文件挂载到虚拟机下。输入“mount -o loop ramdisk.image./file_tmp”,以实现对ramdisk.image的挂载工作。完成挂载后进入file_tmp文件并创建相关文件:mkdir -p etc/boa var/log/boa var/www/cgi-bin,并且完成下述复制工作,操作命令如下[7]。
cp ./boa-master/boa.conf etc/boa
cp ./boa-master/mime.types etc/
touch var/log/boa/error_log var /log/boa/access_log
cp ./boa-master/src/boa root/
cp ./boa-master/examle/cgi-test.cgi var/www/cgi-bin/
cp ./boa-master/example/index.html var/www/index.html
复制完成后对index.html进行编辑(见图3),编辑完成后保存并卸载file_tmp。完成上述操作后对ramdisk.image重新进行压缩,在超级终端上的操作命令如下:umount file_tmp; gzip ramdisk.image。完成上述全部操作后,重新把SD卡插入ZedBoard板上,打开电源和Windows下的超级终端,启动操作系统。由于开发板与本机不在同一段IP地址,需要对开发板的IP进行配置,在Windows下的超级终端上输入“ifconfig etho 202.38.214.211”,使开发板和电脑处于同一段IP地址,完成后在IE上输入开发板的IP地址“202.38.214.211”(见图4),就可以顺利访问Boa服务器了。
图3 HTML文件编写
图4 访问Boa服务器
本文通过ZedBoard开发板实现了Boa服务器的移植工作。通过Boa服务器的移植,实现了对ZedBoard开发板的远程访问,为ZedBoard开发板在远程访问及网络应用中提供了初步探索。
[1] 陆佳华,潘祖龙,彭竞宇.嵌入式系统软硬件协调设计实战指南[M].北京:机械工业出版社,2014.
[2] 何宾.Xilinx All Programmable Zynq-7000 SOC设计指南[M].北京:清华大学出版社,2013.
[3] 贺振欢,刘军,王宝山.Web服务器开发技术[M].北京:人民邮电出版社,2007.
[4] 谢华成,李晶.物联网系统中嵌入式BOA的移植与应用[J]. 软件,2011,32(5):106-110.
[5] 王世江,鸟哥.鸟哥的Linux私房菜[M].北京:人民邮电出版社,2010.
[6] 刘嵩,刘海洋,高志勇.基于FPGA的嵌入式WEB服务器设计与实现[J].计算机测量与控制,2009,17(3):579-583.
[7] 江国强.SOPC技术与应用[M].北京:机械工业出版社,2006.
*云南省教育厅科学研究基金资助项目(2015Y068)
国家自然科学基金面上项目(51278235)
责任编辑郑练
Research of Embedded Web Server based on ZedBoard
ZHAI Qianqian, WU Jiaquan, YE Fei, MA Kun
(Faculty of Science, Kunming University of Science and Technology, Kunming 650500, China)
Use Xilinx development board (ZedBoard) to design. The chip of this board is Xilinx 7 series-XC7Z020, while the package is CLG484 and the speed is -1. It belongs to Artix family. Web server is an internet server that can accept HTTP request and respond to request. The user can use IE to access the ZedBoard and get control. In order to achieve this goal, this design uses Boa server which can accept for HTTP1.0 and CGI. Propose a scheme that how to embed Boa server to the ZedBoard.
ZedBoard, Xilinx 7 series, ARM9, Linux system, Boa server, hyperterminal, Web server, HTML, CGI
TP 274+.2
A
翟倩倩(1992-),女,硕士研究生,主要从事嵌入式系统等方面的研究。
2016-04-08