91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

OpenRT固件更新流程

發布時間:2020-06-10 13:07:21 來源:網絡 閱讀:1063 作者:stone927 欄目:軟件技術

1 使用范圍

????? 本文檔適用于分析OpenRT核心網路由器相關問題的技術人員。

?

2 固件更新需求

????? OpenRT系統包含系統鏡像、配置文件、Web頁面、內核模塊、業務APP等多個組件。系統更新操作可能涉及多個部分,需要對多個組件進行更新。這對OpenRT的維護人員提出了很高的要求,增加了維護成本。因此需要設計一套方便簡潔的系統固件升級流程,簡化OpenRT的維護流程,減低使用門檻,提高OpenRT核心網路由系統的競爭力。

?

3 固件更新方案

3.1 基本思路

????? 由于OpenRT系統包含多個組件,因此將所有最新組件打包,以單個文件形式通過Web頁面傳輸到系統后臺。解包后再執行包中對應的腳本進行各組件的替換,以實現OpenRT系統整體更新的目的。

?

3.2 Web文件傳輸

????? OpenRT使用goAhead作為Web服務器,goAhead本身具備文件傳輸功能。其中前端設計需要在表單中添加一個type屬性為file的input,即可實現傳輸更新固件包至后臺的功能。

?

3.3 固件包更新流程

????? 固件更新包是一個tar.gz包,包含OpenRT各組件的最新版本和一個更新腳本update.sh。OpenRT后臺成功獲取到固件更新包后會創建更新標志文件updating.flg,表明已獲取新版本需要及時更新。解壓此包后通過執行update.sh替換系統內部各組件并重啟,實現系統整體更新,詳細流程如圖 3.1所示。

OpenRT固件更新流程

更新包處理流程可能因為系統斷電等意外情況中斷,導致系統更新出現錯誤。因此需要在每次開機時進行更新檢測,主要檢測是否存在更新標志文件updating.flg。若發現存在此文件表示上次更新操作意外中斷,這時需重新執行update.sh,完成更新流程。詳細流程如圖 3.2所示。

OpenRT固件更新流程
3.4 更新腳本示例

????? OpenRT涉及功能眾多,每次更新內容千差萬別。可能涉及新的組件,需要添加新的目錄結構。也可能涉及新的配置文件等。因此需要根據每次更新的具體內容設計更新腳本update.sh,腳本的基本功能就是替換、添加、刪除OpenRT文件系統中的各組件,示例如程序清單 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."
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

密云县| 彰武县| 潍坊市| 武汉市| 阳春市| 吉林省| 祁连县| 石河子市| 泊头市| 乌兰察布市| 邢台县| 延川县| 聂拉木县| 竹溪县| 都匀市| 达拉特旗| 江川县| 抚顺县| 乐平市| 信阳市| 双桥区| 崇信县| 甘德县| 台中市| 台北市| 遵化市| 万荣县| 杭锦后旗| 鹤峰县| 蒙山县| 广州市| 博爱县| 平舆县| 赤峰市| 屏东市| 长葛市| 河津市| 广东省| 南宫市| 陆川县| 禄丰县|