arm linux上的第一个应用程序 BOA移植

Posted Montauk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arm linux上的第一个应用程序 BOA移植相关的知识,希望对你有一定的参考价值。

1. 首先, linux在开发板上能跑起来了.

包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才行.

2. 在windows上起一个tftp, 后来发现这样是不行的, 因为每个包都要反复打包, 有点累, 还是用虚拟机开nfs比较靠谱, 但是我虚拟机不靠谱, 老是不走有线网卡, 主动跑去无线去了.

3. busybo的tftp命令有点屌, 格式是:

tftp -g -l localFileName -r remoteFileName x.x.x.x

4. 然后下载boa, 修改boa.c文件

注释掉下面这段代码:

   if (passwdbuf == NULL) {
   DIE(”getpwuid”);
   }
   if(initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
   DIE(”initgroups”);
   }

//注释掉, 用#if 0 #endif

5. 在example的文件夹找到boa.conf配置文件, 略加修改

    a. 将ServerName字段注释掉, 避免一个servername get不到的错误.

    b. 将User/UserGroup 都改成0

    c. 找到文档的根目录, 比如/var/www, 日志目录, 记下来

 

6. 在开发板上建立/var/log/boa 目录用来放错误日志之类, 然后建立/var/www来存放网站根目录

7. 回到ubuntu, 对boa的编译环境做个修改, 让他用交叉编译

src/Makefile
CC = arm-linux-gcc
CPP = arm-linux-gcc -E

先用.configure, 然后make

辨已完成之后, 直接把src文件夹打包

tar cvf src.tar src/

不要压缩, 压缩的话, 在开发板上的busybox打不开, 或者是我没找到到方法把..总之直接打包.

8. 最后用tftp把这个tar放到/var/boa/下面, 再把boa.conf文件也拷贝到/var/boa/下面, 然后直接运行src/boa就可以去错误日志的地方看看哪里有没有什么问题了. 没问题的日志是:

[01/Jan/1970:01:29:20 +0000] caught SIGTERM, starting shutdown
[01/Jan/1970:01:29:20 +0000] exiting Boa normally (uptime 99 seconds)
[01/Jan/1970:00:02:03 +0000] boa: server version Boa/0.94.14rc21
[01/Jan/1970:00:02:03 +0000] boa: server built Jan  9 2017 at 18:01:02.
[01/Jan/1970:00:02:03 +0000] boa: starting server pid=780, port 80

这样的.

没问题的话, 试试建一个index.html的文件在www根目录下面, windows能访问, 表示boa成功移植了.

 

PS, 增加一个mime.types文件, 直接把这个文件从ubuntu上面tftp到开发板就行了. 在etc下面.

 

参考文档:

http://blog.csdn.net/xdw1985829/article/details/6672742

以上是关于arm linux上的第一个应用程序 BOA移植的主要内容,如果未能解决你的问题,请参考以下文章

BOA移植

如何进行基于am335的boa移植?

BOA服务器的搭建以及移植到开发板

BOA+PHP+SQLite之SQLite

三种嵌入式web服务器(Boa / lighttpd / shttpd)的 linux移植笔记

Boa服务器编译移植