批量升級固件的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及批量升級固件的方法。
【背景技術(shù)】
[0002]擔(dān)任著一個電子產(chǎn)品最基礎(chǔ)、最底層工作的軟件稱為固件(firmware),比如計算機主板上的基本輸入/輸出系統(tǒng)B1S(Basic Input/output System),通常這些硬件內(nèi)所保存的程序是無法被用戶直接讀出或修改。但產(chǎn)品在生產(chǎn)的過程中以及出廠到達用戶手中后,都有可能因為各種需求的更新需要升級固件。
[0003]隨著產(chǎn)業(yè)的不斷進步,出現(xiàn)了 WEB頁面升級的方法,產(chǎn)品無需拆卸PCB板上的flash (閃存),取而代之的是登陸WEB界面直接在線升級,這樣的升級方式更為便捷,快速,但卻無法實現(xiàn)批量的升級,效率依然低下。
[0004]現(xiàn)今,生產(chǎn)自動化技術(shù)已經(jīng)進入了高速發(fā)展的時代,產(chǎn)品生產(chǎn)的各個流程都已基本實現(xiàn)了自動化生產(chǎn)。目前固件升級也在逐步實現(xiàn)自動化,并有專門的智能系統(tǒng)實現(xiàn)批量自動化升級?,F(xiàn)有的批量升級方法采用的是利用升級服務(wù)器通過網(wǎng)絡(luò)將升級固件發(fā)送至各需要升級的設(shè)備,為使升級服務(wù)器可快速訪問各待升級設(shè)備,將待升級設(shè)備接入到升級服務(wù)器所在的局域網(wǎng),并為待升級設(shè)備分別配置相應(yīng)的IP地址,升級完畢后重置各個待升級設(shè)備的IP地址,恢復(fù)到出廠設(shè)置的IP地址。這種方法需要在升級前后人工配置IP地址,無法自動配置IP地址,在待升級設(shè)備數(shù)量較大的時候帶來工作量的大量提升,導(dǎo)致批量升級固件的效率低下。
【發(fā)明內(nèi)容】
[0005]基于此,有必要針對現(xiàn)有的批量升級固件的效率低下的問題,提供一種無需配置待升級設(shè)備的IP地址,效率高的批量升級固件的方法。
[0006]批量升級固件的方法,包括:
[0007]建立多線程步驟:建立多線程模塊,所述多線程模塊用于調(diào)用文件傳輸工具;
[0008]接入設(shè)備步驟:通過交換機連接多個待升級設(shè)備,將所述交換機的已接入所述待升級設(shè)備的端口分別配置VLAN,將所述交換機的已接入所述待升級設(shè)備的端口配置為access 模式;
[0009]設(shè)置IP轉(zhuǎn)換步驟:提供IP轉(zhuǎn)換服務(wù)器,通過所述IP轉(zhuǎn)換服務(wù)器與所述交換機連接,將所述交換機與所述IP轉(zhuǎn)換服務(wù)器的連接的端口配置為trunk模式,所述IP轉(zhuǎn)換服務(wù)器用于將IP地址轉(zhuǎn)換為多個與所述VLAN分別對應(yīng)的IP地址;
[0010]發(fā)送升級固件步驟:運行所述多線程模塊,調(diào)用所述文件傳輸工具根據(jù)包含升級固件的升級報文,將所述升級固件分別發(fā)送至所述多個待升級設(shè)備。
[0011 ] 在一個實施例中,所述接入設(shè)備步驟之前還包括:
[0012]抓取報文步驟:提供測試設(shè)備,使用抓包工具抓取在測試設(shè)備通過頁面升級方式進行升級的過程中的升級報文,所述升級報文包含升級固件,解析所述升級報文。
[0013]在一個實施例中,所述抓包工具為wireshark工具。
[0014]在一個實施例中,所述發(fā)送升級固件步驟之后包括:
[0015]校驗重發(fā)步驟:接收所述待升級設(shè)備返回的校驗值,如所述待升級設(shè)備返回的校驗值與升級報文中的校驗值不一致,則重新將對應(yīng)的升級報文發(fā)送至所述待升級設(shè)備。
[0016]在一個實施例中,所述文件傳輸工具為curl工具。
[0017]上述批量升級固件的方法,通過IP轉(zhuǎn)換服務(wù)器接入到網(wǎng)絡(luò),將升級服務(wù)器的IP地址轉(zhuǎn)換為與待升級設(shè)備所在VLAN對應(yīng)的IP地址,實現(xiàn)了升級服務(wù)器同時與多個待升級設(shè)備的通信,通過多線程模塊將升級固件發(fā)送至待升級設(shè)備,實現(xiàn)了無需配置待升級設(shè)備的IP地址,簡化工作,有效提高了批量升級固件的效率。
[0018]上述批量升級固件的方法,還提供了校驗重傳機制,有效提高了固件升級的可靠性。
【附圖說明】
[0019]圖1為本發(fā)明一較佳實施例的批量升級固件的方法的流程示意圖;
[0020]圖2為本發(fā)明一較佳實施例的批量升級固件的方法的網(wǎng)絡(luò)架構(gòu)示意圖。
【具體實施方式】
[0021]為了便于理解本發(fā)明,下面將參照相關(guān)附圖對本發(fā)明進行更全面的描述。附圖中給出了本發(fā)明的較佳實施例。但是,本發(fā)明可以以許多不同的形式來實現(xiàn),并不限于本文所描述的實施例。相反地,提供這些實施例的目的是使對本發(fā)明的公開內(nèi)容的理解更加透徹全面。
[0022]值得一提的是,本發(fā)明尤其適用于各種電子設(shè)備或通信設(shè)備,如數(shù)字機頂盒、路由器、調(diào)制解調(diào)器或電腦,本發(fā)明適用于對多個上述電子設(shè)備或通信設(shè)備的固件進行批量升級。
[0023]例如,一種批量升級固件的方法,包括以下步驟:建立多線程模塊,所述多線程模塊用于調(diào)用文件傳輸工具;通過交換機連接多個待升級設(shè)備,將所述交換機的已接入所述待升級設(shè)備的端口分別配置VLAN,將所述交換機的已接入所述待升級設(shè)備的端口配置為access模式;提供IP轉(zhuǎn)換服務(wù)器,通過所述IP轉(zhuǎn)換服務(wù)器與所述交換機連接,將所述交換機與所述IP轉(zhuǎn)換服務(wù)器的連接的端口配置為trunk模式,所述IP轉(zhuǎn)換服務(wù)器用于將IP地址轉(zhuǎn)換為多個與所述VLAN分別對應(yīng)的IP地址;運行所述多線程模塊,調(diào)用所述文件傳輸工具根據(jù)包含升級固件的升級報文,將所述升級固件分別發(fā)送至所述多個待升級設(shè)備。
[0024]如圖1所示,本發(fā)明一較佳實施例的批量升級固件的方法包括:
[0025]步驟100,提供測試設(shè)備,使用抓包工具抓取在測試設(shè)備通過頁面升級方式進行升級的過程中的升級報文,所述升級報文包含升級固件,解析所述升級報文。
[0026]例如,提供測試設(shè)備,通過測試設(shè)備登陸升級頁面進行升級,使用抓包工具抓取測試設(shè)備在升級過程中的升級報文,所述升級報文包含升級固件,解析所述升級報文。
[0027]測試設(shè)備為待升級設(shè)備,其具有與待升級設(shè)備同樣的硬件架構(gòu)和固件,例如,在待升級設(shè)備中抽取一臺待升級設(shè)備作為測試設(shè)備,通過測試設(shè)備進行固件升級,獲取固件升級過程中的升級報文和升級固件。
[0028]提供一臺頁面升級服務(wù)器,頁面升級服務(wù)器提供包含升級固件的升級頁面的鏈接,如WEB頁面的鏈接,升級方式為人工操作測試設(shè)備登陸到升級服務(wù)器的升級頁面進行升級。登陸到該測試設(shè)備的升級頁面后,根據(jù)頁面提示選擇升級固件的路徑,點擊頁面的開始升級的提示框或按鈕,測試設(shè)備獲取并下載升級固件,開始升級,頁面升級服務(wù)器以HTTP報文形式將升級固件發(fā)送至測試設(shè)備。不同設(shè)備或不同產(chǎn)品由于其WEB頁面不同,升級路徑也可能不同,但是原理一樣。
[0029]使用抓包工具抓取升級過程中測試設(shè)備的HTTP報文,所述的HTTP報文即升級報文,所述升級報文包含升級固件。隨后將抓取的HTTP報文保存,用于HTTP報文解析。升級過程相當(dāng)于測試設(shè)備與升級服務(wù)器的交互的過程,而HTTP報文將體現(xiàn)升級過程中的交互過程。
[0030]解析HTTP報文協(xié)議,測試設(shè)備的升級過程分為三步:一、通過WEB頁面登陸服務(wù)器;二、進入設(shè)備的升級頁面;三、升級,服務(wù)器將升級固件發(fā)送到測試設(shè)備或測試設(shè)備下載升級固件。通過抓包工具抓取包含升級頁面報文、路徑和升級固件等信息的升級報文,解析該升級報文協(xié)議,記錄升級報文的發(fā)送形式和內(nèi)容。
[0031 ] 在一個實施例中,所述抓包工具為wireshark工具。
[0032]步驟200,建立多線程模塊,所述多線程模塊用于調(diào)用文件傳輸工具。
[0033]例如,提供升級服務(wù)器,在升級服務(wù)器上建立多線程模塊,所述多線程模塊用于調(diào)用文件傳輸工具。
[0034]升級服務(wù)器內(nèi)存儲有待升級設(shè)備的升級固件,在升級服務(wù)器上建立多線程模塊,所述多線程模塊具有多線程功能,例如,用于同時與多個終端進行通信,同時與多個終端發(fā)送和接收數(shù)據(jù),這樣,升級服務(wù)器通過多線程模塊即可與多個待升級設(shè)備通信,向多個待升級設(shè)備發(fā)送數(shù)據(jù),例如,將升級固件存儲在多線程模塊的根目錄下,則多線程模塊可直接獲取升級固件;所述多線程模塊用于調(diào)用文件傳輸工具,文件傳輸工具用于將升級固件發(fā)送至待升級設(shè)備。
[0035]在一個實施例中,所述文件傳輸工具為⑶RL工具,⑶RL工具是利用URL (UniformResource Locator,統(tǒng)一資源定位符)語法在命令行方式下工作的文件傳輸工具,用于將URL指向的文件直接下載或發(fā)送至終端,CURL兼容Unix、Linux、DOS、Win32或Win64等系統(tǒng),可在上述系統(tǒng)的服務(wù)器或設(shè)備上運行。
[0036]步驟300,通過交換機連接多個待升級設(shè)備,將所述交換機的已接入所述待升級設(shè)備的端口分別配置VLAN,將所述交換機的已接入所述待升級設(shè)備的端口配置為access模式。
[0037]例如,將多個待升級設(shè)備接入交換機,根據(jù)接入的待升級設(shè)備的數(shù)量將交換機已接入待升級設(shè)備的端口分別配置多個VLAN,將交換機的已接入待升級設(shè)備的端口配置為access 模式。
[0038]多個待升級設(shè)備具有相同的硬件架構(gòu)和固件配置,具有相同的出廠默認