一種計(jì)算機(jī)啟動(dòng)方法及計(jì)算的制造方法
【專利摘要】本發(fā)明實(shí)施例涉及通信【技術(shù)領(lǐng)域】,公開了一種計(jì)算機(jī)啟動(dòng)方法及計(jì)算機(jī)。其中,計(jì)算機(jī)有CPU、BIOS芯片以及基板管理控制器BMC,CPU分別與BMC以及BIOS芯片連接,其中,BIOS芯片中存儲(chǔ)有基本輸入輸出系統(tǒng)BIOS文件,BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件,該方法包括:計(jì)算機(jī)上電后,CPU檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配;若不匹配,則CPU從BMC中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的BIOS文件進(jìn)行更新;CPU以更新后的BIOS文件啟動(dòng)計(jì)算機(jī)。通過本發(fā)明實(shí)施例,可增強(qiáng)計(jì)算機(jī)啟動(dòng)的可靠性。
【專利說明】一種計(jì)算機(jī)啟動(dòng)方法及計(jì)算機(jī)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,具體涉及一種計(jì)算機(jī)啟動(dòng)方法及計(jì)算機(jī)。
【背景技術(shù)】
[0002]基板管理控制器(BaseboardManagement Controller, BMC)支持行業(yè)標(biāo)準(zhǔn)的 IPM智能平臺(tái)管理接口(Intelligent Platform Management Interface, IPMI)規(guī)范。該規(guī)范描述了已經(jīng)內(nèi)置到主板上的管理功能,這些功能包括:本地和遠(yuǎn)程診斷、控制臺(tái)支持、配置管理、硬件管理和故障排除等。BMC系統(tǒng)提供了包括BIOS在內(nèi)的多個(gè)組件的升級(jí)、更新功能。BIOS作為基本輸入輸出系統(tǒng),固化保存在專用的FLASH上,用于保存BIOS的FLASH —旦出現(xiàn)故障,則通常情況下,系統(tǒng)便不能正常工作,為避免此類情況的出現(xiàn),業(yè)界采用多種方法來(lái)解決此類情況。如雙BIOS備份、雙鏡像等方法。
[0003]當(dāng)前較為廣泛的一個(gè)方法是采用雙BIOS備份的形式,即采用兩塊FLASH分別保存主、備兩份B10S,然而雙BIOS備份的方式雖然在一定概率上解決了 BIOS故障導(dǎo)致的不能啟動(dòng)的風(fēng)險(xiǎn),但是會(huì)導(dǎo)致硬件成本增加,而且雙BIOS鏡像均是直接保存在FLASH中,故兩塊FLASH出現(xiàn)故障的可能性是相等的,該方案并不能真正的解決問題。
[0004]現(xiàn)有技術(shù)二采用的方法是在同一塊FLASH中對(duì)BIOS的關(guān)鍵參數(shù)進(jìn)行雙備份,當(dāng)采用主參數(shù)不能正常啟動(dòng)時(shí),采用備份參數(shù)啟動(dòng),并依據(jù)其來(lái)恢復(fù)主參數(shù)區(qū)的數(shù)據(jù),但是該方案雖然沒有使用額外的硬件電路和FLASH,但是該方案僅僅可以對(duì)參數(shù)區(qū)進(jìn)行恢復(fù)操作,且因?yàn)橹?、備參?shù)均保存在同一 FLASH中,故二者具有同等的損壞概率,再者本方案在BIOS的非參數(shù)區(qū)出現(xiàn)故障時(shí)不能實(shí)現(xiàn)恢復(fù)作用。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例公開了一種計(jì)算機(jī)啟動(dòng)方法及計(jì)算機(jī),能夠增強(qiáng)計(jì)算機(jī)啟動(dòng)的可靠性。
[0006]第一方面,提供一種計(jì)算機(jī)方法,計(jì)算機(jī)有CPU、BIOS芯片以及基板管理控制器BMC,CPU分別與所述BMC以及所述BIOS芯片連接,其中,所述BIOS芯片中存儲(chǔ)有基本輸入輸出系統(tǒng)BIOS文件,其特征在于,所述BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件,所述方法包括:
[0007]計(jì)算機(jī)上電后,CPU檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配;
[0008]若不匹配,則CPU從所述BMC中查找出版本與所述計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的BIOS文件進(jìn)行更新;
[0009]CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。
[0010]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0011]所述BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件,具體為:所述BMC中預(yù)存有至少一個(gè)版本的壓縮后的BIOS鏡像文件;[0012]相應(yīng)的,所述CPU從所述BMC中查找出版本與所述計(jì)算機(jī)硬件匹配的BIOS文件具體包括:CPU發(fā)送查詢請(qǐng)求給所述BMC,BMC解壓BIOS鏡像文件并發(fā)送給所述CPU,CPU查找版本與所述計(jì)算機(jī)硬件匹配的BIOS文件。
[0013]結(jié)合第一方面或第一方面的第一可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0014]BMC查詢網(wǎng)絡(luò)管理服務(wù)器上是否存在新版本的BIOS鏡像文件;
[0015]若存在,則下載所述新版本的BIOS鏡像文件,并將所述新版本的BIOS鏡像文件存儲(chǔ)到所述BMC中。
[0016]結(jié)合第一方面第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,該方法進(jìn)一步包括:
[0017]所述CPU創(chuàng)建線程,在所BMC下電時(shí),將所述新版本的BIOS鏡像文件更新到所述BIOS芯片中。
[0018]結(jié)合第一方面或上述任一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)包括:
[0019]所述CPU檢測(cè)更新后的BIOS文件是否成功運(yùn)行;
[0020]若未成功運(yùn)行,則所述CPU指令所述BMC將所述BMC中的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù);所述CPU以修復(fù)后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。
[0021]結(jié)合第一方面第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述CPU指令所述BMC將所述BMC中的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù)包括:
[0022]所述CPU檢測(cè)所述BMC中的BIOS文件中是否存在與更新后的BIOS文件同版本的
鏡像;
[0023]若存在,則所述CPU指令所述BMC將所述BMC中與更新后的BIOS文件同版本的BIOS文件傳送到所述BIOS芯片中,以保護(hù)現(xiàn)有參數(shù)區(qū)的方式升級(jí)更新后的BIOS文件;
[0024]若不存在,則所述CPU指令所述BMC將所述BMC中與更新后的所述BIOS文件不同版本的BIOS文件傳送到所述BIOS芯片中,以全擦除模式升級(jí)更新后的BIOS文件。
[0025]第二方面,提供一種計(jì)算機(jī),所述計(jì)算機(jī)有CPU、BIOS芯片以及基板管理控制器BMC,CPU分別與所述BMC以及所述BIOS芯片連接,其中,所述BIOS芯片中存儲(chǔ)有基本輸入輸出系統(tǒng)BIOS文件,其特征在于,所述BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件;
[0026]所述CPU用于在所述計(jì)算機(jī)上電后,檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配,若不匹配,則從所述BMC中查找出版本與所述計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的BIOS文件進(jìn)行更新,并以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。
[0027]在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件,具體為:所述BMC中預(yù)存有至少一個(gè)版本的壓縮后的BIOS鏡像文件;
[0028]相應(yīng)的,所述CPU從所述BMC中查找出版本與所述計(jì)算機(jī)硬件匹配的BIOS文件具體包括:CPU發(fā)送查詢請(qǐng)求給所述BMC,BMC解壓BIOS鏡像文件并發(fā)送給所述CPU,CPU查找版本與所述計(jì)算機(jī)硬件匹配的BIOS文件。[0029]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述BMC還用于查詢網(wǎng)絡(luò)管理服務(wù)器上是否存在新版本的BIOS鏡像文件;若存在,則下載所述新版本的BIOS鏡像文件,并將所述新版本的BIOS鏡像文件存儲(chǔ)到所述BMC中。
[0030]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述CPU還用于創(chuàng)建線程,在所述BMC下電時(shí),將所述新版本的BIOS鏡像文件更新到所述BIOS芯片中。
[0031]結(jié)合第二方面或上述第二方面的任一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)包括:
[0032]所述CPU檢測(cè)更新后的BIOS文件是否成功運(yùn)行;
[0033]若未成功運(yùn)行,則所述CPU指令所述BMC將所述BMC中的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù);
[0034]所述CPU以修復(fù)后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。
[0035]結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述CPU指令所述BMC將所述BMC中的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù)包括:
[0036]所述CPU檢測(cè)所述BMC中的BIOS文件中是否存在與更新后的BIOS文件同版本的
鏡像;
[0037]若存在,則所述CPU指令所述BMC將所述BMC中與更新后的BIOS文件同版本的BIOS文件傳送到所述BIOS芯片中,以保護(hù)現(xiàn)有參數(shù)區(qū)的方式升級(jí)更新后的所述BIOS文件;
[0038]若不存在,則所述CPU指令所述BMC將所述BMC中與更新后的BIOS文件不同版本的BIOS文件傳送到所述BIOS芯片中,以全擦除模式升級(jí)更新后的所述BIOS文件。
[0039]本發(fā)明實(shí)施例中,CPU可在計(jì)算機(jī)上電后檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配,若不匹配,則CPU從BMC中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)BIOS芯片中的BIOS文件進(jìn)行更新,然后CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。通過本發(fā)明實(shí)施例,可增強(qiáng)計(jì)算機(jī)啟動(dòng)的可靠性。
【專利附圖】
【附圖說明】
[0040]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0041]圖1是本發(fā)明實(shí)施例提供的一種計(jì)算機(jī)啟動(dòng)方法的流程圖;
[0042]圖2是本發(fā)明實(shí)施例提供的另一種計(jì)算機(jī)啟動(dòng)方法的流程圖;
[0043]圖3是本發(fā)明實(shí)施例提供的計(jì)算機(jī)啟動(dòng)方法中遠(yuǎn)程更新BIOS文件的流程圖;
[0044]圖4是本發(fā)明實(shí)施例提供的一種計(jì)算機(jī)的結(jié)構(gòu)示意圖;
[0045]圖5是本發(fā)明實(shí)施例提供的一種遠(yuǎn)程更新BIOS文件的系統(tǒng)的結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】
[0046]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0047]本發(fā)明實(shí)施例公開了一種計(jì)算機(jī)啟動(dòng)方法及計(jì)算機(jī),能夠增強(qiáng)計(jì)算機(jī)啟動(dòng)的可靠性。以下分別進(jìn)行詳細(xì)說明。
[0048]參見圖1,圖1示出了本發(fā)明實(shí)施例提供的一種計(jì)算機(jī)啟動(dòng)方法的流程圖。如圖1所示,該計(jì)算機(jī)啟動(dòng)方法可以包括以下步驟:
[0049]SlOl:計(jì)算機(jī)上電后,CPU檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配;
[0050]具體地,CPU可在計(jì)算機(jī)上電后對(duì)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配檢測(cè),BIOS文件與計(jì)算機(jī)硬件匹配指的是BIOS文件符合計(jì)算機(jī)硬件的運(yùn)行需要,理論上可在計(jì)算機(jī)硬件上運(yùn)行。
[0051]S102:若不匹配,則CPU從BMC中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的BIOS文件進(jìn)行更新;
[0052]具體地,由于BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件,進(jìn)一步地,BMC中預(yù)存有至少一個(gè)版本的壓縮后的BIOS鏡像文件,若CPU在步驟SlOl中檢測(cè)到存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件不匹配,則CPU從BMC中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的BIOS文件進(jìn)行更新;CPU從BMC中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件的具體方法可以為:CPU發(fā)送查詢請(qǐng)求給BMC,BMC解壓BIOS鏡像文件并發(fā)送給CPU,CPU查找版本與計(jì)算機(jī)硬件匹配的BIOS文件。
[0053]S103 =CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī);
[0054]具體地,在步驟S102中對(duì)BIOS芯片中的BIOS文件進(jìn)行更新后,CPU以BIOS芯片中的更新后的BIOS文件啟動(dòng)計(jì)算機(jī);CPU以更新后的BIOS文件啟動(dòng)計(jì)算機(jī)可以包括:CPU檢測(cè)更新后的BIOS文件是否成功運(yùn)行,若未成功運(yùn)行,則CPU指令BMC將BMC中的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù),然后CPU以修復(fù)后的BIOS文件啟動(dòng)所述計(jì)算機(jī);進(jìn)一步,CPU指令BMC將BMC中的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù)可以包括:CPU檢測(cè)BMC中的BIOS文件中是否存在與更新后的BIOS文件同版本的鏡像,若存在,則CPU指令BMC將BMC中與更新后的BIOS文件同版本的BIOS文件傳送到BIOS芯片中,以保護(hù)現(xiàn)有參數(shù)區(qū)的方式升級(jí)更新后的BIOS文件;若不存在,則CPU指令BMC將BMC中與更新后的BIOS文件不同版本的BIOS文件傳送到BIOS芯片中,以全擦除模式升級(jí)更新后的BIOS文件。
[0055]在圖1提供的計(jì)算機(jī)啟動(dòng)方法中,CPU可在檢測(cè)到存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件未匹配時(shí),從BMC中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的BIOS文件進(jìn)行更新,并以更新后的BIOS文件啟動(dòng)計(jì)算機(jī),從而可增強(qiáng)計(jì)算機(jī)啟動(dòng)的可靠性。
[0056]參見圖2,圖2示出了本發(fā)明實(shí)施例提供的另一種計(jì)算機(jī)啟動(dòng)方法的流程圖。如圖2所示,該計(jì)算機(jī)啟動(dòng)方法可以包括以下步驟:
[0057]S201 =BMC中預(yù)存至少一個(gè)版本的BIOS鏡像文件;
[0058]具體地,BMC中的存儲(chǔ)介質(zhì)可以為閃存(FLASH),BMC的FLASH通過并行總線(LocalBus)直接與BMC的CPU相連,BMC的FLASH中可保存BIOS鏡像文件,BMC在這個(gè)FLASH中構(gòu)建了 JFFS2文件系統(tǒng);BMC的FLASH至少有64MB的空間,由于其通常情況下有32MB的空閑數(shù)據(jù)區(qū)域閑置,又因?yàn)橛蠦MC的文件系統(tǒng)的維護(hù),固件的鏡像可以采用壓縮文件的形式進(jìn)行保存(壓縮比例可以為8:1),從而BMC中可預(yù)存至少一個(gè)版本的壓縮后的BIOS鏡像文件,這種壓縮形式的BIOS鏡像文件所占空間小、安全系數(shù)高,能及時(shí)發(fā)現(xiàn)文件是否被損壞。
[0059]S202 =CPU檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配?
[0060]具體地,在計(jì)算機(jī)上電后,CPU可檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配;如果檢測(cè)到BIOS文件與計(jì)算機(jī)硬件匹配,則本流程轉(zhuǎn)至步驟S205 ;如果檢測(cè)到BIOS文件與計(jì)算機(jī)硬件不匹配,則本流程轉(zhuǎn)至步驟S203。
[0061]S203 =CPU從BMC中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的BIOS文件進(jìn)行更新;
[0062]具體地,CPU從BMC中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件的具體方法可以為:CPU發(fā)送查詢請(qǐng)求給BMC,BMC解壓BIOS鏡像文件并發(fā)送給CPU,CPU查找版本與計(jì)算機(jī)硬件匹配的BIOS文件。
[0063]S204 =CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī);
[0064]具體地,CPU以更新后的BIOS文件啟動(dòng)計(jì)算機(jī)可以包括:CPU檢測(cè)更新后的BIOS文件是否成功運(yùn)行,若未成功運(yùn)行,則CPU指令BMC將BMC中的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù),CPU以修復(fù)后的BIOS文件啟動(dòng)所述計(jì)算機(jī);進(jìn)一步,CPU指令BMC將BMC中的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù)可以包括:CPU檢測(cè)BMC中的BIOS文件中是否存在與更新后的BIOS文件同版本的鏡像,若存在,則CPU指令BMC將BMC中與更新后的BIOS文件同版本的BIOS文件傳送到BIOS芯片中,以保護(hù)現(xiàn)有參數(shù)區(qū)的方式升級(jí)更新后的BIOS文件;若不存在,則CPU指令BMC將BMC中與更新后的BIOS文件不同版本的BIOS文件傳送到BIOS芯片中,以全擦除模式升級(jí)更新后的BIOS文件。
[0065]S205 =CPU以BIOS文件啟動(dòng)計(jì)算機(jī);
[0066]具體地,當(dāng)在步驟S202中檢測(cè)到BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件匹配時(shí),則CPU以BIOS芯片中的BIOS文件啟動(dòng)計(jì)算機(jī),具體方法可以為:CPU檢測(cè)BIOS芯片中的BIOS文件是否成功運(yùn)行,若未成功運(yùn)行,則CPU指令BMC將BMC中的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的BIOS文件進(jìn)行修復(fù),CPU以修復(fù)后的BIOS文件啟動(dòng)所述計(jì)算機(jī);進(jìn)一步,CPU指令BMC將BMC中的BIOS文件發(fā)送到BIOS芯片中,以對(duì)BIOS芯片中的BIOS文件進(jìn)行修復(fù)可以包括:CPU檢測(cè)BMC中的BIOS文件中是否存在與BIOS芯片中的BIOS文件同版本的鏡像,若存在,則CPU指令BMC將BMC中與BIOS芯片中的BIOS文件同版本的BIOS文件傳送到BIOS芯片中,以保護(hù)現(xiàn)有參數(shù)區(qū)的方式升級(jí)BIOS芯片中的BIOS文件;若不存在,則CPU指令BMC將BMC中與BIOS芯片中的BIOS文件不同版本的BIOS文件傳送到BIOS芯片中,以全擦除模式升級(jí)BIOS芯片中的BIOS文件。
[0067]在圖2提供的計(jì)算機(jī)啟動(dòng)方法中,可通過在BMC中預(yù)存至少一個(gè)版本的BIOS鏡像文件,利用BIOS鏡像文件使儲(chǔ)存在BIOS芯片中的BIOS文件與系統(tǒng)硬件版本相匹配,并可通過BIOS鏡像文件對(duì)運(yùn)行異常的BIOS文件進(jìn)行修復(fù),以啟動(dòng)計(jì)算機(jī),從而可增強(qiáng)計(jì)算機(jī)啟動(dòng)的可靠性。
[0068]參見圖3,圖3示出了本發(fā)明實(shí)施例提供的計(jì)算機(jī)啟動(dòng)方法中遠(yuǎn)程更新BIOS文件的流程圖。如圖3所示,該遠(yuǎn)程更新BIOS文件的流程可以包括以下步驟:
[0069]S301:查詢網(wǎng)絡(luò)服務(wù)器上的BIOS版本狀態(tài);
[0070]具體地,BMC可周期性地向網(wǎng)絡(luò)服務(wù)器發(fā)送查詢指令,以便探知BIOS文件的版本的更新情況。
[0071 ] S302 =BIOS版本是否有更新;
[0072]具體地,當(dāng)BMC查詢到網(wǎng)絡(luò)服務(wù)器上有新的BIOS文件的版本時(shí),則本流程轉(zhuǎn)至步驟S303 ;若查詢到網(wǎng)絡(luò)服務(wù)器上沒有新的BIOS文件的版本時(shí),則本流程返回至步驟S301以繼續(xù)查詢網(wǎng)絡(luò)服務(wù)器上的BIOS文件的版本狀態(tài)。
[0073]S303:是否允許BIOS自動(dòng)下載;
[0074]具體地,如果BMC查詢到網(wǎng)絡(luò)服務(wù)器上有新的BIOS文件的版本時(shí),則可判斷當(dāng)前BMC是否允許網(wǎng)絡(luò)更新BMC中的BIOS鏡像文件,如果允許,則本流程轉(zhuǎn)至步驟S304 ;如果不允許,則本流程返回至步驟S301。
[0075]S304:下載最新的B10S,并更新BIOS鏡像文件;
[0076]具體地,如果允許更新BMC中的BIOS鏡像文件,則可通過文本傳輸協(xié)議(FTP)在網(wǎng)絡(luò)服務(wù)器上下載新的版本的BIOS文件,并利用下載的新的版本的BIOS文件更新BMC中的BIOS鏡像文件。
[0077]S305:是否允許BIOS自動(dòng)升級(jí);
[0078]具體地,在更新BMC中的BIOS鏡像文件后,需要判斷當(dāng)前狀態(tài)下是否允許立即通過新版本的BIOS鏡像文件對(duì)BIOS芯片中的BIOS文件進(jìn)行更新,如果允許則本流程轉(zhuǎn)至步驟S306 ;如果不允許,則本流程返回至步驟S301。
[0079]S306:創(chuàng)建線程以在BMC下電時(shí)將新版本的BIOS鏡像文件更新到BIOS芯片中;
[0080]具體地,CPU可創(chuàng)建線程以設(shè)置任務(wù),從而可等待BMC下電時(shí),通過BMC中的新版本的BIOS鏡像文件完成對(duì)BIOS芯片中的BIOS文件的更新升級(jí)操作,例如,完成參數(shù)保留形式的BIOS文件的升級(jí)操作。
[0081]在圖3提供的遠(yuǎn)程更新BIOS文件的方法中,BMC可通過網(wǎng)絡(luò)管理服務(wù)器對(duì)BMC中的BIOS鏡像文件進(jìn)行更新,并可通過CPU創(chuàng)建線程,以在BMC下電時(shí),將新版本的BIOS鏡像文件更新到BIOS芯片中,從而可增強(qiáng)CPU以BIOS芯片中的BIOS文件啟動(dòng)計(jì)算機(jī)的可靠性。
[0082]請(qǐng)參閱圖4,圖4示出了本發(fā)明實(shí)施例提供的一種計(jì)算機(jī)的結(jié)構(gòu)示意圖。如圖4所示,該計(jì)算機(jī)40包括CPU401、BMC402和BIOS芯片403,其中:
[0083]CPU401分別連接BMC402和BIOS芯片403,BIOS芯片403中存儲(chǔ)有BIOS文件,BMC402中預(yù)存有至少一個(gè)版本的BIOS鏡像文件。
[0084]進(jìn)一步,BMC402包括 BMC402 的 CPU4021(即 BMC CPU4021)和 BMC402 的 FLASH4022(即 BMC FLASH4022);其中,BMC CPU4021 通過 Local Bus 與 BMC FLASH4022 通信連接,BMCCPU4021 通過塊傳輸(Block Transmission, BT)通道與 CPU401 通信,BMC CPU4021 通過串行外設(shè)接口(Serial Peripheral Interface, SPI)通道與 BIOS 芯片 403 相連,CPU401 通過SPI通道與BIOS芯片403相連。
[0085]CPU401用于在計(jì)算機(jī)40上電后,檢測(cè)存儲(chǔ)于BIOS芯片403中的BIOS文件與計(jì)算機(jī)硬件是否匹配,若不匹配,則從BMC402中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到BIOS芯片403中,以對(duì)BIOS芯片403中的BIOS文件進(jìn)行更新,并以更新后的BIOS文件啟動(dòng)計(jì)算機(jī)40。
[0086]在本發(fā)明的一個(gè)實(shí)施例中,BMC FLASH4022中預(yù)存有至少一個(gè)版本的壓縮后的BIOS鏡像文件,CPU401從BMC402中查找出版本與計(jì)算機(jī)硬件匹配的BIOS文件的方法可以為:CPU401發(fā)送查詢請(qǐng)求給BMC402,BMC402解壓BIOS鏡像文件并發(fā)送給CPU401,CPU401查找版本與計(jì)算機(jī)硬件匹配的BIOS文件。
[0087]在本發(fā)明的一個(gè)實(shí)施例中,CPU401以更新后的BIOS文件啟動(dòng)計(jì)算機(jī)40的具體方法可以為:CPU401檢測(cè)更新后的BIOS文件是否成功運(yùn)行,若未成功運(yùn)行,則CPU401指令BMC402將BMC402中的BIOS文件發(fā)送到BIOS芯片403中,以對(duì)BIOS芯片403中的更新后的BIOS文件進(jìn)行修復(fù),然后CPU401以修復(fù)后的BIOS文件啟動(dòng)計(jì)算機(jī)40。
[0088]進(jìn)一步,CPU401指令BMC402將BMC402中的BIOS文件發(fā)送到BIOS芯片403中,以對(duì)BIOS芯片403中的更新后的BIOS文件進(jìn)行修復(fù)可以包括:CPU401檢測(cè)BMC402中的BIOS文件中是否存在與更新后的BIOS文件同版本的鏡像,若存在,則CPU401指令BMC402將BMC402中與更新后的BIOS文件同版本的BIOS文件傳送到BIOS芯片403中,以保護(hù)現(xiàn)有參數(shù)區(qū)的方式升級(jí)更新后的BIOS文件;若不存在,則CPU401指令BMC402將BMC402中與更新后的BIOS文件不同版本的BIOS文件傳送到BIOS芯片403中,以全擦除模式升級(jí)更新后的BIOS文件。
[0089]其中,圖4提供的計(jì)算機(jī)可通過在BMC中預(yù)存至少一個(gè)版本的BIOS鏡像文件,利用BIOS鏡像文件使儲(chǔ)存在BIOS芯片中的BIOS文件與系統(tǒng)硬件版本相匹配,并可通過BIOS鏡像文件對(duì)運(yùn)行異常的BIOS文件進(jìn)行修復(fù),以啟動(dòng)計(jì)算機(jī),從而可增強(qiáng)計(jì)算機(jī)啟動(dòng)的可靠性。
[0090]請(qǐng)參閱圖5,圖5示出了本發(fā)明實(shí)施例提供的一種遠(yuǎn)程更新BIOS文件的系統(tǒng)的結(jié)構(gòu)示意圖。如圖5所示,該系統(tǒng)包括網(wǎng)絡(luò)管理服務(wù)器50和如圖4所示的計(jì)算機(jī)40,其中:
[0091]計(jì)算機(jī)40中的BMC402還用于查詢網(wǎng)絡(luò)管理服務(wù)器50上是否存在新版本的BIOS鏡像文件;若存在,則下載新版本的BIOS鏡像文件,并將BIOS鏡像文件的新版本存儲(chǔ)到BMC402中,即將BIOS鏡像文件的新版本存儲(chǔ)到BMC FLASH4022中,以更新BMC FLASH4022中的BIOS鏡像文件的列表。
[0092]進(jìn)一步,計(jì)算機(jī)40中的CPU401還用于創(chuàng)建線程,在BMC402下電時(shí),將新版本的BIOS鏡像文件更新到BIOS芯片403中;具體地,CPU401可創(chuàng)建線程以設(shè)置任務(wù),從而可等待BMC402下電時(shí),通過BMC402中的新版本的BIOS鏡像文件完成對(duì)BIOS芯片403中的BIOS文件的更新升級(jí)操作,例如,完成參數(shù)保留形式的BIOS文件的升級(jí)操作。
[0093]在圖5提供的遠(yuǎn)程更新BIOS文件的系統(tǒng)中,計(jì)算機(jī)中的BMC可通過網(wǎng)絡(luò)管理服務(wù)器對(duì)BMC中的BIOS鏡像文件進(jìn)行更新,且計(jì)算機(jī)中的CPU可創(chuàng)建線程,以在BMC下電時(shí),將新版本的BIOS鏡像文件更新到BIOS芯片中,從而可增強(qiáng)CPU以BIOS芯片中的BIOS文件啟動(dòng)計(jì)算機(jī)的可靠性。[0094]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取器(Random AccessMemory, RAM)、磁盤或光盤等。
[0095]以上對(duì)本發(fā)明實(shí)施例所提供的計(jì)算機(jī)啟動(dòng)方法及計(jì)算機(jī)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種計(jì)算機(jī)啟動(dòng)方法,計(jì)算機(jī)有CPU、BIOS芯片以及基板管理控制器BMC,CPU分別與所述BMC以及所述BIOS芯片連接,其中,所述BIOS芯片中存儲(chǔ)有基本輸入輸出系統(tǒng)BIOS文件,其特征在于,所述BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件,所述方法包括: 計(jì)算機(jī)上電后,CPU檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配; 若不匹配,則CPU從所述BMC中查找出版本與所述計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的BIOS文件進(jìn)行更新; CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)啟動(dòng)方法,其特征在于,所述方法還包括: 所述BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件,具體為:所述BMC中預(yù)存有至少一個(gè)版本的壓縮后的BIOS鏡像文件; 相應(yīng)的,所述CPU從所述BMC中查找出版本與所述計(jì)算機(jī)硬件匹配的BIOS文件具體包括:CPU發(fā)送查詢請(qǐng)求給所述BMC,BMC解壓BIOS鏡像文件并發(fā)送給所述CPU,CPU查找版本與所述計(jì)算機(jī)硬件匹配的BIOS文件。
3.根據(jù)權(quán)利要求1或2所述的計(jì)算機(jī)啟動(dòng)方法,其特征在于,所述方法還包括: BMC查詢網(wǎng)絡(luò)管理服務(wù)器上是否存在新版本的BIOS鏡像文件; 若存在,則下載所述新版本的BIOS鏡像文件,并將所述新版本的BIOS鏡像文件存儲(chǔ)到所述BMC中。
4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)啟動(dòng)方法,其特征在于,該方法進(jìn)一步包括: 所述CPU創(chuàng)建線程,在所BMC下電時(shí),將所述新版本的BIOS鏡像文件更新到所述BIOS芯片中。
5.根據(jù)權(quán)利要求1~4中任一項(xiàng)所述的計(jì)算機(jī)啟動(dòng)方法,其特征在于,所述CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)包括: 所述CPU檢測(cè)更新后的BIOS文件是否成功運(yùn)行; 若未成功運(yùn)行,則所述CPU指令所述BMC將所述BMC中的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù); 所述CPU以修復(fù)后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。
6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)啟動(dòng)方法,其特征在于,所述CPU指令所述BMC將所述BMC中的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù)包括: 所述CPU檢測(cè)所述BMC中的BIOS文件中是否存在與更新后的BIOS文件同版本的鏡像; 若存在,則所述CPU指令所述BMC將所述BMC中與更新后的BIOS文件同版本的BIOS文件傳送到所述BIOS芯片中,以保護(hù)現(xiàn)有參數(shù)區(qū)的方式升級(jí)更新后的BIOS文件; 若不存在,則所述CPU指令所述BMC將所述BMC中與更新后的所述BIOS文件不同版本的BIOS文件傳送到所述BIOS芯片中,以全擦除模式升級(jí)更新后的BIOS文件。
7.一種計(jì)算機(jī),其特征在于,所述計(jì)算機(jī)有CPU、BIOS芯片以及基板管理控制器BMC,CPU分別與所述BMC以及所述BIOS芯片連接,其中,所述BIOS芯片中存儲(chǔ)有基本輸入輸出系統(tǒng)BIOS文件,其特征在于,所述BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件; 所述CPU用于在所述計(jì)算機(jī)上電 后,檢測(cè)存儲(chǔ)于BIOS芯片中的BIOS文件與計(jì)算機(jī)硬件是否匹配,若不匹配,則從所述BMC中查找出版本與所述計(jì)算機(jī)硬件匹配的BIOS文件,把查找到的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的BIOS文件進(jìn)行更新,并以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī),其特征在于,所述BMC中預(yù)存有至少一個(gè)版本的BIOS鏡像文件,具體為:所述BMC中預(yù)存有至少一個(gè)版本的壓縮后的BIOS鏡像文件; 相應(yīng)的,所述CPU從所述BMC中查找出版本與所述計(jì)算機(jī)硬件匹配的BIOS文件具體包括:CPU發(fā)送查詢請(qǐng)求給所述BMC,BMC解壓BIOS鏡像文件并發(fā)送給所述CPU,CPU查找版本與所述計(jì)算機(jī)硬件匹配的BIOS文件。
9.根據(jù)權(quán)利要求7或8所述的計(jì)算機(jī),其特征在于,所述BMC還用于查詢網(wǎng)絡(luò)管理服務(wù)器上是否存在新版本的BIOS鏡像文件;若存在,則下載所述新版本的BIOS鏡像文件,并將所述新版本的BIOS鏡像文件存儲(chǔ)到所述BMC中。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī),其特征在于,所述CPU還用于創(chuàng)建線程,在所述BMC下電時(shí),將所述新版本的BIOS鏡像文件更新到所述BIOS芯片中。
11.根據(jù)權(quán)利要求7~10中任一項(xiàng)所述的計(jì)算機(jī),其特征在于,所述CPU以更新后的BIOS文件啟動(dòng)所述計(jì)算機(jī)包括: 所述CPU檢測(cè)更新后的BIOS文件是否成功運(yùn)行; 若未成功運(yùn)行,則所述CPU指令所述BMC將所述BMC中的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù); 所述CPU以修復(fù)后的BIOS文件啟動(dòng)所述計(jì)算機(jī)。
12.根據(jù)權(quán)利要求11所述的 計(jì)算機(jī),其特征在于,所述CPU指令所述BMC將所述BMC中的BIOS文件發(fā)送到所述BIOS芯片中,以對(duì)所述BIOS芯片中的更新后的BIOS文件進(jìn)行修復(fù)包括: 所述CPU檢測(cè)所述BMC中的BIOS文件中是否存在與更新后的BIOS文件同版本的鏡像; 若存在,則所述CPU指令所述BMC將所述BMC中與更新后的BIOS文件同版本的BIOS文件傳送到所述BIOS芯片中,以保護(hù)現(xiàn)有參數(shù)區(qū)的方式升級(jí)更新后的所述BIOS文件; 若不存在,則所述CPU指令所述BMC將所述BMC中與更新后的BIOS文件不同版本的BIOS文件傳送到所述BIOS芯片中,以全擦除模式升級(jí)更新后的所述BIOS文件。
【文檔編號(hào)】G06F9/445GK103488498SQ201310396254
【公開日】2014年1月1日 申請(qǐng)日期:2013年9月3日 優(yōu)先權(quán)日:2013年9月3日
【發(fā)明者】劉洪廣, 張羽, 周超 申請(qǐng)人:華為技術(shù)有限公司