DM8168 IPNC Boa移植

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

时间: 2024-11-12 01:30:53

DM8168 IPNC Boa移植的相关文章

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

近段时间在做ti8148的编解码器又涉及到boa web服务器的移植.在移植到ARM开发板的过程中,遇到很多的问题.原先的自带thttpd 由于功能没有boa完善,比如在ubuntu下面的utf-8编码的网页在thttpd中给客户浏览器显示的是默认ios欧洲乱码,但是boa显示正常,就干掉了 现将移植步骤整理如下:(其中涉及到个人习惯和路径问题,视各自情况而定) 1.下载源码: 下载网址http://www.boa.org/boa-0.94.13.tar.gz,但实际上下载的包为boa-0.94

嵌入式linux项目开发(一)——BOA移植

嵌入式linux项目开发(一)--BOA移植 项目目标:使用BOA.CGIC.SQLite搭建嵌入式web服务器 一.嵌入式web服务器BOA简介 在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,使用极为方便. 目前嵌入式设备中所使用的web服务器主要有:boa.thttpd.mini_httpd.shttpd.lighttpd.goahe

BOA移植

http://hh8582.blog.163.com/blog/static/14041920420114202636840/ BOA (http://www.boa.org)是比较流行的嵌入式Web Server,虽然性能不见得太好,但是胜在简单,整个软件编译完后只有几十K.而且可以支持CGI动态脚本..很容易移植到支持POSIX风格的操作系统上.因此很多ARM-Linux 用于BOA来做Web Server 的演示. PHP(http://www.php.net/) 是流行的跨平台,动态WE

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

基于am335进行boa移植,一共需要五步,下面是详细的步骤,对这方面知识比较陌生的小伙伴,可以学起来啦. 1.准备开发环境: (1)VMware 10.0 (2)Ubuntu 14.04 64bit (3)Sail335开发板 (4)交叉编译器:gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux 2.源码: (1)Boa源码:boa-0.94.13.tar.gz (2)Boa测试页面:index.html 3.移植过程: (1)移植Boa ①解压缩

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

1. 首先, linux在开发板上能跑起来了. 包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才行. 2. 在windows上起一个tftp, 后来发现这样是不行的, 因为每个包都要反复打包, 有点累, 还是用虚拟机开nfs比较靠谱, 但是我虚拟机不靠谱, 老是不走有线网卡, 主动跑去无线去了. 3. busybo的tftp命令有点屌, 格式是: tftp -g -l localFileNam

SylixOS移植Boa服务器

1. Boa简介 Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右.作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求.但Boa支持CGI,能够为CGI程序fork出一个进程来执行.Boa的设计目标是速度和安全,适合于嵌入式系统的单任务的http服务器,源代码开放.性能高. 下面给大家介绍一下Boa服务器在SylixOS上移植的具体操作步骤,希望能够有帮助. 2. SylixOS Boa移植: Boa采用服务器模型,因此需要编

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

OK6410的Boa服务器移植: <一> Boa的编译 1. 从 www.boa.org 下载 Boa 服务器的最新版:boa-0.94.13.tar.gz. 2. 解压:tar xzf boa-0.94.13.tar.gz 3. 进入解压后的文件夹 boa-0.94.13内部的 src文件夹,对源文件进行如下修改 ================================================= 由于arm-linux-gcc 编译器版本过高,对语法的支持有一些改变,所以需要

嵌入式boa服务器移植

问题1:交叉工具链:cross-2.95.3.tar.bz2(下载地址:http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/),开始使用的交叉工具链是arm-linux-gcc-3.3.2(下载地址:http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.3.2.tar.bz2), 使用该工具链编译出来的boa,在开发板上运行时,提示ssh: /lib/i686/l

网页移植开发板

接boa移植 运行 电脑输入开发板ip进入