我们要开发一个项目,需要明确项目的需求,那么作为本开源项目而言,我们需要明确的第一个问题是,我们应该设计为界面形式,还是后台运行的形式?
其实,到底应该选择界面还是后台取决于我们系统的需求,就本项目而言,如果我们需要用户能够设置参数,那么我们一般选择界面的形式,如果系统运行起来无需用户介入,那么就可以采用后台运行的形式,当然我们也许还需要一个用户远程接入的形式,比如用户可以通过WEB设定系统参数,那么我们也许需要一个WEB服务器,并且需要一套WEB程序。在本项目中,我所设想的是用户可以本地、远程双重操作方式,所以我选择使用界面进行开发,对于linux而言,我所使用的较为优秀的UI开发工具是Qt,那么下一步,我们开始想办法移植Qt到Bananapi上面去。
- 移植嵌入式WEB服务器BOA到Bananapi
(1) 下载BOA,下载地址http://www.boa.org/
(2) 解压BOA,sudo tar xzf boa-0.94.14rc21.tar.gz
(3) 进入BOA目录,cd boa-0.94.14rc21/
(4) 运行./configure
(5) 进入src目录 cd src/
(6) 修改Makefile文件如下图所示:
修改CC= 与CPP= 参数如上图所示
(7) 退到上一目录,运行make,在src目录下生成boa可执行文件。
以下配置过程来自网络:
Boa的配置
这一步的工作也在电脑主机上完成。
在boa-0.94.13目录下已有一个示例boa.conf,可以在其基础上进行修改。如下:
#vi boa.conf
(1)Group的修改
修改 Group nogroup
为 Group 0
(2)user的修改
修改 User nobody
为 User 0
(3)ScriptAlias的修改
修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
为 ScriptAlias /cgi-bin/ /www/cgi-bin/
(5)DoucmentRoot的修改
修改DoucmentRoot /var/www
为DoucmentRoot /www
(6)ServerName的设置
修改#ServerName www.your.org.here
为 ServerName www.your.org.here
否则会出现错误“gethostbyname::No such file or directory”
(7)AccessLog修改
修改AccessLog /var/log/boa/access_log
为#AccessLog /var/log/boa/access_log
否则会出现错误提示:“unable to dup2 the error log: Bad file descriptor”
(8)以下配置和boa.conf的配置有关,都是在ARM根文件系统中创建
以下步骤在开发板上进行:
创建目录/etc/boa并且把boa 和 boa.conf拷贝到这个目录下
mkdir /etc/boa
创建HTML文档的主目录/www
mkdir /www
创建CGI脚本所在录 /www/cgi-bin
mkdir /www/cgi-bin
以下步骤在ubuntu下进行:
将boa.conf拷贝到开发板根文件系统的/etc/boa下
#cp boa.conf /source/rootfs/etc/boa
将boa拷贝到开发板根文件系统的/etc/boa下
#cp src/boa /source/rootfs/etc/boa
将ubuntu下/etc/mime.types拷贝到开发板根文件系统的/etc下
#cp /etc/mime.types /source/rootfs/etc
将你的主页index.html拷贝到www目录下
测试
打开一个浏览器输入开发板ip看看效果
OK
文档