开发板型号:tiny6410
开发板内核版本:2.6.38
宿主机系统:虚拟机ubuntu 11.10
由于一般开发板的处理能力和存储资源较少,在开发板上安装服务器软件,把开发板作为服务器,个人认为一般是绝少这样使用的。将apache2移植到arm开发板上,这个想法是出于一个同学的毕设课题:将温度和湿度传感器(驱动编程)的数据在开发板上的LCD屏幕上用折线图的形式动态显示出来(QT),并且通过WIFI模块连接到路由器上,使得其它连接到路由的设备可以通过访问开发板的IP地址获得这个动态折线图和当前传感器数据显示(web编程)。个人这个毕设课题对嵌入式开发学习的各个方面都涉及到,具有很好的价值,因此自己也想实现一下。
同学的毕设使用的服务器软件是BOA(似乎这个服务器软件更适合安装在资源较少的开发板上),由于本人此前学习web编程的时候使用的是apache2,因此想先尝试移植apache2到开发板上。
由于本人能力不足,还没有成功地使服务器软件在开发板上运行起来(猜测原因是开发板文件系统定制的问题),在移植过程中也参考了很多网上的资料。鉴于网上关于apache2移植到arm上的资料较少(不过各种英文网页的资料还是有较多的,不过也只是涉及一两个问题,本人编译的时候遇到的问题还是蛮多的),而且比较零散,本人将自己移植的过程记录下来,以便其他有相同兴趣的朋友们借鉴。
本文中只涉及到单纯的apache2服务器的移植,即只涉及到下面4个软件包的安装:pcre、apr、apr-util和httpd。
所移植的软件包具体为:
pcre-8.31.tar.gz (可在www.pcre.org下载)
apr-1.4.6.tar.gz (可在www.apache.org下载)
apr-util-1.4.1.tar.gz (可在www.apache.org下载)
httpd-2.4.3.tar.gz (可在www.apache.org下载)
可能还涉及到的软件包:
e2fsprogs-1.42.8.tar.gz (可在sourceforge.net/projects/e2fsprogs下载)
首先要说明的是,在移植apache2的过程中,宿主机系统上也需要编译一次apache2,即为开发板的文件系统编译安装一次apache2,同时也要为宿主机系统编译一次apache2。由于在ubuntu 11.10上安装apache2的过程十分的简单,只是在编译的时候比为移植到arm上的编译少一些参数而已,因此本文就不再额外开篇讲述,在下面的编译指令中,如果是仅在移植到arm开发板上才需要添加的选项,会用红字标注,在ubuntu 11.10上编译apache2则不必添加这些选项即可(安装路径也要换成本机系统上的)。另外在编译软件包时,如果在执行过一次make命令后,又重新配置了一次configure文件,则在重新执行./configure命令后,还要执行一次make clean命令,然后再重新执行make命令。
本文过程中用到几个自定义的环境变量:TOOLCHAIN,它表示宿主机中交叉编译链的目录;AR