码迷,mamicode.com
首页 > 其他好文 > 详细

DM8168 IPNC Boa移植

时间:2015-06-09 23:44:32      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:boa   dm8168   

1.交叉编译openssL

下载openssL-1.0.0.tar.gz在虚拟机下进行交叉编译,生成libcrypto.a及libssl.a。将这两个文件拷贝到DVRRDK_03.00.00.00/boa-0.94.13/src目录下,编译步骤如下:

a)解压源码:

tar-zxvf openssl-1.0.0.tar.gz

cdopenssl-1.0.0

b)配置为linux arm的交叉编译状态

 ./Configure linux-elf-arm

#修改makefile文件(L62),

CC=arm-none-linux-gnueabi-gcc

c)然后执行make即可在当前目录下生成需要的库文件(libcrypto.a 和 libssl.a)

ps:

如此时在虚拟机内直接执行make test将会报以下错误:

cannotexecute binary file,

因交叉编译后的文件是不可以在linux下直接运行的。

 

(3)交叉编译Boa

本文的编译环境为centos6.3的Linux虚拟环境,在该环境中安装的交叉编译工具为arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu。

a) 首先解压Boa源码: #tar  zxvf  boa-0.94.13.tar.tar;

b) 进入解压后Boa文件下的src文件中,生成makefile文件:# ./configure;

c) 修改makefile文件中的编译工具,使生成的Boa程序可以在DM8168板上运行:

修改CC = gcc 为 CC =arm-none-linux-gnueabi-gcc

修改CPP = gcc -E 为 CPP =arm-none-linux-gnueabi-gcc –E

修改以下路径:

ROOTDIR = ../..

INSTALLDIR = $(ROOTDIR)/target/rfs_816x/opt/dvr_rdk/ti816x

APP_LIB_DIR = $(ROOTDIR)/interface/lib

FC_TOOLS_DIR =

$(ROOTDIR)/ti_tools/framework_components/framework_components_3_22_02_08/fctools

PUBLIC_INCLUDE_DIR = $(ROOTDIR)/interface/inc

这样就可以找到依赖的一些库文件,并且生成的可执行程序都在8168的挂载目录下。

d) 执行命令#make编译boa。编译时会出现util.c:103:1:error: pasting ")" and "->" does not give a validpreprocessing token的错误,需要修改src目录下的compat.h文件,将#defineTIMEZONE_OFFSET(foo) foo##->tm_gmtoff修改成#defineTIMEZONE_OFFSET(foo) (foo)->tm_gmtoff即可。此时在src目录下生成的Boa有将近两百KB(千字节),可以使用命令#Arm-none-linux-gnueabi-stripboa进行缩减,缩减后的可执行程序只有60KB。

 

(4)交叉编译freetype

在编译boa的时候,会报如下错误,因为系统缺少freetype库文件。

DVRRDK_03.00.00.00/ti_tools/cgt_a8/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld:     cannot find -lfreetype

编译步骤如下:

a)在http://download.savannah.gnu.org/releases/freetype/下载freetype-2.4.0.tar.gz

b)解压源码:

   $ tar -zxvf freetype-2.4.0.tar.gz

c)对源码进行交叉编译配置

   $ cd freetype-2.4.0

   $./configure CC=arm-none-linux-gnueabi-gcc --host=arm-linux--prefix=$PWD/install

d)编译生成库文件:

   $ make && make install

e)将生成的库拷贝的交叉编译工具的库目录下:

i:将生成的install/lib 下的libfreetype.so libfreetype.so.6libfreetype.so.6.5.0拷贝至...//arm-2009q1/arm-none-linux-gnueabi/libc/lib

注:目标目录前的省略号为具体环境下的具体目录,如本环境中为:DVRRDK_03.00.00.00/ti_tools/cgt_a8/,请根据情况进行具体修改。

ii:将生成的install/lib下的libfreetype.alibfreetype.la libfreetype.so libfreetype.so.6 libfreetype.so.6.5.0拷贝至

DVRRDK_03.00.00.00/ti_tools/cgt_a8/arm-2009q1/arm-none-linux-gnueabi/libc/usr/lib

iii:将生成的目录/install/include目录下的所有文件拷贝至:DVRRDK_03.00.00.00/ti_tools/cgt_a8/arm-2009q1/arm-none-linux-gnueabi/libc/usr/include

 

(5)修改Boa配置文件

仅仅将Boa的可执行程序放入DM8168开发板中还不能运行,需要对其运行目录、系统参数等做一些修改。boa.conf保存了Boa服务器运行时所要的一些参数,修改boa.conf即可完成对web服务器的配置。主要修改的参数包括:

Port 80                          //监听的端口号使用80端口

User root                        //拥有root权限的用户才允许连接到服务器

Group root                      //拥有root用户组的权限的客户端组才允许连接到服务器

ErrorLog /var/log/boa/error_log    //将错误日志建立在/var/log/boa目录下

AccessLog /var/log/boa/access_log   //将访问日志保存在/var/log/boa目录下

DocumentRoot /var/www     //HTML文档的主目录设定在/var/www目录下DirectoryIndex  index.htm                       //指定预生成目录信息的文件的索引名为index.htm

KeepAliveMax 1000              //设置一个连接所允许的HTTP 持续作用请求最大数目

KeepAliveTimeout 60        /*设置服务器在持续作用中等待两次请求之间的时间超过60s就关闭该连接*/

MimeTypes /etc/mime.types        //指明mime.types 文件位置为/etc目录下

CGIPath /bin:/usr/bin:/usr/local/bin  //提供CGI 程序的PATH 环境变量值

ScriptAlias /cgi-bin/ /var/www/cgi-bin/  /*指明CGI 脚本的虚拟路径对应的实际路径(将CGI脚本的虚拟路径/cgi-bin/映射到一个实际路径/var/www/cgi-bin/)*/

ServerName IPNC                 //设置服务器的名字为IPNC

在文档中摘录,如有缺失还请大家见谅。

转载请注明:http://blog.csdn.net/guo8113/article/details/46433249

DM8168 IPNC Boa移植

标签:boa   dm8168   

原文地址:http://blog.csdn.net/guo8113/article/details/46433249

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!