TWI743395B - 透過遠端工具程式更新靭體的方法、電腦系統以及非暫態電腦可讀取媒體 - Google Patents
透過遠端工具程式更新靭體的方法、電腦系統以及非暫態電腦可讀取媒體 Download PDFInfo
- Publication number
- TWI743395B TWI743395B TW107133549A TW107133549A TWI743395B TW I743395 B TWI743395 B TW I743395B TW 107133549 A TW107133549 A TW 107133549A TW 107133549 A TW107133549 A TW 107133549A TW I743395 B TWI743395 B TW I743395B
- Authority
- TW
- Taiwan
- Prior art keywords
- image file
- firmware
- existing
- storage device
- computing device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/442—Shutdown
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一種系統及方法用於更新在一計算裝置中的一韌體儲存裝置之韌體,且不會失去在該儲存裝置中的現有資料。一個示例性的方法包含一本地工具程式從在該計算裝置中的一管理裝置擷取韌體的現有映像檔。該韌體可位於該計算裝置中的一韌體儲存裝置。然後,該方法可擷取已更新韌體之一新映像檔。該方法可以分析該現有映像檔及該新映像檔。根據該現有映像檔及該新映像檔的分析,該方法可以從該現有映像檔及該新映像檔產生一已處理映像檔。然後,該方法可以提供寫入該已處理映像檔至該計算裝置的該韌體儲存裝置。
Description
本發明是有關於一種計算裝置的韌體更新,特別是有關於使用遠端工具程式更新韌體的系統及方法。
韌體是一種可提供低階控制給計算裝置之硬體的軟體。韌體可被永久安裝於韌體儲存裝置中的計算裝置。例如計算裝置中的非揮發性記憶體元件。當計算裝置啟動時,計算裝置的中央處理單元可執行韌體。計算裝置可擁有儲存在其記憶體中的操作系統,且該操作系統可以擷取韌體。
偶爾,計算裝置上的韌體可能需要被更新。然而,更新韌體是一個有挑戰性的過程,因為需要在更新韌體期間和之後保留計算裝置的操作功能。因此,韌體廠商經常嘗試避免更新韌體,因為在更新其間和之後維持計算裝置的操作是有困難的。儘管如此,在一些情況下,更新韌體給計算裝置的需要是無法避免的。舉例說明,在計算裝置被運送之後,可能需要更新韌體以修正被偵測到的功能問題。韌體更新可能需要啟用一些功能,這些功能已經被編程到計算裝置中,但還沒被已經在計算裝置上運行的軟體所擷取。韌體更新可能需要升級計算裝置可以擷取的檔案格式之類型,或更新電池管理功能給計算裝置。
一種目前更新韌體的方法是根據啟動(boot)進入已經在計算裝置上的操作環境。透過該操作環境,可以執行將韌體更新實施到韌體儲存裝置中的處理。然而,此過程不能恢復操作環境失敗的計算裝置。舉例說明,當韌體毀損或計算裝置上的操作環境無法操作時,不能透過此過程更新韌體。
其他目前更新韌體的方法是根據與韌體儲存裝置連接的外部管理裝置之使用。該外部管理裝置可以允許韌體儲存裝置被啟動,即使發生在計算裝置上的操作環境不能操作的情況下。然而,這種外部管理裝置不能執行更複雜的功能,像是選擇性讀取、編輯、及寫入資料至韌體儲存裝置。因此,使用這種外部管理裝置導致必須對整個韌體重寫或重製映像檔(Reimage)。所以,當韌體被重寫時,任何在韌體儲存裝置上之前的現有資料可能會遺失。這些資料的遺失可能無法被計算裝置的擁有者或操作者所接受。
因此,需要一種用於更新韌體的系統和方法,此系統和方法不需要對儲存在韌體儲存裝置上的整個韌體重製映像檔。即使在計算裝置上的操作環境難以進入的情況下,這種系統和方法也應該能夠提供更新的功能。此系統或方法應該具有複雜計算的功能,及執行韌體儲存裝置上的客製化更新流程。最後,此系統和方法應該能夠主導各種計算裝置中的各種韌體儲存裝置的更新,以便於操作。
本揭示文件的各種實施例針對在計算裝置上更新韌體的電腦實施方法。一種示例性的方法,根據本揭示文件的一種實施例,首先擷取韌體的現有映像檔。該韌體可位於計算裝置中的韌體儲存裝置。然後,該方法可擷取已更新之韌體的新映像檔。此方法能夠分析現有映像檔及新映像檔。根據現有映像檔及新映像檔的分析,此方法可以從現有映像檔及新映像檔產生已處理的映像檔。然後,此方法能夠提供將已處理映像檔寫入計算裝置的韌體儲存裝置。
在一些示例中,此方法提供執行計算裝置斷電的全部步驟。
在一些示例中,分析現有映像檔能夠更包含將新映像檔中的複數個更新與現有映像檔中的現有資料進行比較。這樣的比較可以識別現有資料沒有與新映像檔衝突。
在其他示例中,產生已處理映像檔更包含結合新映像檔與沒有衝突的現有資料以形成已處理映像檔。
在其他示例中,此方法能夠更包含重新啟動韌體儲存裝置及執行在韌體儲存裝置上的已處理映像檔。
本揭示文件的其他示例性實施例提供一種電腦系統,此電腦系統被設置用於更新在計算裝置上的現有映像檔。電腦系統能夠包含記憶體及處理單元。處理單元可與記憶體進行通訊。處理單元能夠儲存指令,當指令被執行時,使得電腦系統執行一系列操作。首先,電腦系統能夠擷取韌體的現有映像檔。韌體位於計算裝置中的韌體儲存裝置上。然後,指令能夠提供現有映像檔及新映像檔的分析。根據現有映像檔及新映像檔的分析,指令可以從現有映像檔及新映像檔產生已處理映像檔。指令能夠完成將已處理映像檔寫入計算裝置的韌體儲存裝置。
在一些示例中,計算裝置能夠被斷電。
在其他示例中,分析現有映像檔能夠更包含將更新過程中的複數個更新與現有映像檔中的現有資料進行比較。這樣的比較允許識別現有資料沒有與新映像檔衝突。
在其他示例中,產生已處理映像檔能夠更包含結合新映像檔與沒有衝突的現有資料以形成已處理映像檔。
在其他示例中,指令能夠更包含重新啟動韌體儲存裝置及執行在韌體儲存裝置上的已處理映像檔。
在第三實施例中,本揭示文件提供一種用於儲存指令的非暫態電腦可讀取媒體。當指令被電腦系統執行時,使得電腦系統執行一系列的操作。此一系列操作從擷取韌體的現有映像檔開始。韌體能夠位於計算裝置中的韌體儲存裝置上。然後,指令能夠提供現有映像檔及新映像檔的分析。根據現有映像檔及新映像檔的分析,指令可以從現有映像檔及新映像檔產生已處理映像檔。最後,指令能夠提供將已處理映像檔寫入計算裝置的韌體儲存裝置。
在其他示例中,計算裝置能夠被斷電。
在其他示例中,分析現有映像檔能夠更包含將更新過程中的複數個更新與現有映像檔中的現有資料進行比較。這樣的比較允許識別現有資料沒有與新映像檔衝突。
在其他示例中,產生已處理映像檔能夠更包含結合新映像檔與沒有衝突的現有資料以形成該已處理映像檔。
在其他示例中,這些指令能夠更包含重新啟動韌體儲存裝置及執行在韌體儲存裝置上的已處理映像檔。
參考附圖來描述本發明,其中在所有附圖中使用相同的附圖標記來表示相似或等效的元件。附圖不是按比例繪製的,而是僅用於說明本發明。本發明的幾個形態如下描述,並參考示例應用作為說明。應該理解的是,闡述了許多具體細節,關係和方法以提供對本發明的全面了解。然而,相關領域的普通技術人員將容易認識到,本發明可以被實行即便在沒有一個或多個具體細節的情況下或沒有利用其他方法來實施本發明。在其他情況下,未詳細示出習知的結構或操作以避免模糊本發明。本發明不受所示的行為或事件的順序所限制,因為一些行為可能以不同的順序發生和/或與其他行為或事件同時發生。此外,並非所有說明的行為或事件都需要根據本發明的方法來實施。
由於現有系統的限制,本揭露針對一種方法,此方法可以更新計算裝置上的韌體,並且不用從儲存韌體的韌體儲存裝置中移除所有現有資料。一種示例性方法可包含首先斷電計算裝置,然後啟動用於從遠端工具程式更新韌體的更新流程。遠端工具程式可以檢索韌體的現有映像檔。遠端工具程式還能夠檢索已更新韌體的新映像檔。遠端工具程式可以分析現有映像檔和新映像檔。根據對現有映像檔和新映像檔的分析,遠端工具程式可以從現有映像檔和新影映像檔產生已處理的映像檔。然後,遠端工具程式可以提供將已處理的映像檔寫入計算裝置的韌體儲存裝置之功能。
因此,根據本揭示文件的一實施例的示例性方法,可以透過使用遠端工具程式向韌體儲存裝置提供更新。根據本揭示文件的實施例的一示例性方法,不需要計算裝置的操作環境在可操作之情況,或者操作環境可以獲取韌體之情況。舉例說明,該方法可以在計算裝置被斷電時執行所有步驟。
不同於習知的系統,本程序另外使用遠端工具程式來更新韌體。遠端工具程式因為可以執行複雜的操作程序所以具有優勢。例如,遠端工具程式可以分析來自韌體儲存裝置的映像檔以識別哪些資料可以與新映像檔被保留,以及哪些資料需要被替換。遠端工具程式可以複製應該保存的舊韌體資料;並將舊韌體資料與韌體更新相關聯的新韌體資料合併;並產生一個包含兩者的已處理映像檔。然後,遠端工具程式可以指示管理裝置將已處理映像檔寫入至韌體儲存裝置。因此,已更新的韌體儲存裝置可以在更新過程之前保留從裝置來的資料。
第1A圖為根據習知方法所繪示的系統100。系統100可以更新依據執行在計算裝置上的操作系統的韌體儲存裝置。系統100是使用者110可取得的計算裝置。系統100包含本地工具程式120和韌體儲存裝置130。韌體儲存裝置130是需要韌體更新的系統100之一部分。使用者110是能夠啟動韌體儲存裝置130的更新流程之個體。本地工具程式120可以是一種在系統100上執行的操作環境。本地工具程式120可以在韌體儲存裝置130上執行複雜任務。然而,系統100必須被開啟並導入到本地工具程式120中以提供使用者110取得本地工具程式120和韌體儲存裝置130。另外,如果本地工具程式120出於任何原因不能存取韌體儲存裝置130,那麼使用者110不能更新在系統100中的韌體儲存裝置130。
第1B圖為繪示更新韌體儲存裝置的現有方法200之流程圖,並且描繪依據韌體儲存裝置的操作系統及第1A圖的系統100之間的操作。現在請參照第1B圖,方法200開始於對系統100和韌體儲存裝置130進行通電。值得注意的是,方法200需要韌體儲存裝置130和系統100兩者通電,以便於方法200繼續更新韌體儲存裝置130。
在步驟220中,方法200將系統100啟動(boot)到用於更新韌體儲存裝置130上的韌體之操作環境。操作環境可以是有關於第1A圖所討論的本地工具程式120。值得注意的是,如果方法200不能成功地啟動系統100進入操作環境,則該方法200不能繼續更新韌體儲存裝置130。在很多情況下,計算裝置,如系統100,不能導入到操作環境中。舉例說明,韌體儲存裝置130可能具有損壞的軟體,損壞的軟體阻止系統100加載到本地工具程式120或適當地操作。
在步驟230中,方法200可以與系統100的操作環境執行更新程序以更新韌體儲存裝置130上的韌體。如果方法200已經成功地對系統100通電並成功啟動進入用於更新韌體儲存裝置130上的韌體之操作環境,在方法200完成更新過程時,步驟230促使方法200能夠保留在韌體儲存裝置130上的現有資料。
在步驟240中,方法200已經完成更新程序並且在此刻重新啟動系統100。重新啟動系統100允許由方法200所提供、並且儲存在韌體儲存裝置130中的新更新以用於啟動系統。
然而,如前面所述,方法200具有嚴重的限制,並影響根據方法200的更新程序的彈性。最重要的是,如果使用者110不能同時執行:(1)打開系統100;和(2)啟動進入本地工具程式120,則方法200不能進行。這些需求分別在方法200的步驟210和220中可被獲取。
第2A圖繪示一種系統300,系統300依據管理裝置的使用來更新韌體儲存裝置。系統300可讓使用者310取得且系統300包含管理裝置340和韌體儲存裝置330。管理裝置340可以被設計在系統300的主機板上並且位於系統300的內部。即使系統被斷電,管理裝置340仍然可以工作,因為管理裝置340具有可操作於待機模式的微處理器。韌體儲存裝置330是需要更新程序的裝置。使用者310是能夠啟動更新程序給韌體儲存裝置330之個體。管理裝置340可以在韌體儲存裝置330的外部。管理裝置340可以根據來自使用者310的指令完成基本任務。舉例說明,管理裝置340可以讀取從韌體儲存裝置330來的全部資料;刪除在韌體儲存裝置330中的全部資料;和/或將資料寫入至韌體儲存裝置330。將資料寫入至韌體儲存裝置330使得韌體儲存裝置330上的現有資料無法被讀取,因為計算裝置將僅讀取新寫入的資料。當系統300不行通電時,管理裝置340可以用於完成韌體儲存裝置330的更新程序。因此,管理裝置340可以提供可用於更新韌體儲存裝置330的操作環境。
第2B圖繪示一種依據管理裝置的使用及第2A圖的系統300中的操作去更新韌體之現有方法的流程圖。此時,請參考第2B圖,方法400開始於在步驟410中的計算裝置被斷電。計算裝置被斷電時,可防止計算裝置在管理裝置讀取韌體儲存裝置的同時讀取韌體儲存裝置。如果計算裝置和管理裝置同時讀取韌體儲存裝置,則這些指令可能發生衝突並妨礙完成更新步驟。
在步驟420中,使用者310可以透過管理裝置340開始更新程序。使用者310可以將已更新的韌體映像檔上傳到管理裝置340。已更新韌體映像檔提供韌體的更新版本給韌體儲存裝置330。
在步驟430中,管理裝置340重製儲存於韌體儲存裝置330中的韌體之映像檔。也就是說,管理裝置340首先刪除韌體儲存裝置330上的現有映像檔,然後將已更新韌體映像檔寫入到韌體儲存裝置330。或者,管理裝置340可以僅僅地將已更新的韌體映像檔覆寫至韌體儲存裝置330上。在此階段,因為計算裝置只讀取新寫入的資料,所以在韌體儲存裝置330上的任何現有資料會遺失。
在步驟440中,針對韌體儲存裝置330的映像檔更新已經完成。因此,步驟440讓系統300重新啟動。重新啟動系統300允許系統300使用由方法400所提供新的已更新韌體來啟動。
方法400具有嚴重限制,因為更新程序將韌體儲存裝置330中的韌體完全重製映像檔。因此,方法400不允許韌體的任何選擇性編輯。方法400不允許保留先前應用於韌體儲存裝置330中的韌體的修改或設定。根據方法400的更新程序,使用者310必須依據系統300的偏好(Preference),執行重新設定儲存在韌體儲存裝置330中的韌體之冗餘任務。
有鑑於方法200和400的限制,本揭露提供一種新方法,可以不需要刪除計算裝置或系統的韌體儲存裝置中的現有資料。此外,該方法可以使用於當計算裝置或系統被斷電時。因此,本揭露提供了一種具有彈性的更新方法,此方法也提供了對現有技術的改進。
第3A圖繪示一種系統500,其可透過使用遠端工具程式520及管理裝置540來更新韌體儲存裝置。系統500可讓使用者510所讀取,且包含計算裝置505和遠端工具程式520。計算裝置505包含管理裝置540和韌體儲存裝置530。韌體儲存裝置530是需要更新的裝置。使用者510是可以啟動更新程序給韌體儲存裝置530的個體。
如本揭露所提供,管理裝置540可以位於計算裝置505的內部。管理裝置540可以根據使用者510的指令來完成基本任務。舉例說明,管理裝置540可以讀取從韌體儲存裝置530來的所有資料;刪除從韌體儲存裝置530來的所有資料;或將資料寫入至韌體儲存裝置530。將資料寫入至韌體儲存裝置530可以使得韌體儲存裝置530上的現有數據不行被讀取,因為計算裝置將僅讀取新寫入的資料。當計算裝置505不能通電時,管理裝置540可以用於完成給韌體儲存裝置530的更新程序。管理裝置540可以操作如同用於更新韌體儲存裝置530上的韌體之操作環境。管理裝置可以被設置有其自己的微處理器和記憶體,可以與被計算裝置運行的主操作系統分開執行。即使當計算裝置被斷電或無法啟動時,管理裝置也可以透過操作於待機模式來讀取和/或寫入韌體儲存裝置。
遠端工具程式520是獨立於計算裝置505的電腦系統。遠端工具程式520可以通信地耦接計算裝置505。此外,遠端工具程式可以被設置用於與韌體和計算裝置505一起完成複雜任務,例如韌體映像檔的驗證、檢索和保存儲存於韌體儲存裝置530中的韌體設定、和/或分析從韌體儲存裝置530讀取的舊映像檔。舉例說明,遠端工具程式520可以是智慧型手機、桌上型電腦、筆記型電腦、平板電腦或是其他電腦系統,讓使用者510可以與之交互執行軟體編輯和分析功能。
第3B圖繪示根據本揭露的實施例的一種用於更新韌體儲存裝置的示例性方法之流程圖。該方法可以操作於第3A圖的系統500上。回頭參考第3B圖,該方法可以開始於在步驟610中的計算裝置505被斷電。計算裝置505被斷電能夠防止計算裝置505與管理裝置540同時讀取韌體儲存裝置530。如果計算裝置505與管理裝置540同時讀取韌體儲存裝置530,將導致指令發生衝突且更新處理無法完成。
在步驟620中,使用者510透過遠端工具程式520開始更新程序用以更新儲存在韌體儲存裝置530上的韌體。特別地,首先,使用者510可以將已更新的韌體映像檔上傳到遠端工具程式520。使用遠端工具程式520而非僅使用管理裝置540,允許比如果僅使用管理裝置540的方法更進一步的更新客製化。管理裝置540的功能由管理裝置的設計者決定,該設計者沒有足夠的知識了解要被更新的韌體之細節。相反地,韌體儲存裝置530的設計者可以設計遠端工具程式520,該設計者熟悉韌體的細節。因此,使用遠端工具程式520讓更新處理更容易的被實施和維護。
在步驟630中,遠端工具程式520從管理裝置540接收韌體儲存裝置530中的韌體之現有映像檔。該步驟涉及管理裝置540讀取當前存在於韌體儲存裝置530上的所有資料。管理裝置540可以提供該資料作為遠端工具程式520的現有映像檔。
在步驟640中,遠端工具程式520能夠分析現有映像檔。該分析涉及遠端工具程式520將新韌體與現有映像檔進行比較。遠端工具程式520可以識別現有資料中哪些部分的資料不會與新韌體中的更新發生衝突。遠端工具程式520可以產生已處理的映像檔,該已處理的映像檔保留由更新程序提供的所有更新,並保留從韌體儲存裝置530來的所有沒有衝突的現有資料。
舉例說明,遠端工具程式520可以透過執行韌體映像檔的安全檢查及保持儲存在現有映像檔中的原始韌體設定來分析現有映像檔。首先,遠端工具程式520可以從現有映像檔擷取公開金鑰(Public Key)。然後,遠端工具程式520可以使用公開金鑰來確認由使用者上傳的新韌體映像檔被正確的私密金鑰(Private Key)正確地簽名,如果遠端工具程式520不能驗證正確的簽名,則遠端工具程式520可以拒絕更新請求。如果遠端工具程式520可以驗證正確的簽名,則遠端工具程式520可以檢索儲存在現有映像檔中的原始韌體設定。然後,遠端工具程式520可以結合該設定與新韌體映像檔以產生已處理映像檔。
在其他實施例中,遠端工具程式520的設計者可以加入其他複雜分析,複雜分析對管理裝置540是困難執行的,但對遠端工具程式520是簡單執行的。
在步驟650中,遠端工具程式520可以命令管理裝置540用韌體儲存裝置530中的已處理映像檔覆寫現有映像檔。舉例說明,管理裝置540可以從韌體儲存裝置530清除現有映像檔。現有映像檔的清除可能是需要的,因為一些韌體儲存裝置使用SPI快閃記憶體。當寫入SPI快閃記憶體時,清除命令可以確保在新資料被寫入韌體儲存裝置之前,所有位元都被正確回復。
在步驟660中,針對韌體儲存裝置530的韌體更新處理已經完成。因此,步驟660提供系統500的重新啟動。重新啟動系統500允許韌體儲存裝置530使用由方法600提供的新更新來啟動。
因此,方法600提供一種技術,可以在不失去韌體儲存裝置530上的所有現有資料的情況下去更新韌體儲存裝置530。通過方法600,韌體儲存裝置530上的任何沒有衝突的現有資料可以在更新程序中被保留。不管韌體儲存裝置530是否為通電或斷電,這些更新都可以被完成。另外,不管用於更新韌體儲存裝置530的操作環境是否可用,這些更新都可以被完成。
第4圖繪示計算系統700的一實施例,其中計算系統的組件透過匯流排(Bus)702彼此電性通訊。系統700包含處理單元(CPU或處理器)730,以及系統匯流排;其中該系統匯流排耦接各種系統組件至處理器730,前述系統組件包含系統記憶體704(如唯讀記憶體[ROM] 706和隨機存取記憶體[RAM] 708)。系統700可以包含高速記憶體(High-speed Memory)的快取(Cache),可以緊密接近地直接連接至處理器730、或被整合成為處理器730的一部分。系統700可將從記憶體704和/或儲存裝置712來的資料複製到快取728以供處理器730快速讀取。以這樣的方式,快取可以在等待資料時,執行啟動處理器730。這些和其他模組可以控制或被設置去控制處理器730執行各種動作。其他系統記憶體704可能也被使用。記憶體704可以包含具有不同性能特徵的多種不同類型的記憶體。處理器730可以包含嵌入在儲存裝置712中的任何一般用途的處理器和硬體模組或軟體模組,例如模組1 714、模組2 716和模組3 718。硬體模組或軟體模組被設置去控制處理器730以及將軟體指令納入實際處理器設計的特殊用途處理器。處理器730可以是完全獨立的計算系統(Self-contained Computing System),並且包含多核心或處理器、匯流排、記憶體控制器、快取等。多核心處理器可以是對稱的或不對稱的。
為了讓使用者能夠與計算裝置700進行互動,輸入裝置720被提供作為輸入機制(Input Mechanism)。輸入裝置720可包含用於語音的麥克風,用於手勢或圖形輸入的觸敏螢幕(Touch-sensitive Screen)、鍵盤、滑鼠、運動輸入等等。在一些實施例中,多模式系統(Multimodal System)可以讓使用者提供多種輸入的類型以與系統700進行通信。在該實施例中,還提供了輸出裝置722。通信介面724可以支配和管理使用者輸入和系統的輸出。
儲存裝置712可以是用於儲存資料的非揮發性記憶體(Non-volatile Memory),且儲存於非揮發性記憶體的資料可被電腦讀取。儲存裝置712可以是磁帶盒(Magnetic Cassettes)、快閃記憶體卡(Flash Memory)、固態記憶體裝置(Solid State Memory Device)、數位通用磁碟(Digital Versatile Disks)、盒式磁帶(Cartridges)、隨機存取記憶體(Random Access memories, RAM)708、唯讀記憶體(Read-only Memory, ROM)706、以及它們的組合。
控制器710可以是系統700上的專用微控制器或處理器,例如基板管理控制器(Baseboard Management Controller, BMC)。在一些情況下,控制器710可以是智慧平台管理介面(IPMI)的一部分。此外,在一些情況下,控制器710可以被嵌入在系統700的主機板或主電路板上。控制器710可以管理系統管理軟體和平台硬體之間的介面。控制器710還可以與各種系統裝置和組件(內部和/或外部)進行通信,例如控制器或周邊組件,如以下進一步的描述。
控制器710可以產生對通知、警報和/或事件的特定響應,並與遙控裝置或組件(如電子郵件信息,網路信息等)進行通信以產生用於自動硬體恢復程序等的指令或命令。管理員還可以與控制器710進行遠端通信以啟動或執行特定的硬體恢復程序或操作,如以下進一步的描述。
控制器710亦可包含用於管理和維護由控制器710接收的事件、警報和通知的系統事件日誌控制器(system event log controller)和/或儲存裝置。舉例說明,控制器710或系統事件日誌控制器可以接收警報或來自一個或多個裝置和組件的通知,並將警報或通知維護在系統事件日誌儲存組件中。
快閃記憶體732可以是由系統700用於儲存和/或資料傳輸的電子非揮發性電腦存儲媒體或晶片。快閃記憶體732可以被電子清除和/或重新編程。例如:快閃記憶體732可以包含可抹除可程式化唯讀記憶體(EPROM)、電子抹除式可複寫唯讀記憶體(EEPROM)、ROM、NVRAM或互補式金氧半場效電晶體(CMOS)。快閃記憶體732可以儲存當系統700首次通電時被系統700所執行的韌體734,以及為了韌體734所指定的一組配置。快閃記憶體732還可儲存被韌體734所使用的配置。
韌體734可以包含基本輸入/輸出系統或等同物,例如可延伸韌體介面(Extensible Firmware Interface, EFI)或統一可延伸韌體介面(United Extensible Firmware Interface, UEFI)。每次系統700啟動時,韌體734可被加載和執行如同順序程式。韌體734可以根據該組設置來識別、初始化、及測試存在系統700中的硬體。韌體734可以在系統700上執行自我測試,例如自我加電測試(Power-on-Self-Test, POST)。該自我測試可以測試各種硬體組件的功能,例如硬碟驅動器、光學讀取裝置、冷卻裝置、記憶體模組、擴充卡等。韌體734可以處理和分配記憶體704、ROM 706,RAM 708和/或儲存裝置712中的區域,以儲存操作系統(Operating System, OS)。韌體734可以加載啟動加載器(Boost Loader)和/或操作系統,並且將系統700的控制給予操作系統。
系統700的韌體734可以包含韌體設置,韌體設置定義韌體734如何控制系統700中的各種硬體組件。韌體設置可以決定系統700中的各種硬體組件被啟動的順序。韌體734可以提供一種介面,例如UEFI,其允許設置各種不同的參數,且與韌體默認設置中的參數有所不同。舉例說明,使用者(如管理員)可以使用韌體734來指定計時器和匯流排速度;定義連接到系統700的周邊設備;設置健康監測(例如風扇速度和CPU溫度限制);和/或提供影響系統700的整體性能和使用功率的各種其他參數。雖然韌體734被說明為儲存在快閃記憶體732中,但本領域的普通技術人員將容易認識到韌體734可以被儲存於其他記憶體組件中,例如記憶體704或唯讀記憶體706。
系統700可以包含一個或多個感測器726。一個或多個感測器726可以包含,舉例說明,一個或多個溫度感測器(Temperature Sensors)、溫度傳感器(Thermal Sensors)、氧氣感測器(Oxygen Sensors)、化學感測器(Chemical Sensors)、噪音感測器(Noise Sensors)、熱傳感器(Heat Sensors)、電流感測器(Current Sensors)、電壓偵測器(Voltage Detector)、氣流感測器(Air Flow Sensors)、流量感測器(Flow Sensors)、紅外線溫度計(Infrared Thermometers)、熱通量感測器(Heat Flux Sensors)、溫度計(Thermometers)、高溫計(Pyrometer)等。一個或多個感測器726可以透過匯流排702與系統中的組件進行通信,例如,處理器、快取728、快閃記憶體732、通信介面724、記憶體704、唯讀記憶體706、隨機存取記憶體708、控制器710和儲存裝置712。一個或多個感測器726還可以經由一個或多個不同工具與系統中的其他組件進行通信,例如:內部積體電路(Inter-integrated Circuit, I2C),通用型輸出(General Purpose Output, GPO)等。系統700上的不同類型的感測器(如感測器726)還可以向控制器710報告參數,例如:散熱風扇速度、功率狀態、操作系統(OS)狀態、硬體狀態等的參數。
第5圖說明一種具有晶片組(Chipset)架構的電腦系統800的一實施例。其中,晶片組可用於執行或操作已描述的方法,及產生或顯示於圖形使用者介面(Graphical User Interface, GUI)。電腦系統800可包含用於實施已揭露的技術之電腦硬體、軟體及韌體。系統800可包含一處理器810,處理器810能夠執行被配置執行識別運算的軟體、韌體、以及硬體,處理器810亦代表各種物理和/或邏輯上的不同資源之變化。處理器810可以與晶片組進行通訊,使得晶片組可以控制處理器810的輸入和從處理器810的輸出。在此實施例中,晶片組802將信息輸出到如顯示器736(第4圖)的輸出裝置814,並且可以讀取及寫入信息到儲存裝置816,儲存裝置816可以包含如磁性媒體和固態媒體。晶片組802也可以從RAM818讀取及寫入資料。用於與各種使用者介面組件806連接的橋接器804,可用於與晶片組802連接。這種使用者介面組件806可以包括鍵盤,麥克風,觸摸檢測和處理電路,以及諸如鼠標的定點等。在一般情況下,系統800的輸入可以來自機器生成和/或人工生成的各種來源中的任何一個。
晶片組802還可以與具有不同物理介面的一個或多個通信介面808連接。這種通信介面可以包含用於有線和無線區域網路、寬帶無線網路和個人區域網路的介面。此外,機器可以經由使用者介面組件806接收來自使用者的輸入並執行合適的功能,例如通過使用處理器810解譯這些輸入的瀏覽功能。
此外,晶片組802還可以與韌體812進行通訊,韌體812可以在通電時由電腦系統800所執行。韌體812可以基於一組韌體配置來識別、初始化以及測試存在於電腦系統800中的硬體。韌體812可以在系統800上執行開機自我測試(例如POST)。開機自我測試可以測試各種硬體組件802-818的功能。韌體812可以處理和分配記憶體818中的區域以儲存OS(作業系統)。韌體812可以加載一個啟動加載器(Boost Loader)和/或OS,並將系統800的控制權交給OS。在一些情況下,韌體812可以與硬體組件802-810和814-818進行通訊。在此,透過晶片組802、和/或一個或多個其他組件,韌體812可以與硬體組件802-810和814-818進行通訊。在一些情況下,韌體812可以直接與硬體組件802-810和814-818進行通信。
可以理解的是,以系統700和800作為示例,系統700和800可以具有多於一個處理器(例如處理器730,處理器810),或者可以是群組或一叢集的計算裝置的一部分聯網在一起,以提供更好的處理能力。
為了清楚地解釋,在一些實施例中,本揭露可被呈現為包括包含複數功能塊的複數單個功能塊,例如如裝置、裝置組件、步驟或實施於軟體的方法中的程序、或硬體和軟體的組合。
在一些實施例中,電腦可讀取儲存裝置,媒體和記憶體可以包含具有位元流等的有線或無線信號。然而,當提及時,非暫態電腦可讀取儲存媒體本身明確排除諸如能量、載波信號、電磁波和信號之類的媒體。
根據上述示例的方法之實施,可以使用儲存的電腦可執行指令、或是從電腦可讀取媒體可獲得的電腦可執行指令。這樣的指令可以包括,例如影響或其他配置讓通用電腦、專用電腦或專用處理裝置執行某一功能或一組功能的指令和資料。可以透過網路讀取部分已使用的電腦資源。電腦的可執行指令可以是如二進制和中間格式的指令,例如組合語言、韌體或原始碼(Source Code)。
根據這些揭示的裝置實施方法可以包含硬體,韌體和/或軟體,並且可以採取各種形式因素中的任何一種。這種形式因素的典型示例包含筆記型電腦、智慧型手機、小型個人電腦、個人數位助理、機架式裝置、獨立裝置等等。此處描述的功能還可以體現在周邊裝置或外接卡中。在其他實施例中,這樣的功能還可以在不同晶片中的電路板上實施,或者在單一的裝置中所執行的不同處理中實施。
可以在廣泛地各種的操作環境中進一步實施各種實施例,這些實施例在一些情況下可以包括一個或多個伺服器電腦、使用者電腦或計算裝置,可用於操作任何多種應用裝置。使用者或客戶端裝置可以包含任何數量的通用個人電腦,例如運行標準操作系統的桌上型電腦或筆記型電腦,以及執行移動軟體的格狀系統(Cellular)、無線和手持裝置,並且能夠支持多種網路和信息的通訊協定。這樣的系統還可以包括一些可運行各種商用操作系統的工作站,以及用於例如開發和資料庫管理之類的其他已知應用。這些裝置還可以包括其他電子裝置,例如虛擬終端(Dummy Terminal)、精簡型終端機(Thin-client) 、遊戲系統(Gaming System)以及其他能夠透過網路進行通信的裝置。
就實施例的延伸或實施例的部分而言,其以硬體來實施,本揭露可利用以下技術中的任一者或其組合來實施:具有邏輯閘之離散邏輯電路可用於實施邏輯功能在資料信號上;具有適當的組合之邏輯閘的特殊應用積體電路(Application Specific Integrated Circuit, ASIC);可程式硬體,例如可程式閘陣列(PGA);和/或現場可程式閘陣列(FPGA)等。
大部分實施例利用本領域技術人員熟悉的至少一個網路來支持使用各種可商業用的通訊協定,例如TCP / IP、OSI、FTP、UPnP、NFS、CIFS及AppleTalk等。網路可以是,例如局部區域網路、廣域網路、虛擬私人網路、網際網路、企業內部網路(intranet)、商際網路(extranet )、公用交換電話網路、紅外線網路、無線網路及其任何組合。
根據這些技術,裝置實施方法可以包含硬體、韌體和/或軟體,並且可以採用各種形式因素中的任何一種。這種形式因素的典型例子包含伺服器電腦、筆記型電腦、智慧型電話、小型個人電腦、個人數位助理等等。此處描述的功能還可以體現在周邊裝置或外接卡中。作為其他實施例,這樣的功能還可以在不同晶片中的電路板上實施,或者在單一裝置中執行的不同程序中實施。
在使用網站伺服器(Web Server)的實施例中,網站伺服器可以運行任何種類的伺服器或中間層應用程式,包括HTTP伺服器、FTP伺服器、CGI伺服器、資料伺服器、Java伺服器和商業應用伺服器。回應使用者裝置的請求,網站伺服器也可以執行程式或指令碼(scripts)。例如,網站伺服器可以執行一個或多個網站應用程式,這些網站應用程式可以作為一個或多個任何程式語言(如Java®、C、C#或C ++)或任何指令碼語言(如Perl、Python或TCL,以及它們的組合)。網站伺服器還可以包含資料庫伺服器,包括在公開市場上可商業使用的那些資料庫伺服器。
如上所述,伺服器系統可以包括各種儲存資料和其他記憶體和儲存媒體。這些可以存在於在各種位置,例如在一個或多個區域電腦(和/或存在於)的儲存媒體上;或透過網路遙控任何或全部電腦。在特定一組示例中,信息可以儲存於本領域技術人員熟悉的儲存區域網路(Storage-area Network, SAN)中。類似地,用於執行電腦、伺服器或其他網路裝置的功能所需要的任何必要檔案,可以根據需要區域儲存和/或遠端儲存。在系統包含電腦化裝置的情況下,每個這樣的裝置可以包含可以經由匯流排電性耦合的硬體元件。例如,所述元件包括至少一個中央處理單元(CPU),至少一個輸入裝置(例如滑鼠、鍵盤、控制器、觸控顯示器元件或小鍵盤)以及至少一個輸出裝置(例如顯示裝置、印表機或擴音器)。這樣的系統也可以包含一個或多個儲存裝置,例如磁碟驅動器、光儲存元件以及固態儲存裝置如隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可拆卸媒體裝置、記憶卡以及快閃記憶卡等。
具有程式碼或部分程式碼的儲存媒體和電腦可讀取媒體可以包括本領域中已知或使用過的任何適當的媒體,包括但不限於用於儲存和/或傳輸資料或訊息的可拆卸及不可拆卸媒體。可拆卸和不可拆卸媒體包含RAM、ROM、EPROM、EEPROM、快閃記憶體或其他儲存技術、CD-ROM、數位多功能碟片(DVD)或其他光學儲存、磁帶盒、磁碟、磁碟儲存器或其他磁性儲存裝置,可以用來儲存所需的資訊並且可以被系統裝置讀取。資料或資訊可以包含電腦可讀取指令、資料結構、程式模組或其他資料。基於本文所提供的技術和教示,本領域的普通技術人員將理解以其他方式和/或方法來實施本揭露文件的各個方面。
雖然本揭示文件的各種實施例已在前文描述,但應該理解的是,它們僅以示例性作用所呈現,但本揭露並不限於此。在不脫離本揭示文件的精神或範圍的情況下,可以根據本文的公開的實施例進行各種改變。因此,本揭示文件的廣度和範圍不應該受到上述任何實施例而限制。相反地,本揭示文件的範圍應根據以下請求項及其等同物來限定。
雖然有關於一個或多個實施方式已經說明和描述了本揭示文件,但是在閱讀和理解本說明書和附圖後,本領域的普通技術人員將會想到等同的改變和修改。另外,雖然本揭示文件的特定技術特徵可能已經被若干實施中之一公開,但是這樣的技術特徵可以與其他實施例的一個或多個其他技術特徵組合,對於任何給定的或特定的應用。
本文使用的術語僅用於描述特定實施例,而不旨在限制本發明。如本文所使用的,除非上下文另外明確指出,否則單數形式「一」、「一個」和「該」也包含複數形式。此外,就術語「包括」 、「包含」 、「具有」或其他變化用法被用於詳細描述和/或請求項,這些術語旨在以類似於術語「包含」的方式具有相同意思。
除非有其他定義,否則這裡使用的所有術語(包括技術和科學術語)可被具有本領域的通常知識者所理解的相同的含義。此外,諸如通用字典中定義的術語應該被解釋為具有與其在相關領域的上下文中的含義相一致的意思,並且不會被理解為理想化或過度正式的意義,除非在此明確地如此定義。
100‧‧‧系統708‧‧‧隨機存取記憶體110‧‧‧使用者710‧‧‧控制器120‧‧‧本地工具程式712‧‧‧儲存裝置130‧‧‧韌體儲存裝置714~718‧‧‧模組200‧‧‧方法720‧‧‧輸入裝置210~240‧‧‧步驟722‧‧‧輸出裝置300‧‧‧系統724‧‧‧通信介面310‧‧‧使用者726‧‧‧感測器330‧‧‧韌體儲存裝置728‧‧‧快取340‧‧‧管理裝置730‧‧‧處理器400‧‧‧方法732‧‧‧快閃記憶體410~440‧‧‧步驟734‧‧‧韌體500‧‧‧系統736‧‧‧顯示器505‧‧‧計算裝置800‧‧‧電腦系統510‧‧‧使用者802‧‧‧晶片組520‧‧‧遠端工具程式804‧‧‧橋接器530‧‧‧管理裝置806‧‧‧使用者介面組件540‧‧‧韌體儲存裝置808‧‧‧通訊介面600‧‧‧方法810‧‧‧處理器610~660‧‧‧步驟812‧‧‧韌體700‧‧‧計算系統814‧‧‧輸出裝置702‧‧‧匯流排816‧‧‧儲存裝置704‧‧‧記憶體818‧‧‧隨機存取記憶體706‧‧‧唯讀記憶體
一同參閱附圖及示例性實施例的描述,將更易於了解本揭示文件的內容及其優點和圖示。這些附圖僅描繪了示例性實施例,並且因此不被認為限制各種實施例或請求項的範圍。
第1A圖是依據韌體儲存裝置的操作環境的習知方法所繪示的使用者更新韌體儲存裝置之示意圖。
第1B圖是依據韌體儲存裝置的操作環境所繪示的更新韌體方法之流程圖。
第2A圖是根據依據外部管理裝置的習知方法所繪示的使用者更新韌體儲存裝置之示意圖。
第2B圖是依據外部管理裝置的更新韌體方法之流程圖。
第3A圖是根據本揭示文件的一示例性實施例所繪示的使用者更新韌體儲存裝置之示意圖。
第3B圖是根據本揭示文件的一實施例所繪示的韌體更新的方法之流程圖。
第4圖及第5圖提供可以被用於執行本揭露的各種形態的電腦系統之示意圖。
有關於本揭示文件中的術語『計算裝置』,可以指具有硬體和軟體的組件之任何電子供電或電池供電的設備,其中軟體組件可以被配置用於裝置上的操作特徵。
有關於本揭示文件中的術語『操作環境』,可以指具有允許軟體去執行計算裝置的功能之任何操作系統或環境。
600‧‧‧方法
610~660‧‧‧步驟
Claims (6)
- 一種電腦實施方法,該電腦實施方法被一遠端工具程式所執行用以更新一計算裝置上的一韌體,該計算裝置通訊地耦接該遠端工具程式,其中該遠端工具程式可以完成一更新程序,包含:擷取該韌體的一現有映像檔,其中該韌體位於該計算裝置中的一韌體儲存裝置上;擷取已更新韌體的一新映像檔;分析該現有映像檔及該新映像檔;根據該現有映像檔及該新映像檔的分析,從該現有映像檔及該新映像檔產生一已處理映像檔;以及將該已處理映像檔寫入該計算裝置的該韌體儲存裝置;其中分析該現有映像檔更包含將該新映像檔中的複數個更新與該現有映像檔中的現有資料進行比較,以識別該現有資料沒有與該新映像檔衝突;其中產生該已處理映像檔更包含結合該新映像檔與沒有衝突的現有資料以形成該已處理映像檔;其中擷取該韌體的該現有映像檔更包含從該計算裝置上的一管理裝置接收該現有映像檔;其中將該已處理映像檔寫入該韌體儲存裝置更包含透過該管理裝置以該已處理映像檔覆寫該現有映像檔。
- 如申請專利範圍第1項所述之電腦實施方法,更包含重新啟動該計算裝置使得該已處理映像檔在該韌體儲存裝置執行。
- 一種電腦系統,被設置透過一遠端工具程式以更 新在一計算裝置上的一韌體,其中該遠端工具程式通訊地耦接該計算裝置,包含:一記憶體;以及一處理單元,與該記憶體通訊且儲存指令,當該指令被執行時,使得該遠端工具程式執行操作,包含:擷取該韌體的一現有映像檔,其中該韌體位於該計算裝置中的一韌體儲存裝置;分析該現有映像檔及該新映像檔;根據該現有映像檔及該新映像檔的分析,從該現有映像檔及該新映像檔產生一已處理映像檔;以及將該已處理映像檔寫入該計算裝置的該韌體儲存裝置;其中分析該現有映像檔更包含該將新映像檔中的複數個更新與該現有映像檔中的現有資料進行比較,以識別該現有資料沒有與該新映像檔衝突;其中產生該已處理映像檔更包含結合該新映像檔與沒有衝突的現有資料,並形成該已處理映像檔;其中擷取該韌體的該現有映像檔更包含從計算裝置上的一管理裝置接收該現有映像檔;其中將該已處理映像檔寫入該韌體儲存裝置更包含透過該管理裝置以該已處理映像檔覆寫該現有映像檔。
- 如申請專利範圍第3項所述之電腦系統,其中該指令更包含:寫入該已處理映像檔之後,重新啟動該計算裝置;以及在該韌體儲存裝置的一操作環境下,執行該已處理映像檔。
- 一種非暫態電腦可讀取媒體,用以儲存指令,當該指令被一遠端工具程式執行時,使得一電腦系統更新一計算裝置上的一韌體,該計算裝置通訊地耦接該遠端工具程式,其中更新該韌體包含:擷取該韌體的一現有映像檔,其中該韌體位於該計算裝置中的一韌體儲存裝置;分析該現有映像檔及該新映像檔;根據該現有映像檔及該新映像檔的分析,從該現有映像檔及該新映像檔產生一已處理映像檔;以及將該已處理映像檔寫入該計算裝置的該韌體儲存裝置;其中分析該現有映像檔的該步驟更包含將該新映像檔中的複數個更新與該現有映像檔中的現有資料進行比較,以識別該現有資料沒有與該新映像檔衝突;其中產生該已處理映像檔的該步驟更包含結合該新映像檔與沒有衝突的該現有資料,並形成該已處理映像檔;其中擷取該韌體的該現有映像檔更包含從計算裝置上的一管理裝置接收該現有映像檔,及其中將該已處理映像檔寫入該韌體儲存裝置更包含透過該管理裝置以該已處理映像檔覆寫該現有映像檔。
- 如申請專利範圍第5項所述之非暫態電腦可讀取媒體,其中當該指令被執行時,更使得該電腦系統執行操作包含:寫入該已處理映像檔之後,重新啟動該計算裝置;以及在該韌體儲存裝置的一操作環境下,執行該已處理映像檔。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/986,234 | 2018-05-22 | ||
| US15/986,234 US10503489B1 (en) | 2018-05-22 | 2018-05-22 | Updating firmware via a remote utility |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202004496A TW202004496A (zh) | 2020-01-16 |
| TWI743395B true TWI743395B (zh) | 2021-10-21 |
Family
ID=64100576
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107133549A TWI743395B (zh) | 2018-05-22 | 2018-09-25 | 透過遠端工具程式更新靭體的方法、電腦系統以及非暫態電腦可讀取媒體 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US10503489B1 (zh) |
| EP (1) | EP3572933B1 (zh) |
| JP (1) | JP6701398B2 (zh) |
| CN (1) | CN110515634B (zh) |
| TW (1) | TWI743395B (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12099612B2 (en) | 2020-01-27 | 2024-09-24 | Hewlett-Packard Development Company, L.P. | Firmware corruption recovery |
| EP4104385A4 (en) * | 2020-02-14 | 2023-11-01 | ARRIS Enterprises LLC | SYSTEMS AND METHODS FOR MODEM CONFIGURATION AND RESTORATION |
| CN113641230B (zh) * | 2020-04-27 | 2024-06-25 | 捷普科技(上海)有限公司 | 电脑系统 |
| US11354259B1 (en) * | 2020-12-08 | 2022-06-07 | Hewlett Packard Enterprise Development Lp | Computer system configurations based on accessing data elements presented by baseboard management controllers |
| US11989551B2 (en) * | 2021-03-18 | 2024-05-21 | Quanta Computer Inc. | Modular firmware composition |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140317611A1 (en) * | 2013-04-18 | 2014-10-23 | Oak Technologies, Llc | Peripheral device and method for updating firmware thereof |
| TW201535261A (zh) * | 2014-03-05 | 2015-09-16 | Wistron Neweb Corp | 電子裝置及其韌體更新方法 |
| CN105183515A (zh) * | 2015-09-02 | 2015-12-23 | 深圳一电科技有限公司 | 云台固件升级的方法及装置 |
| US20160179500A1 (en) * | 2014-12-17 | 2016-06-23 | Wistron Corporation | Firmware variable update method |
| TW201702929A (zh) * | 2015-07-01 | 2017-01-16 | 廣達電腦股份有限公司 | 更新電腦韌體的系統、方法與電腦可讀取儲存媒體 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7210010B2 (en) | 2002-09-30 | 2007-04-24 | Insignia Solutions Plc | Efficient system and method for updating a memory device |
| JP5057519B2 (ja) * | 2004-06-01 | 2012-10-24 | レッド・ベンド・リミテツド | 記憶装置に記憶されたコンテンツをインプレース更新するための方法およびシステム |
| US7661102B2 (en) * | 2004-08-20 | 2010-02-09 | Smith Micro Software, Inc. | Method for reducing binary image update package sizes |
| US20070043833A1 (en) | 2005-08-22 | 2007-02-22 | Inventec Corporation | Computer platform system program remote upgrading control method and system |
| JP5113699B2 (ja) | 2008-09-24 | 2013-01-09 | 株式会社日立ソリューションズ | ファームウェア更新システム、及び更新イメージ生成・配布サーバ装置 |
| JP2010086370A (ja) * | 2008-10-01 | 2010-04-15 | Canon Inc | 画像形成装置、配信サーバーおよびファームウェアアップデート方法 |
| US20100228960A1 (en) | 2009-03-06 | 2010-09-09 | Shih-Yuan Huang | Virtual memory over baseboard management controller |
| JP5342302B2 (ja) * | 2009-03-30 | 2013-11-13 | 株式会社日立ソリューションズ | ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム |
| JP5478986B2 (ja) * | 2009-08-21 | 2014-04-23 | 株式会社日立ソリューションズ | 情報機器及びプログラム |
| US9122558B2 (en) * | 2009-11-09 | 2015-09-01 | Bank Of America Corporation | Software updates using delta patching |
| KR20110104383A (ko) * | 2010-03-16 | 2011-09-22 | 삼성전자주식회사 | 펌웨어 업데이트 서비스 장치 및 방법 |
| US20120144380A1 (en) * | 2010-12-07 | 2012-06-07 | Samsung Electronics Co. Ltd. | Method for generating delta file using basic blocks |
| US20170046152A1 (en) * | 2015-08-12 | 2017-02-16 | Quanta Computer Inc. | Firmware update |
| CN106484442B (zh) * | 2015-08-25 | 2020-07-21 | 佛山市顺德区顺达电脑厂有限公司 | 服务器系统及更新开机映像档的方法 |
| JP6600240B2 (ja) * | 2015-12-08 | 2019-10-30 | キヤノン株式会社 | 情報処理装置、ファームウェア更新方法、およびプログラム |
| KR20180131840A (ko) * | 2017-06-01 | 2018-12-11 | 한국전자통신연구원 | 펌웨어 업데이트 지원 장치 및 그 방법 |
| US11416236B2 (en) * | 2017-07-07 | 2022-08-16 | Qualcomm Incorporated | Over-the-air (OTA) updating of partially compressed firmware |
-
2018
- 2018-05-22 US US15/986,234 patent/US10503489B1/en active Active
- 2018-09-25 TW TW107133549A patent/TWI743395B/zh active
- 2018-10-10 CN CN201811176777.8A patent/CN110515634B/zh active Active
- 2018-10-26 EP EP18202987.6A patent/EP3572933B1/en active Active
-
2019
- 2019-02-12 JP JP2019022680A patent/JP6701398B2/ja active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140317611A1 (en) * | 2013-04-18 | 2014-10-23 | Oak Technologies, Llc | Peripheral device and method for updating firmware thereof |
| TW201535261A (zh) * | 2014-03-05 | 2015-09-16 | Wistron Neweb Corp | 電子裝置及其韌體更新方法 |
| US20160179500A1 (en) * | 2014-12-17 | 2016-06-23 | Wistron Corporation | Firmware variable update method |
| TW201702929A (zh) * | 2015-07-01 | 2017-01-16 | 廣達電腦股份有限公司 | 更新電腦韌體的系統、方法與電腦可讀取儲存媒體 |
| CN105183515A (zh) * | 2015-09-02 | 2015-12-23 | 深圳一电科技有限公司 | 云台固件升级的方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US10503489B1 (en) | 2019-12-10 |
| EP3572933A1 (en) | 2019-11-27 |
| EP3572933B1 (en) | 2023-08-02 |
| JP2019204488A (ja) | 2019-11-28 |
| US20190361692A1 (en) | 2019-11-28 |
| TW202004496A (zh) | 2020-01-16 |
| JP6701398B2 (ja) | 2020-05-27 |
| CN110515634B (zh) | 2023-07-21 |
| CN110515634A (zh) | 2019-11-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI743395B (zh) | 透過遠端工具程式更新靭體的方法、電腦系統以及非暫態電腦可讀取媒體 | |
| TWI684859B (zh) | 遠端系統復原之方法 | |
| CN109558157B (zh) | 用以保存固件设置的计算机实施方法及系统 | |
| TWI610238B (zh) | 快速電腦啟動 | |
| US7421573B2 (en) | Apparatus and method for updating firmware | |
| US8578144B2 (en) | Partial hibernation restore for boot time reduction | |
| CN102446111B (zh) | 快速计算机启动 | |
| CN112181499A (zh) | 用于计算机装置的可靠启动系统 | |
| CN102567047B (zh) | 快速计算机启动 | |
| US10533563B2 (en) | Management of multiple fan modules | |
| CN110134379B (zh) | 计算机系统、编程方法及非暂态计算机可读介质 | |
| US9983791B2 (en) | System management controller and method of configuration file backup and recovery | |
| CN115951949B (zh) | 一种bios的配置参数的恢复方法、装置及计算设备 | |
| TWI704448B (zh) | 控制電源供應單元的方法 | |
| CN111510627B (zh) | 相机的启动方法和装置、终端和可读存储介质 | |
| US8949588B1 (en) | Mobile telephone as bootstrap device | |
| CN120066598B (zh) | 操作系统启动项的分类方法、计算机程序产品和服务器 | |
| CN118897689A (zh) | 一种固件升级方法、装置、设备及存储介质 | |
| TWI310157B (en) | Method for changing booting source of a computer system and related backuping/restoring method thereof | |
| CN116301571A (zh) | 用于fpga芯片的固件管理装置、方法、fpga加速卡及电子设备 | |
| CN106681857A (zh) | 产品资料备份/还原方法 | |
| CN102063311A (zh) | 电子设备及其开机方法 | |
| CN100472441C (zh) | 计算机改变开机来源的方法及应用此方法的数据备份还原 |