新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 如何在DragonBoard 410c平臺上移植web服務?

        如何在DragonBoard 410c平臺上移植web服務?

        作者: 時間:2018-08-06 來源:網絡 收藏

        一、boa web服務器介紹

        本文引用地址:http://www.104case.com/article/201808/385389.htm

        boa服務器是一個小巧高效的web服務器(大小只有60kb),效率高,專為嵌入式應用而開發,可以支持CGI腳本適合各種資源有限的嵌入式應用環境,是一種單任務的web服務器,其對于http的請求采用順序執行方式來完成,不會調用fork創建新的進程來實現,但是在執行CGI的時候,起采用的是多進程的方式,可以單獨為CGI程序fork相應的進程來執行,這種設計方式極大的保證了再嵌入式平臺上部署web服務不會給平臺帶來過大的壓力和過多的資源損耗而影響平臺運行其他應用的性能,非常適合一些嵌入式的應用需求。


        圖1 Boa log

        二、準備工作

        1)下載Boa源碼包

        在http://www.boa.org/網站上可以下載最新的Boa源碼,本文移植過程中下載的是0.94.13版本。

        2)搭建開發環境

        本文移植的過程是基于linux系統環境下完成的,需要在 410c上安裝好linux操作系統,具體的安裝方法可以參考高通提供的 410c 的LinuxUserGuide.pdf文檔,并且設置好網絡。

        3)在PC機上安裝好交叉編譯工具鏈

        本文使用的是arm-linux-gcc 4.4.3,具體的安裝方法可以參考以下鏈接:

        http://www.cnblogs.com/tdyizhen1314/p/4124886.html,完成安裝后,按照下圖搭建好交叉編譯環境,其中設置好網絡后,該圖中的micro usb連接電腦的方式可以用WiFi連接,同時借助于ssh遠程登錄工具,登錄開發板即可。


        圖2 編譯環境

        三 、Boa 的移植

        1) 解壓Boa包

        # tar xzf boa-0.94.13.tar.gz

        2)參考Boa官網上的資料http://www.boa.org/,安裝bison和flex工具

        3)修改相關的文件

        在安裝的過程總需要修改src/compat.h、src/log.c和src/boa.c三個文件,具體的修改方法如下:

        // src/compat.h文件修改

        #gedit src/compat.h

        找到:#define TIMEZONE_OFFSET(foo) foo##-》tm_gmtoff

        將該代碼修改為:#define TIMEZONE_OFFSET(foo) (foo)-》tm_gmtoff

        //src/log.c文件修改

        #gedit src/log.c

        找到代碼段:

        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 (setuid(0) != -1) {

        DIE(”icky Linux kernel bug!”);

        }

        4) 生成Makefile文件

        在解壓后的boa源碼文件中,提供了configure工具來進行配置生成makefile,具體的命令如下:

        首先轉到src目錄下

        cd boa-0.94.19/src

        然后執行./configure

        5)修改makefile中的編譯工具,在生成的makefile文件中是指定了CC=gcc即使用gcc工具來進行編譯,但是我們的目標是要講Boa移植到開發板上,開發板是基于ARM架構的,因此需要修改編譯工具,即修改CC=gcc為:

        CC = arm-softfloat-linux-gnu-gcc

        同時在編譯Boa中還需要使用CPP編譯工具,使用的是gcc-E因此還需要修改CPP = gcc -E 為 CC = arm-softfloat-linux-gnu-gcc -E。

        6)編譯Boa

        直接執行#make命令即可進行編譯,編譯后就可以得到可執行的boa文件,如果需要進一步壓縮boa大小,可以執行#arm-softfloat-linux-gnu-strip boa,還可以進一步對生成的boa進行瘦身。

        7)Boa配置

        在下載的源碼目錄下有一個boa.conf配置文件,在該配置文件中用戶可以修改自己的web配置,包括Group、user、ScriptAlias、documentRoot、SserverName、AccessLog等信息,具體的修改可以參考http://www.boa.org中的配置資料和方法進行修改,也可以直接打開boa.conf文件看其中注釋進行修改。

        8)下載到開發板

        將文件在開發板的/etc目錄下建一個boa文件夾,然后將編譯和修改好的boa、boa.conf拷貝到開發板的/etc/boa目錄下,PC機器上的etc/mime.types文件拷貝到開發板的/etc目錄下。

        完成上述文件下載后,在410c開發板的/etc/boa文件夾下創建www目錄,在www目錄下創建cgi-bin目錄,其中www目錄用于存放網頁html文件,cgi-bin用于存放cgi腳本。

        最后將自己的主頁文件index.html拷貝到開發板的www目錄下,如果index.html還有關聯的文件或者文件夾,都全部復制到該目錄下。到此,整個Boa web服務器移植完成,在PC機上打開瀏覽器,輸入開發板的ip即可看到主頁內容。

        在完成了web服務器的搭建后,同時結合前面的一篇博客《基于 410c平臺的移動圖像監測系統》,最后就可以方便的構建基于web的移動圖像檢測系統,用moTIon實現移動圖像監測,同時基于web模式進行查看監測內容。

        如果在移植過程中對html不熟悉,可以通過瀏覽器打開一個頁面(如www.baidu.com)然后另存為html文件即可,然后復制或者修改其中一個html為index.html文件即可,然后就可以用這個程序做測試。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 金湖县| 微山县| 会东县| 久治县| 石河子市| 克山县| 南雄市| 山阴县| 东海县| 北碚区| 都安| 商洛市| 含山县| 天台县| 垫江县| 青神县| 雷波县| 罗定市| 莱州市| 濮阳县| 东兴市| 安溪县| 鹿泉市| 壶关县| 大姚县| 鲁山县| 游戏| 贡山| 孟州市| 元朗区| 十堰市| 佛学| 寿光市| 长白| 阜南县| 阳江市| 满城县| 甘南县| 乐安县| 内江市| 德江县|