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