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保存了Boaserver执行时所要的一些參数,改动boa.conf就可以完毕对webserver的配置。主要改动的參数包含:

Port 80                          //监听的port号使用80port

User root                        //拥有root权限的用户才同意连接到server

Group root                      //拥有root用户组的权限的client组才同意连接到server

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        /*设置server在持续作用中等待两次请求之间的时间超过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                 //设置server的名字为IPNC

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

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

DM8168 IPNC Boa移植的更多相关文章

  1. 嵌入式开发之web服务器---boa移植

    近段时间在做ti8148的编解码器又涉及到boa web服务器的移植.在移植到ARM开发板的过程中,遇到很多的问题.原先的自带thttpd 由于功能没有boa完善,比如在ubuntu下面的utf-8编 ...

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

    1. 首先, linux在开发板上能跑起来了. 包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才 ...

  3. boa移植 boa交叉编译

    官网:http://www.boa.org/ BOA 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的.适合于嵌入式系统的单任务的http服务器,源代码开放.性能 ...

  4. boa移植

    1.交叉编译 2.复制文件 配置文件boa.conf 移动到/etc/boa/ 目录下 可执行文件boa移动到/usr/sbin/目录下 3.修改配置文件 4.将Linux系统上/etc/mime.t ...

  5. [置顶] ARM-Linux下WEB服务器Boa的移植、配置和运行测试

    Linux下使用的轻量级WEB服务器主要有:lighttpd.thttpd.shttpd和boa等等,而Boa是使用最为广泛的轻量级WEB服务器之一(当然,阿帕奇是世界使用排名第一的Web服务器软件) ...

  6. 在嵌入式Linux系统(OK6410)中移植Boa 服务器

    OK6410的Boa服务器移植: <一> Boa的编译 1. 从 www.boa.org 下载 Boa 服务器的最新版:boa-0.94.13.tar.gz. 2. 解压:tar xzf ...

  7. 嵌入式boa服务器移植

    开发板:EDUKIT-III实验箱,S3C2410+LINUX2.4,实验箱随箱光盘提供的Zimage,nor flash启动. 主机:ubnutn10.4LTS,arm-linux-gcc 2.95 ...

  8. 8148 8168 中移植live55 出现except rtsp 中途莫名的断流

    在解码中,接了浙江宇视的ipc相机,解码一般就挂了,vlc 也是中途断流.费解? vlc异常信息如下: packetizer_h264 warning: waiting for SPS/PPS pac ...

  9. linux(TINY6410)下移植boa服务器

    今天在tiny6410上移植了boa服务器,中间遇到了一些小问题.当时也及时解决了. 第一步:boa的编译 在www.boa.org下载Boa的压缩包  我这里用的是 boa-0.94.13.tar. ...

随机推荐

  1. MVC系列学习(十)-生成URL与表单

    本次学习,在路由配置信息中,有两个路由规则,在网站第一次启动的时候,注册了两个路由表 1.动态生成url A.在路由规则中,因为Default在前面,所以最新找到该路由表,此时不管 自己定义的控制器名 ...

  2. Educational Codeforces Round 42 (Rated for Div. 2)

    A. Equator(模拟) 找权值的中位数,直接模拟.. 代码写的好丑qwq.. #include<cstdio> #include<cstring> #include< ...

  3. Hive扩展功能(五)--HiveServer2服务高可用

    软件环境: linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这五部机, 每部主机的用户名都为centos ...

  4. 控制台——对WIN32 API的使用(user32.dll)

    Win32 API概念:即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface).所有在Win32平台上运行的应用程序都可以调用这些函 ...

  5. Python语言之模块

    模块基本上就是一个包含了所有你定义的函数和变量的文件.它用处在于使你你能在别的程序中重用它提供的功能和服务. 1.模块的使用方法 模块的文件名必须以.py作为扩展名. 当我们需要使用某个模块时,我们需 ...

  6. PowerDesigner16逆向工程生成PDM列注释(My Sql5.0模版)

    一.编辑当前DataBase 选择DataBase——>edit Current DBMS...弹出如下对话框:  如上图,先解释一下: 根据红颜色框从上往下解释一下. 第一个红框是对应的修改的 ...

  7. Java程序员怎么不断进阶 必须要掌握哪些技能

    Java程序员怎么不断进阶?必须要掌握哪些技能?成为架构师是Java程序员职业规划中的重要一环,但如何才能快速实现进阶困扰了许多Java程序员.无论是从技能深度还是实战经验,架构师都远超于普通的Jav ...

  8. PHP 设计模式--序言

    面向对象是PHP5之后增加的功能,是PHP走向现代语言的一个标志. 在过程式设计时代,PHP以学习成本低.入门快的特点赢得很多WEB开发者的青睐,但同时也限制了PHP的发展. 借鉴Java和C++之后 ...

  9. Linux命令(文本编辑器)

    vi和vim编辑器:有插入模式,一般模式,地行模式 一班模式通过(i.a.o.I.A.O)键--->进入插入模式            插入模式(按Esc键退出)---->j进入一班模式 ...

  10. 创建pod索引库(Specs)

    专门用来存放xxx.podspec 的索引文件的库就叫做索引库.我们需要将这些索引文件上传到远程索引库才能保证其他的人能够拿来用. 创建一个远程索引库和本地索引库对应起来,步骤如下: 1.登录开源中国 ...