1 使用范圍

本文檔適用于分析OpenRT核心網(wǎng)路由器相關(guān)問題的技術(shù)人員。
2 固件更新需求
OpenRT系統(tǒng)包含系統(tǒng)鏡像、配置文件、Web頁面、內(nèi)核模塊、業(yè)務(wù)APP等多個組件。系統(tǒng)更新操作可能涉及多個部分,需要對多個組件進(jìn)行更新。這對OpenRT的維護(hù)人員提出了很高的要求,增加了維護(hù)成本。因此需要設(shè)計一套方便簡潔的系統(tǒng)固件升級流程,簡化OpenRT的維護(hù)流程,減低使用門檻,提高OpenRT核心網(wǎng)路由系統(tǒng)的競爭力。
3 固件更新方案
3.1 基本思路
由于OpenRT系統(tǒng)包含多個組件,因此將所有最新組件打包,以單個文件形式通過Web頁面?zhèn)鬏數(shù)较到y(tǒng)后臺。解包后再執(zhí)行包中對應(yīng)的腳本進(jìn)行各組件的替換,以實現(xiàn)OpenRT系統(tǒng)整體更新的目的。
3.2 Web文件傳輸
OpenRT使用goAhead作為Web服務(wù)器,goAhead本身具備文件傳輸功能。其中前端設(shè)計需要在表單中添加一個type屬性為file的input,即可實現(xiàn)傳輸更新固件包至后臺的功能。
3.3 固件包更新流程
固件更新包是一個tar.gz包,包含OpenRT各組件的最新版本和一個更新腳本update.sh。OpenRT后臺成功獲取到固件更新包后會創(chuàng)建更新標(biāo)志文件updating.flg,表明已獲取新版本需要及時更新。解壓此包后通過執(zhí)行update.sh替換系統(tǒng)內(nèi)部各組件并重啟,實現(xiàn)系統(tǒng)整體更新,詳細(xì)流程如圖 3.1所示。

更新包處理流程可能因為系統(tǒng)斷電等意外情況中斷,導(dǎo)致系統(tǒng)更新出現(xiàn)錯誤。因此需要在每次開機時進(jìn)行更新檢測,主要檢測是否存在更新標(biāo)志文件updating.flg。若發(fā)現(xiàn)存在此文件表示上次更新操作意外中斷,這時需重新執(zhí)行update.sh,完成更新流程。詳細(xì)流程如圖 3.2所示。

3.4 更新腳本示例
OpenRT涉及功能眾多,每次更新內(nèi)容千差萬別。可能涉及新的組件,需要添加新的目錄結(jié)構(gòu)。也可能涉及新的配置文件等。因此需要根據(jù)每次更新的具體內(nèi)容設(shè)計更新腳本update.sh,腳本的基本功能就是替換、添加、刪除OpenRT文件系統(tǒng)中的各組件,示例如程序清單 3.1所示。
????????????????????????????????????????????????????? 程序清單 3.1 update.sh示例
echo "updating firmware ..."
#
# dhcpserver
#
rm /etc/dhcpdconfig.ini
cp ./dhcpserver/dhcpdconfig.ini /etc
rm_tool -r /var/dhcplease
mkdir /var/dhcplease
cp ./dhcpserver/dhcpd.leases /var/dhcplease
rm_tool -r /apps/dhcpserver
mkdir /apps/dhcpserver
cp ./dhcpserver/dhcpserver /apps/dhcpserver
#
# goahead
#
rm_tool -r /apps/goahead
mkdir /apps/goahead
cp ./goahead/route.txt /apps/goahead
cp ./goahead/goahead /apps/goahead
cp ./goahead/gopass /apps/goahead
cp ./goahead/webcomp /apps/goahead
cp ./goahead/auth.txt /apps/goahead
rm /lib/libgoahead.so
cp ./goahead/libgoahead.so /lib
#
# OpenRTCfgTool
#
rm_tool -r /apps/OpenRTCfgTool/OpenRTCfgTool
mkdir /apps/OpenRTCfgTool
cp ./OpenRTCfgTool/OpenRTCfgTool /apps/OpenRTCfgTool
#
# libcomm
#
rm /lib/libcomm.so
cp ./libcomm/libcomm.so /lib
#
# libnethandle
#
rm /lib/libnethandle.so
cp ./libnethandle/libnethandle.so /lib
#
# tmstat
#
rm /lib/modules/trafficStats.ko
cp ./tmstat/trafficStats.ko /lib/modules
#
# web
#
untar ./web.tar.gz /apps/goahead
#
# startup
#
rm /etc/startup.sh
cp ./startup.sh /etc/
#
# bsp
#
rm /boot/grldr
rm /boot/menu.lst
rm /boot/OpenRT-bsp.elf
cp ./bsp/grldr /boot
cp ./bsp/menu.lst /boot
cp ./bsp/OpenRT-bsp.elf /boot
echo "update finish."
當(dāng)前名稱:OpenRT固件更新流程-創(chuàng)新互聯(lián)
鏈接地址:http://chinadenli.net/article46/ecoeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、品牌網(wǎng)站設(shè)計、移動網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、手機網(wǎng)站建設(shè)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容