專利名稱:可修復(fù)固件的客戶端設(shè)備及其固件修復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種客戶端設(shè)備(Customer Premises Equipment, CPE)及其修復(fù)方法,特別是涉及ー種有關(guān)于可修復(fù)固件的客戶端設(shè)備及其修復(fù)固件的方法。
背景技術(shù):
許多使用者需要依賴設(shè)置在使用者端的客戶端設(shè)備來連接網(wǎng)絡(luò)服務(wù),然而多數(shù)客戶端設(shè)備都架設(shè)于較不易接近的高處。特別是戶外型的客戶端設(shè)備(outdoor CPE),時(shí)常設(shè)置在供電較不穩(wěn)定的地區(qū),因而易于發(fā)生更新固件時(shí)由于斷電造成更新不完全,固件損壞而無法啟動(dòng)客戶端設(shè)備的狀況。當(dāng)客戶端設(shè)備無法正常開機(jī)運(yùn)行時(shí),維護(hù)的人員須通過序列通訊接ロ連接線路(如RS232連接線)連接到發(fā)生異常的客戶端設(shè)備進(jìn)行維護(hù)。然而序列通訊接ロ線路可傳輸電氣訊號(hào)的距離十分受限(約5公尺),維護(hù)人員必須十分接近需要 修復(fù)的客戶端裝置方能進(jìn)行修復(fù)作業(yè),所以容易產(chǎn)生人力和時(shí)間的浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中固件修復(fù)作業(yè)容易產(chǎn)生人力和時(shí)間的浪費(fèi)等缺陷,提供一種可修復(fù)固件的客戶端設(shè)備及其固件修復(fù)方法。本發(fā)明提供了一種客戶端設(shè)備的固件修復(fù)方法,所述的客戶端設(shè)備包括存儲(chǔ)單元、處理單元及網(wǎng)絡(luò)接ロ単元,所述方法包括讀取并檢測(cè)存儲(chǔ)在存儲(chǔ)單元的第一固件是否損壞。當(dāng)檢測(cè)結(jié)果判斷第一固件損壞時(shí),讀取存儲(chǔ)在存儲(chǔ)單元的第二固件,并將第二固件加載至記憶單元并執(zhí)行,根據(jù)第二固件的指令啟用第二固件所包括的網(wǎng)絡(luò)服務(wù),以及控制客戶端設(shè)備與外部裝置通過網(wǎng)絡(luò)傳輸數(shù)據(jù)與指令??蛻舳搜b置還接受外部裝置的控制而執(zhí)行修復(fù)程序,并且根據(jù)修復(fù)程序接收外部裝置所存儲(chǔ)的更新固件以取代損壞的第一固件為新的第一固件。較佳地,檢測(cè)該第一固件是否損壞的步驟中包括讀取該第一固件預(yù)存的驗(yàn)證值;以及計(jì)算該第一固件的數(shù)據(jù)的比對(duì)值并與該驗(yàn)證值進(jìn)行比對(duì),當(dāng)該比對(duì)值與該驗(yàn)證值不符時(shí),判斷該第一固件損壞。較佳地,加載該第二固件到該記憶単元的步驟之前還包括設(shè)置切換旗標(biāo)以指示該第一固件的損壞。較佳地,讀取及加載該第二固件到該記憶単元的步驟中包括根據(jù)該切換旗標(biāo)的設(shè)置而讀取該第二固件;變更該第二固件的名稱為該第一固件的名稱;以及加載名稱變更后的該第二固件到該記憶單元以供執(zhí)行該第二固件的指令。較佳地,根據(jù)該第二固件的指令而與該外部裝置連接的步驟中包括接受該外部裝置與該客戶端設(shè)備的網(wǎng)絡(luò)連接請(qǐng)求;以及根據(jù)該網(wǎng)絡(luò)連接請(qǐng)求配置網(wǎng)絡(luò)地址給該外部裝置,以供該外部裝置依據(jù)該網(wǎng)絡(luò)地址與該客戶端設(shè)備進(jìn)行網(wǎng)絡(luò)連接。較佳地,接受該外部裝置的控制而執(zhí)行該修復(fù)程序的步驟中包括接受該外部裝置經(jīng)由網(wǎng)絡(luò)登錄到該客戶端設(shè)備;以及接受該外部裝置發(fā)出的修復(fù)指令而啟動(dòng)該修復(fù)程序。較佳地,根據(jù)該修復(fù)程序接收該更新固件的步驟中包括接取該外部裝置的該更新固件;復(fù)制該更新固件并變更該更新固件的名稱為該第一固件的名稱;存儲(chǔ)所復(fù)制且更名的該更新固件到該存儲(chǔ)單元;以及重新啟動(dòng)該客戶端設(shè)備。較佳地,根據(jù)該第二固件的指令啟用網(wǎng)絡(luò)服務(wù)的步驟中包括執(zhí)行地址配置程序以啟用網(wǎng)絡(luò)地址的配置服務(wù);執(zhí)行遠(yuǎn)程控制程序以啟用遠(yuǎn)程登錄服務(wù);以及執(zhí)行文件傳輸程序以啟用文件傳輸服務(wù)。較佳地,該地址配置程序是動(dòng)態(tài)主機(jī)組態(tài)協(xié)議程序,該遠(yuǎn)程控制程序是遠(yuǎn)程登錄服務(wù)協(xié)議程序,該文件傳輸程序是文件傳輸協(xié)議程序。此外,本發(fā)明還提供了一種可修復(fù)固件的客戶端設(shè)備,所述的客戶端設(shè)備包括存儲(chǔ)單元、處理單元及網(wǎng)絡(luò)接口單元。其中,存儲(chǔ)單元存儲(chǔ)第一固件和第二固件。網(wǎng)絡(luò)接口單元用以連接外部裝置。處理單元用以在客戶端設(shè)備啟動(dòng)時(shí),檢測(cè)第一固件是否損壞,以及根 據(jù)檢測(cè)結(jié)果,在第一固件損壞時(shí)選擇第二固件并加載到記憶單元加以執(zhí)行。其中,當(dāng)?shù)诙碳粓?zhí)行時(shí),處理單元根據(jù)第二固件的指令,啟用第二固件所包括的網(wǎng)絡(luò)服務(wù),控制外部裝置與客戶端設(shè)備透過網(wǎng)絡(luò)接口單元傳送數(shù)據(jù)與指令,以接收外部裝置所存儲(chǔ)的更新固件而修復(fù)損壞的第一固件。本發(fā)明的積極進(jìn)步效果在于本發(fā)明所提供的客戶端設(shè)備及其固件修復(fù)方法,可自動(dòng)檢測(cè)第一固件是否正??蛇\(yùn)作或已經(jīng)損壞,并且可在判斷出第一固件損壞時(shí),自動(dòng)切換到第二固件執(zhí)行,并在執(zhí)行第二固件的程序中一并完成對(duì)第一固件的修復(fù)作業(yè),使得客戶端設(shè)備可再度正常開機(jī)運(yùn)作。
圖I為本發(fā)明的一種客戶端設(shè)備修復(fù)固件方法的實(shí)施例的流程圖。圖2為本發(fā)明的客戶端設(shè)備與外部裝置之間數(shù)據(jù)與指令溝通的實(shí)施例的流程圖。圖3為本發(fā)明的一種可修復(fù)固件的客戶端設(shè)備的實(shí)施例的結(jié)構(gòu)圖。圖4為本發(fā)明的可修復(fù)固件的客戶端設(shè)備的實(shí)施例的存儲(chǔ)單元數(shù)據(jù)結(jié)構(gòu)示意圖主要組件符號(hào)說明S101-S129 流程步驟S115-1、S117-1、S119-1、S119-2、S121-1、S123-1 流程步驟3客戶端設(shè)備30存儲(chǔ)單元300 第一區(qū)段302 第二區(qū)段304開機(jī)引導(dǎo)區(qū)段306 第一固件308 第二固件3080地址配置程序3082遠(yuǎn)程控制程序3084文件傳輸程序
3086修復(fù)程序310開機(jī)引導(dǎo)程序3100檢測(cè)程序3102切換程序32記憶單元34處理單元 36網(wǎng)絡(luò)接ロ單元2外部裝置
具體實(shí)施例方式下面結(jié)合附圖給出本發(fā)明較佳實(shí)施例,以詳細(xì)說明本發(fā)明的技術(shù)方案。〔客戶端設(shè)備的固件修復(fù)方法實(shí)施例〕請(qǐng)參照?qǐng)D1,圖I繪制了本發(fā)明所提供的一種客戶端設(shè)備的固件修復(fù)方法實(shí)施例的流程圖。本實(shí)施例的客戶端設(shè)備(Customer Premises Equipment, CPE)可為用戶為了連接網(wǎng)絡(luò)服務(wù)而架設(shè)在戶外的硬件裝置,例如WiMAX基地臺(tái)等戶外型客戶端設(shè)備(outdoorCPE)。由于客戶端設(shè)備I經(jīng)常設(shè)置在高處,例如戶外型的客戶端設(shè)備常常裝設(shè)在戶外的燈柱頂,而且有部分安裝所述設(shè)備的地區(qū)供電不穩(wěn),易于造成客戶端設(shè)備I的固件升級(jí)或更新過程中,因斷電而造成固件損壞(damaged),以致客戶端設(shè)備I無法正常開機(jī)運(yùn)作。故本實(shí)施例所述的修復(fù)方法可用于檢測(cè)客戶端設(shè)備I中的固件是否損壞,例如資料不完整,并且在發(fā)現(xiàn)所檢測(cè)的固件已損壞時(shí),控制客戶端設(shè)備I切換到另ー個(gè)固件執(zhí)行,以確??蛻舳嗽O(shè)備I可繼續(xù)順利運(yùn)行,同時(shí)可進(jìn)行修復(fù)損壞的固件的作業(yè)。請(qǐng)參照?qǐng)DI,在本實(shí)施例中,當(dāng)客戶端裝置I啟動(dòng)時(shí),參見S101,客戶端設(shè)備的處理單元會(huì)根據(jù)開機(jī)引導(dǎo)程序的引導(dǎo),前往客戶端設(shè)備的存儲(chǔ)單元中讀取第一固件的映像文件,并通過檢測(cè)程序檢測(cè)第一固件是否正常或已損壞,參見S103,例如檢測(cè)第一固件文件數(shù)據(jù)的完整性(integrity)是否被破壞。檢測(cè)的方式可通過開啟所要檢測(cè)的第一固件,并讀取存儲(chǔ)在第一固件文件結(jié)尾的數(shù)據(jù)結(jié)構(gòu)中的預(yù)設(shè)的驗(yàn)證值,以及利用與產(chǎn)生驗(yàn)證值相同的特定算法,計(jì)算當(dāng)時(shí)第一固件映像文件的資料,從而產(chǎn)生對(duì)應(yīng)于目前的第一固件的比對(duì)值,井比對(duì)驗(yàn)證值及比對(duì)值,判斷兩者是否相符,即可得知第一固件是否損壞,參見S105。驗(yàn)證值是預(yù)先利用特定算法計(jì)算出來的第一固件的字符串或數(shù)值,例如以信息摘要算法5(MesSage-DigeSt 5,MD5)計(jì)算出來的固定長(zhǎng)度雜湊值,通常記錄在第一固件的數(shù)據(jù)最末的數(shù)據(jù)結(jié)構(gòu)中。當(dāng)然,可用于產(chǎn)生驗(yàn)證值的算法不限于上述的信息摘要算法5,亦可為其它類型的算法(如SHA-I或SHA-256等),以產(chǎn)生對(duì)應(yīng)于正常的第一固件的驗(yàn)證值。當(dāng)驗(yàn)證值與比對(duì)值相符時(shí),代表第一固件的數(shù)據(jù)完整性正確無誤,此時(shí)可判斷出第一固件并未發(fā)生異常或損壞,接著可由處理單元繼續(xù)將第一固件的映像文件解壓縮并加載記憶単元(如主存儲(chǔ)器)并執(zhí)行,參見S107,以便根據(jù)第一固件進(jìn)行初始化及加載操作系統(tǒng)的程序,參見S109。反之,若經(jīng)步驟S105的比對(duì)后,判斷比對(duì)值與驗(yàn)證值并不相符,則代表第一固件的映像文件未通過完整性檢測(cè),第一固件的文件內(nèi)容可能有損壞,例如在升級(jí)或更新過程中因斷電而造成文件完整性被破壞。處理單元?jiǎng)t進(jìn)一步根據(jù)此項(xiàng)檢測(cè)及判斷的結(jié)果,執(zhí)行切換程序以指示出第一固件處于損壞的狀態(tài),例如于記憶單元的特定地址設(shè)置(assert)切換旗標(biāo),參見Slll。接著,處理單元可依照切換旗標(biāo)的設(shè)置,改為讀取存儲(chǔ)于存儲(chǔ)單元中的第二固件到記憶單元并執(zhí)行,參見S113。在本實(shí)施例中,處理單元在第二固件被加載至記憶單元之前,可根據(jù)切換程序的指令,先將第一固件的映像文件的名稱變更為其它名稱,并將第二固件的映像文件的名稱變更為第一固件的映像文件原始的名稱,以便于處理單元根據(jù)名稱選取映像文件加載記憶單元時(shí),選取到命名與第一固件原始名稱相同的第二固件,藉以達(dá)到切換固件的效果。特別說明的是,上述手段都為本實(shí)施例的一種例示,用以指示第一固件損壞的方式以及辨識(shí)第二固件的方式,并不限于本實(shí)施例所披露的手段。例如還可以在判斷出第一固件損壞時(shí),直接讀取第二固件所在的存儲(chǔ)地址,并前往所述存儲(chǔ)地址直接將第二固件加 載至記憶單元等其它手段。接下來,當(dāng)?shù)诙碳患虞d到記憶單元并執(zhí)行時(shí),客戶端設(shè)備可根據(jù)第二固件中的數(shù)據(jù),執(zhí)行地址配置程序、遠(yuǎn)程控制程序及文件傳輸程序等程序從而啟用多項(xiàng)網(wǎng)絡(luò)服務(wù),包括執(zhí)行動(dòng)態(tài)主機(jī)組態(tài)協(xié)議而使客戶端設(shè)備作為動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)器(DHCP server),提供網(wǎng)絡(luò)地址的配置(assign)服務(wù)、執(zhí)行遠(yuǎn)程登錄服務(wù)協(xié)議(Telnetprotocol),因而使客戶端設(shè)備同時(shí)可作為遠(yuǎn)程登錄服務(wù)協(xié)議服務(wù)器(Telnet server),提供遠(yuǎn)程登錄(login)服務(wù),使得外部裝置可從遠(yuǎn)程登錄到客戶端設(shè)備,以及執(zhí)行文件傳輸協(xié)議(File Transfer Protocol, FTP),從而作為文件傳輸協(xié)議客戶端(FTP client),以便下載文件傳輸協(xié)議服務(wù)器端的文件。上述的服務(wù)啟用后,客戶端設(shè)備可接收來自外部裝置的網(wǎng)絡(luò)連接請(qǐng)求,參見S115。外部裝置可通過網(wǎng)絡(luò)纜線連接于客戶端設(shè)備的網(wǎng)絡(luò)接口單元而與客戶端設(shè)備實(shí)體連接。外部裝置與客戶端設(shè)備實(shí)體連接后,兩者位于同一網(wǎng)段中,因而外部裝置可搜尋所在網(wǎng)段中的動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)器,并獲得客戶端設(shè)備(即動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)器)所配置的網(wǎng)絡(luò)地址,參見S117,而完成客戶端設(shè)備與外部裝置之間的網(wǎng)絡(luò)連接。完成網(wǎng)絡(luò)連接后,客戶端設(shè)備可進(jìn)一步地根據(jù)啟用的遠(yuǎn)程登錄服務(wù),接受外部裝置根據(jù)遠(yuǎn)程登錄服務(wù)協(xié)議服務(wù)器的網(wǎng)絡(luò)地址,然后登錄到作為遠(yuǎn)程登錄服務(wù)協(xié)議服務(wù)器的客戶端設(shè)備,并由處理單元接收外部裝置發(fā)出的修復(fù)指令,以執(zhí)行修復(fù)第一固件的修復(fù)程序,參見S119。所述的修復(fù)程序可為預(yù)設(shè)的指令腳本,處理單元依照指令腳本的指示,通過啟用的文件傳輸協(xié)議服務(wù),登錄到提供文件傳輸服務(wù)并存有更新固件映像文件的外部裝置,參見S121??蛻舳嗽O(shè)備登錄到外部裝置后,可繼續(xù)依據(jù)修復(fù)程序的指令,復(fù)制更新固件的映像文件并傳輸回客戶端設(shè)備,以及變更更新固件的名稱為損壞的第一固件的原始名稱,參見S123??蛻舳嗽O(shè)備所復(fù)制及更名的更新固件可被存儲(chǔ)在原本存放第一固件的存儲(chǔ)區(qū)段中取代已損壞的原第一固件,而成為新的第一固件,參見S125。修復(fù)程序最后還可指示將切換旗標(biāo)取消,參見S127,并重新啟動(dòng)客戶端設(shè)備,參見S129,以便客戶端設(shè)備再次啟動(dòng)后,不會(huì)讀取到被設(shè)置的切換指標(biāo)而加載第二固件,而是載入新的第一固件。
在上述說明中,客戶端設(shè)備是接收外部裝置所存儲(chǔ)的更新固件作為新的第一固件,在客戶端設(shè)備與外部裝置通過纜線(網(wǎng)絡(luò)線)完成實(shí)體連接后,客戶端設(shè)備和外部裝置即可通過各項(xiàng)網(wǎng)絡(luò)服務(wù)傳遞數(shù)據(jù)和指令。本實(shí)施例中,客戶端設(shè)備與外部裝置之間的數(shù)據(jù)與指令溝通程序請(qǐng)參閱圖2。將外部裝置與客戶端設(shè)備實(shí)體連接完成后,外部裝置會(huì)對(duì)同網(wǎng)段的其它網(wǎng)絡(luò)設(shè)備廣播請(qǐng)求網(wǎng)絡(luò)連接,以搜尋可指派網(wǎng)絡(luò)地址的網(wǎng)絡(luò)服務(wù)設(shè)備,參見S115-1,若此時(shí)客戶端設(shè)備的動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)已啟用,則會(huì)響應(yīng)發(fā)出搜尋的外部裝置,井指派適當(dāng)?shù)木W(wǎng)絡(luò)地址給外部裝置,參見S117-1,以等待外部裝置確認(rèn)接收動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)器的配置。上述程序可對(duì)應(yīng)到圖I的步驟SI 15到SI 17。外部裝置取得網(wǎng)絡(luò)地址而完成與客戶端設(shè)備的網(wǎng)絡(luò)連接后,可根據(jù)客戶端設(shè)備的網(wǎng)絡(luò)地址登錄到客戶端設(shè)備,參見S119-1,例如以遠(yuǎn)程登錄服務(wù)協(xié)議的指令登錄到客戶端 設(shè)備,通過從客戶端設(shè)備的外部向客戶端設(shè)備發(fā)出特定的指令,參見S119-2,控制客戶端設(shè)備執(zhí)行修復(fù)的程序。上述程序可對(duì)應(yīng)到圖I的步驟S119。外部裝置取得網(wǎng)絡(luò)地址而完成與客戶端設(shè)備的網(wǎng)絡(luò)連接后,可根據(jù)客戶端設(shè)備的網(wǎng)絡(luò)地址登錄到客戶端設(shè)備,參見S119-1,例如以遠(yuǎn)程登錄服務(wù)協(xié)議的指令登錄到客戶端設(shè)備,通過從客戶端設(shè)備的外部向客戶端設(shè)備發(fā)出特定的指令,參見S119-2,控制客戶端設(shè)備執(zhí)行修復(fù)的程序。上述程序可對(duì)應(yīng)到圖I的步驟S119??蛻舳嗽O(shè)備再根據(jù)修復(fù)程序的指示,依據(jù)動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)指派給外部裝置的網(wǎng)絡(luò)地址,執(zhí)行接取外部裝置的數(shù)據(jù)的操作,參見S121-1,在本例中可根據(jù)預(yù)設(shè)或被輸入的賬號(hào)及密碼登錄到啟用文件傳輸服務(wù)的外部裝置,以向外部裝置請(qǐng)求文件,最后再?gòu)耐獠垦b置接收用以取代損壞的固件的更新固件,并傳輸回客戶端設(shè)備,參見S123-1,至此而完成客戶端設(shè)備與外部裝置之間為修復(fù)固件目的的溝通。上述程序?qū)?yīng)到圖I的步驟S121到 S123。特別說明的是,上述多個(gè)固件存儲(chǔ)的位置、用以指示出第一固件損壞的方式、以及切換所讀取的固件的手段,都僅僅是例示性的做法,本領(lǐng)域中熟悉該技術(shù)的人員自然可以獲知并不限于上述的例示性手段?!部尚迯?fù)固件的客戶端設(shè)備實(shí)施例〕請(qǐng)參照?qǐng)D3,圖3是本發(fā)明提供的一種客戶端設(shè)備實(shí)施例的結(jié)構(gòu)圖,所述的客戶端設(shè)備可用來執(zhí)行上述實(shí)施例中所述的修復(fù)方法。本實(shí)施例的客戶端設(shè)備3(CUStomerPremises Equipment,CPE)包括存儲(chǔ)單元30、記憶單元32、處理單元34及網(wǎng)絡(luò)接ロ單元36。存儲(chǔ)單元30可包括多個(gè)存儲(chǔ)區(qū)段,例如第一區(qū)段300、第二區(qū)段302及開機(jī)引導(dǎo)區(qū)段304。其中,存儲(chǔ)單元30、記憶單元32及網(wǎng)絡(luò)接ロ単元36都連接于處理單元34,以接受處理單元34的控制而存取數(shù)據(jù)。網(wǎng)絡(luò)接ロ単元36更可通過網(wǎng)絡(luò)線與外部裝置2進(jìn)行網(wǎng)絡(luò)連接。本實(shí)施例的存儲(chǔ)單元30可為非揮發(fā)性內(nèi)存,例如閃存(Flash Memory)或電子式可編程只讀存儲(chǔ)器(EPROM)等內(nèi)存裝置,并用于存儲(chǔ)客戶端設(shè)備3運(yùn)作所需要的數(shù)據(jù)。存儲(chǔ)單元30的第一區(qū)段300、第二區(qū)段302及開機(jī)引導(dǎo)區(qū)段304可為相鄰或不相鄰的地址區(qū)段,其中,第一區(qū)段300可用以存儲(chǔ)客戶端設(shè)備3的第一固件,第二區(qū)段302可用以存儲(chǔ)第ニ固件,而開機(jī)引導(dǎo)區(qū)段304則可存儲(chǔ)客戶端設(shè)備3的開機(jī)引導(dǎo)程序。前述各存儲(chǔ)區(qū)段的設(shè)置僅為例示而不限于所述方式,實(shí)作上,存儲(chǔ)單元30實(shí)體上可包括多個(gè)非揮發(fā)性內(nèi)存芯片,第一固件、第二固件及開機(jī)引導(dǎo)程序也可分別存儲(chǔ)在不同的內(nèi)存芯片當(dāng)中。上述各個(gè)固件或程序在存儲(chǔ)單元30中可以以映像文件(image)的方式記錄,每ー個(gè)映像文件各有相對(duì)應(yīng)的文件名稱從而加以區(qū)別。存儲(chǔ)單元30記錄的數(shù)據(jù)可包括有用于檢測(cè)第一固件是否損壞的檢測(cè)程序,以及在判斷第一固件損壞時(shí)切換到第二固件的切換程序,所述的程序可包含于開機(jī)引導(dǎo)程序。本實(shí)施例的記憶單元32可為揮發(fā)性內(nèi)存,例如隨機(jī)存取內(nèi)存(RAM),并用于供加載(load)存儲(chǔ)單元30所存儲(chǔ)的第一固件、第二固件或開機(jī)引導(dǎo)程序。固件或引導(dǎo)程序被加載至記憶單元32時(shí)將被解壓縮為可執(zhí)行的程序,以供處理單元34執(zhí)行處理。處理單元34在客戶端設(shè)備3被啟動(dòng)時(shí),會(huì)先將開機(jī)弓丨導(dǎo)區(qū)段304中的開機(jī)引導(dǎo)程序加載至記憶單元32,從而進(jìn)一歩根據(jù)開機(jī)引導(dǎo)程序的指令,檢測(cè)預(yù)設(shè)的第一固件的完整性,并在判斷出第一固件有錯(cuò)誤或失效時(shí)切換到備用的第二固件,進(jìn)而選擇所述第一固件及第ニ固件中的一個(gè)加載到記憶單元32。當(dāng)?shù)谝还碳虻诙碳患虞d記憶単元32后,處 理單元34會(huì)根據(jù)記憶単元32中解壓縮后的固件程序執(zhí)行后續(xù)的啟動(dòng)操作,直到操作系統(tǒng)被啟動(dòng)后,才將控制權(quán)由開機(jī)引導(dǎo)程序轉(zhuǎn)移到操作系統(tǒng)。所述的處理單元34可為中央處理器、微控制器或嵌入式控制器等控制裝置。網(wǎng)絡(luò)接ロ單元36可為以太網(wǎng)絡(luò)連接端ロ(Ethernet Port),并用于供外部裝置2與客戶端設(shè)備3通過網(wǎng)絡(luò)進(jìn)行連接,從而使得外部裝置2可對(duì)客戶端設(shè)備3進(jìn)行遠(yuǎn)程控制,也使得客戶端設(shè)備3可存取外部裝置2所具有的信息。外部裝置2存儲(chǔ)有更新固件。所述的外部裝置2可為筆記型計(jì)算機(jī)或其它可攜式的運(yùn)算裝置,用以在客戶端設(shè)備3的固件有異?;驌p壞時(shí),通過網(wǎng)絡(luò)接ロ単元36與客戶端設(shè)備3網(wǎng)絡(luò)連接,并提供文件分享服務(wù),例如執(zhí)行文件傳輸協(xié)議從而作為文件傳輸協(xié)議服務(wù)器端,以協(xié)助修復(fù)客戶端設(shè)備3的固件。另外請(qǐng)參照?qǐng)D4,圖4顯示了本發(fā)明提供的客戶端設(shè)備實(shí)施例的功能結(jié)構(gòu)圖。在圖4中,客戶端設(shè)備3包括有第一固件306的映像文件,而第一固件306的內(nèi)容包括有操作系統(tǒng)、驗(yàn)證碼、固件版本號(hào)及驗(yàn)證值等數(shù)據(jù)。第二固件308的內(nèi)容除了包括操作系統(tǒng)之外,還包括有地址配置程序3080、遠(yuǎn)程控制程序3082、文件傳輸程序3084及修復(fù)程序3086的映像文件。而開機(jī)引導(dǎo)程序310包括有用于檢測(cè)第一固件306完整性的檢測(cè)程序3100,以及用于切換到第二固件308的切換程序3102。上述各項(xiàng)程序可存儲(chǔ)于圖3所示的存儲(chǔ)單元30,并且分別在適當(dāng)?shù)臈l件下被加載并解壓縮到如圖3所示的記憶單元32,并可由圖3所示的處理單元34執(zhí)行被加載的程序,以達(dá)成如圖I及2所示的修復(fù)方法。在本實(shí)施例中,第一固件306可被設(shè)置為預(yù)設(shè)或主要的固件,因此,當(dāng)客戶端設(shè)備3啟動(dòng)后,處理單元304首先開始執(zhí)行開機(jī)引導(dǎo)程序310時(shí),可根據(jù)開機(jī)引導(dǎo)程序310的指令先前往第一固件306的起始地址或是根據(jù)第一固件306的名稱準(zhǔn)備讀取第一固件306,接著并執(zhí)行檢測(cè)程序3100以檢測(cè)第一固件306是否損壞。當(dāng)檢測(cè)程序3100根據(jù)檢測(cè)結(jié)果判斷出第一固件306損壞時(shí),可指示出所述第一固件306處于損壞的狀態(tài),例如在記憶單元32的特定地址設(shè)置(assert) —個(gè)切換旗標(biāo)。接著,切換程序3102可在所述的特定地址讀取被設(shè)置的切換旗標(biāo),并根據(jù)切換旗標(biāo)的設(shè)置而將要被加載至記憶單元32的固件切換為第二固件308。具體來說,在本實(shí)施例中切換程序3102切換到第二固件308的手段,可采用在切換程序3102讀取到切換旗標(biāo)時(shí),先將第一固件306的名稱變更為其它名稱,再將第二固件308的名稱變更為第一固件306原本的名稱的方式,以便切換程序3102可直接讀取與原第一固件306名稱相同的第二固件308,并于第二固件308的起始地址開始讀取第二固件308的映像文件,取代已損壞的第一固件306被加載并執(zhí)行。特別說明的是,設(shè)置切換旗標(biāo)以指示出第一固件306損壞的手段僅為一具體例示,實(shí)作上并不限于所述方式。在其它的實(shí)施方式中,也可通過如檢測(cè)程序3100比對(duì)的比對(duì)值與驗(yàn)證值而產(chǎn)生真、偽值(true/false),而由切換程序3102直接根據(jù)真、偽值決定是否切換到第二固件308等手段。此外,切換固件的方式,也不限于變更第二固件308的名稱再根據(jù)名稱來讀取固件的作法。在其它實(shí)施例中,也可采用預(yù)先記錄第二固件308的起始地址,并前往所述地址讀取第二固件308的映像文件的方式或其它類似手段達(dá)成。再參照?qǐng)D4,當(dāng)?shù)诙碳?08被解壓縮并加載執(zhí)行時(shí),地址配置程序3080、遠(yuǎn)程控制程序3082、文件傳輸程序3084及修復(fù)程序3086等映像文件也同時(shí)被解壓縮為可供執(zhí)行的程序代碼,并用于進(jìn)行第一固件302的修復(fù)作業(yè)。 以下說明中,同時(shí)出現(xiàn)有“客戶端設(shè)備(customer) ”及“客戶端(client) ”的用詞時(shí)。其中,“客戶端設(shè)備”在本實(shí)施例中指相對(duì)于網(wǎng)絡(luò)或電信服務(wù)提供者而言,設(shè)置在訂購(gòu)所述網(wǎng)絡(luò)或電信服務(wù)的使用者處(subscriber’ s premises)的終端裝置(terminal)。而本實(shí)施例所述的“客戶端”則是代表計(jì)算機(jī)架構(gòu)的“客戶服務(wù)器模型(client server model)”中,用以向服務(wù)器請(qǐng)求資源或服務(wù)的請(qǐng)求端(requestor)。請(qǐng)繼續(xù)參照?qǐng)D4,地址配置程序3080可為動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)器端程序,處理單元34執(zhí)行所述模塊的程序代碼,可使客戶端設(shè)備3根據(jù)動(dòng)態(tài)主機(jī)組態(tài)協(xié)議作為動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)器,并具有自動(dòng)為同網(wǎng)段內(nèi)的客戶端裝置(client device)配置網(wǎng)絡(luò)地址的能力。也就是說,處理單元34可執(zhí)行地址配置程序3080,從而指派一個(gè)網(wǎng)絡(luò)地址給通過網(wǎng)絡(luò)接口單元36及網(wǎng)絡(luò)纜線而與客戶端設(shè)備3連接的外部裝置2 (如圖3所示)。遠(yuǎn)程控制程序3082可為遠(yuǎn)程登錄服務(wù)協(xié)議服務(wù)器端(Telnet server)程序,并用于使客戶端設(shè)備3成為可供外部裝置2通過網(wǎng)絡(luò)登錄的遠(yuǎn)程服務(wù)器,而讓外部裝置2從外部控制客戶端設(shè)備3執(zhí)行特定操作。文件傳輸程序3084則可為文件傳輸協(xié)議客戶端(FTP client)程序,處理單元34同樣可執(zhí)行所述程序代碼而連接到外部裝置2,以存取外部裝置2所存儲(chǔ)的數(shù)據(jù)。值得注意的是,外部裝置2可包括對(duì)應(yīng)于文件傳輸程序3084的文件傳輸協(xié)議服務(wù)器端(FTP server)程序。外部裝置2可執(zhí)行所述的文件傳輸協(xié)議服務(wù)器端程序代碼,以供外部裝置2作為文件傳輸協(xié)議服務(wù)器。所以,客戶端設(shè)備3的處理單元34可執(zhí)行文件傳輸模塊3084,使得客戶端設(shè)備3依照地址配置模塊3080配置給外部裝置2的網(wǎng)絡(luò)地址,登錄到文件傳輸協(xié)議服務(wù)器(即外部裝置2),并從外部裝置2取回所需的文件。修復(fù)程序3086可為用于修復(fù)第一固件306的指令腳本(script),用于讓客戶端設(shè)備3可根據(jù)上述各程序被執(zhí)行后所提供的網(wǎng)絡(luò)服務(wù)以及指令腳本的指令,循序連接及存取外部裝置2所存儲(chǔ)的數(shù)據(jù),以修復(fù)損壞的第一固件306。請(qǐng)?jiān)俅螀⒄請(qǐng)D3及圖4,當(dāng)名稱變更后的第二固件308被加載至記憶單元32并執(zhí)行后,通過網(wǎng)絡(luò)接口單元36與客戶端設(shè)備3實(shí)體連接的外部裝置2可先搜索動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)器,并因此找到客戶端設(shè)備3。作為動(dòng)態(tài)主機(jī)組態(tài)協(xié)議服務(wù)器的客戶端設(shè)備3可指派網(wǎng)絡(luò)地址給外部裝置2。所以,外部裝置2與客戶端設(shè)備3的網(wǎng)絡(luò)連接操作完成,外部裝置2可進(jìn)ー步執(zhí)行遠(yuǎn)程登錄的程序,以根據(jù)遠(yuǎn)程登錄服務(wù)協(xié)議登錄并控制客戶端設(shè)備3執(zhí)行修復(fù)第一固件306的修復(fù)程序3086。例如由客戶端的外部裝置2根據(jù)客戶端設(shè)備3的網(wǎng)絡(luò)地址登錄到遠(yuǎn)程登錄服務(wù)協(xié)議服務(wù)器。接著再由客戶端的外部裝置2發(fā)出修復(fù)指令,控制服務(wù)器端的客戶端設(shè)備3執(zhí)行ー個(gè)已編輯好并存儲(chǔ)在第二固件308中的指令腳本(,script) ο所述的指令腳本中可包括驅(qū)動(dòng)客戶端設(shè)備3執(zhí)行文件傳輸協(xié)議客戶端程序,登錄到文件傳輸協(xié)議服務(wù)器(即外部裝置2),以及下載存儲(chǔ)在文件傳輸協(xié)議服務(wù)器中的更新固件,所述的更新固件可為ー個(gè)適用于客戶端設(shè)備3且完整而無損壞的固件映像文件。其中,下載更新固件時(shí),除了復(fù)制所述的更新固件到客戶端設(shè)備3之外,并可將所復(fù)制的更新固件的名稱變更為第一固件306的原有名稱,再將變更為與第一固件306原有名稱相同的更新固件存儲(chǔ)在存儲(chǔ)單元30的第一區(qū)段300,以便由完整未損壞的更新固件取代第一區(qū)段 300中損壞的固件,成為新的第一固件306。腳本中可更進(jìn)一歩包括在存儲(chǔ)更新固件到第一區(qū)段300之后,將切換旗標(biāo)取消設(shè)置(de-assert)而完成修復(fù)程序的指令。所以,當(dāng)客戶端設(shè)備3重新啟動(dòng)后,處理單元34可根據(jù)開機(jī)引導(dǎo)程序310的引導(dǎo),在第一區(qū)段300讀取到新的第一固件306,并且由檢測(cè)程序3100比對(duì)新的第一固件306的驗(yàn)證值與比對(duì)值,判斷出兩者相符后,直接加載正??捎玫牡谝还碳?06到記憶單元32執(zhí)行,進(jìn)而使得客戶端設(shè)備3可順利完成啟動(dòng)程序,進(jìn)入操作系統(tǒng)運(yùn)行?!矊?shí)施例的功效〕根據(jù)本發(fā)明實(shí)施例,上述的客戶端設(shè)備及其修復(fù)固件的方法,可自動(dòng)檢測(cè)客戶端設(shè)備的主要固件(如實(shí)施例所述的第一固件)的完整性,并在主要固件損壞吋,自動(dòng)切換至備用的固件(如實(shí)施例所述的第二固件)執(zhí)行開機(jī)程序,以進(jìn)行固件修復(fù)的作業(yè)。此外,本案各實(shí)施例讓客戶端設(shè)備與外部裝置通過網(wǎng)絡(luò)連接的手段溝通,使得客戶端設(shè)備不受限于實(shí)體線路的距離而影響數(shù)據(jù)和指令的傳遞。對(duì)于經(jīng)常設(shè)置在戶外高處的戶外型客戶端設(shè)備而言,可以提高接取到客戶端設(shè)備的便利性。況且,多數(shù)的客戶端設(shè)備都與網(wǎng)絡(luò)服務(wù)相關(guān),因而客戶端設(shè)備本身原本就可能設(shè)置網(wǎng)絡(luò)接ロ単元用以連接網(wǎng)絡(luò)線。所以,采用本發(fā)明各實(shí)施例所述手段來修復(fù)固件的客戶端設(shè)備,不需額外再設(shè)置新的連接接ロ而仍可達(dá)到與外部裝置溝通及獲取數(shù)據(jù)的效果。更進(jìn)ー步的說,通過網(wǎng)絡(luò)連接的手段,加上客戶端設(shè)備提供的地址配置服務(wù),當(dāng)外部裝置連接到客戶端設(shè)備后,不需要手動(dòng)設(shè)定聯(lián)機(jī)參數(shù)或選項(xiàng),就可使外部裝置自動(dòng)取得與客戶端設(shè)備聯(lián)機(jī)所需的網(wǎng)絡(luò)地址,減少修復(fù)程序的復(fù)雜度。雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說明,本發(fā)明的保護(hù)范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實(shí)質(zhì)的前提下,可以對(duì)這些實(shí)施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種客戶端設(shè)備的固件修復(fù)方法,所述的客戶端設(shè)備包括存儲(chǔ)單元、處理單元及網(wǎng)絡(luò)接ロ単元,其特征在于,該方法包括 讀取并檢測(cè)存儲(chǔ)在該存儲(chǔ)單元的第一固件是否損壞; 當(dāng)檢測(cè)結(jié)果判斷該第一固件損壞吋,讀取存儲(chǔ)在該存儲(chǔ)單元的第二固件,并將該第二固件加載至記憶單元以執(zhí)行該第二固件; 根據(jù)該第二固件的指令啟用網(wǎng)絡(luò)服務(wù),以及控制該客戶端設(shè)備與外部裝置通過網(wǎng)絡(luò)傳輸數(shù)據(jù)與指令; 接受該外部裝置的控制而執(zhí)行修復(fù)程序;以及 根據(jù)該修復(fù)程序接收該外部裝置所存儲(chǔ)的更新固件以取代損壞的該第一固件成為新的第一固件。
2.如權(quán)利要求I所述的固件修復(fù)方法,其特征在干,檢測(cè)該第一固件是否損壞的步驟中包括 讀取該第一固件預(yù)存的驗(yàn)證值;以及 計(jì)算該第一固件的數(shù)據(jù)的比對(duì)值并與該驗(yàn)證值進(jìn)行比對(duì),當(dāng)該比對(duì)值與該驗(yàn)證值不符時(shí),判斷該第一固件損壞。
3.如權(quán)利要求I所述的固件修復(fù)方法,其特征在于,加載該第二固件到該記憶単元的步驟之前還包括 設(shè)置切換旗標(biāo)以指示該第一固件的損壞。
4.如權(quán)利要求3所述的固件修復(fù)方法,其特征在于,讀取及加載該第二固件到該記憶単元的步驟中包括 根據(jù)該切換旗標(biāo)的設(shè)置而讀取該第二固件; 變更該第二固件的名稱為該第一固件的名稱;以及 加載名稱變更后的該第二固件到該記憶單元以供執(zhí)行該第二固件的指令。
5.如權(quán)利要求I所述的固件修復(fù)方法,其特征在于,根據(jù)該第二固件的指令而與該外部裝置連接的步驟中包括 接受該外部裝置與該客戶端設(shè)備的網(wǎng)絡(luò)連接請(qǐng)求;以及 根據(jù)該網(wǎng)絡(luò)連接請(qǐng)求配置網(wǎng)絡(luò)地址給該外部裝置,以供該外部裝置依據(jù)該網(wǎng)絡(luò)地址與該客戶端設(shè)備進(jìn)行網(wǎng)絡(luò)連接。
6.如權(quán)利要求5所述的固件修復(fù)方法,其特征在于,接受該外部裝置的控制而執(zhí)行該修復(fù)程序的步驟中包括 接受該外部裝置經(jīng)由網(wǎng)絡(luò)登錄到該客戶端設(shè)備;以及 接受該外部裝置發(fā)出的修復(fù)指令而啟動(dòng)該修復(fù)程序。
7.如權(quán)利要求6所述的固件修復(fù)方法,其特征在于,根據(jù)該修復(fù)程序接收該更新固件的步驟中包括 接取該外部裝置的該更新固件; 復(fù)制該更新固件并變更該更新固件的名稱為該第一固件的名稱; 存儲(chǔ)所復(fù)制且更名的該更新固件到該存儲(chǔ)単元;以及 重新啟動(dòng)該客戶端設(shè)備。
8.如權(quán)利要求I所述的固件修復(fù)方法,其特征在于,根據(jù)該第二固件的指令啟用網(wǎng)絡(luò)服務(wù)的步驟中包括 執(zhí)行地址配置程序以啟用網(wǎng)絡(luò)地址的配置服務(wù); 執(zhí)行遠(yuǎn)程控制程序以啟用遠(yuǎn)程登錄服務(wù);以及 執(zhí)行文件傳輸程序以啟用文件傳輸服務(wù)。
9.如權(quán)利要求8所述的固件修復(fù)方法,其特征在干,該地址配置程序是動(dòng)態(tài)主機(jī)組態(tài)協(xié)議程序,該遠(yuǎn)程控制程序是遠(yuǎn)程登錄服務(wù)協(xié)議程序,該文件傳輸程序是文件傳輸協(xié)議程序。
10.一種可修復(fù)固件的客戶端設(shè)備,其特征在于包括 存儲(chǔ)單元,存儲(chǔ)第一固件以及第ニ固件; 網(wǎng)絡(luò)接ロ単元,用于連接外部裝置; 處理單元,用于在該客戶端設(shè)備啟動(dòng)時(shí),執(zhí)行如權(quán)利要求I所述的固件修復(fù)方法。
全文摘要
本發(fā)明公開了一種可修復(fù)固件的客戶端設(shè)備及其固件修復(fù)方法,所述方法包括讀取并檢測(cè)存儲(chǔ)在存儲(chǔ)單元的第一固件是否損壞,當(dāng)檢測(cè)結(jié)果判斷第一固件損壞時(shí),讀取存儲(chǔ)在存儲(chǔ)單元的第二固件,并將第二固件加載至記憶單元并執(zhí)行,根據(jù)第二固件的指令啟用網(wǎng)絡(luò)服務(wù),并控制客戶端設(shè)備與外部裝置通過網(wǎng)絡(luò)傳輸數(shù)據(jù)與指令??蛻舳搜b置還接受外部裝置的控制而執(zhí)行修復(fù)程序,并且根據(jù)修復(fù)程序接收外部裝置所存儲(chǔ)的更新固件以取代損壞的第一固件為新的第一固件。本發(fā)明可自動(dòng)檢測(cè)第一固件是否正?;蛞呀?jīng)損壞,并在第一固件損壞時(shí),自動(dòng)切換到第二固件,并在執(zhí)行第二固件的程序中完成對(duì)第一固件的修復(fù)作業(yè),使得客戶端設(shè)備可再度正常開機(jī)運(yùn)作。
文檔編號(hào)H04L12/24GK102857358SQ20111018068
公開日2013年1月2日 申請(qǐng)日期2011年6月29日 優(yōu)先權(quán)日2011年6月29日
發(fā)明者賴彥呈, 羅一鈞 申請(qǐng)人:環(huán)旭電子股份有限公司, 環(huán)鴻科技股份有限公司