本帖最后由 myzr_soft 于 2019-8-7 08:44 编辑
主机平台: UBUNTU14.04
硬件平台:明远智睿MY-IMX6-EK200-6Q-1G 内核版本 :linux-4.1.15 交叉编译链:arm-poky-linux-gnueabi 文件系统:L4115-fsl-image-qt5-myimx6a9.tar.bz2
介绍:
MY-IMX6-EK200-6Q-1G 对应 EK200是板级,6Q是CPU类型,1G是内存
下载boa源码包 我下载的版本为:0.94.13 : 解压: $ tar xzvf boa-0.94.13.tar.gz source 工具链配置文件 $ source /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi 安装需要工具bison,flex $ sudo apt-get install bison flex 修改src/compat.h 将 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 修改成 #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff 修改 src/log.c 注释掉 if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
} 为: /*if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}*/ 修改src/boa.c 注释掉下面两句话: if (passwdbuf == NULL) {
DIE(”getpwuid”);
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE(”initgroups”);
} 为 #if 0
if (passwdbuf == NULL) {
DIE(”getpwuid”);
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE(”initgroups”);
}
#endif
注释掉下面语句: if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
} 为 #if 0
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
} #endif 生成Makefile文件 执行: $ cd boa-0.94.13/src
$ ./configure $ make 然后为生成的二进制文件boa瘦身 $ arm-poky-linux-gnueabi-strip boa $ cd .. $ vi boa.conf
修改 Group nogroup 为 Group 0
修改 User nobody 为 User 0
修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 为 ScriptAlias /cgi-bin/ /www/cgi-bin/
修改DocumentRoot /var/www 为DocumentRoot /www
修改AccessLog /var/log/boa/access_log 为#AccessLog /var/log/boa/access_log 以下步骤在开发板上进行: 创建目录/etc/boa并且把ubuntu下的boa 和 boa.conf拷贝到这个目录下,将ubuntu下/etc/mime.types拷贝到开发板根文件系统的/etc下 # mkdir /etc/boa 将boa拷贝到/etc/boa后获取权限 # chmod 777 /etc/boa 随后将boa文件移到/bin上 # mv /etc/boa /bin 创建HTML文档的主目录/www # mkdir /www 创建CGI脚本所在录 /www/cgi-bin # mkdir /www/cgi-bin 将需要展示的网页名称改为index.html 拷贝到开发板www目录下 执行boa # boa 打开一个浏览器输入开发板ip看看效果
|