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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章