以DELL機(jī)器Latitude D410,D610,D520,Insprion 630m,6000,6400為例,我測(cè)試過(guò)的BIOS包含了大部分迅馳1、2、3機(jī)型,因此本帖只討論DELL迅馳筆記本, Q:哪里可以獲得DELL機(jī)器的BIOS升級(jí)程序? A:當(dāng)然是DELL官方網(wǎng)站。但是這里有一個(gè)技巧,就是用FTP客戶端登錄ftp://ftp.dell.com/,在bios文件夾下有各種機(jī)型的各個(gè)版本的BIOS升級(jí)程序下載。升級(jí)程序的命名規(guī)則是 型號(hào)_版本.exe,比如D610機(jī)器的A06版本就是 D610_A06.exe,但是有些機(jī)型用的是內(nèi)部代號(hào)。比如 Insprion 6400 的代號(hào)是 MM061,所以它的A12版本文件名是 MM061_A12.exe。機(jī)器的代號(hào)在筆記本剛啟動(dòng)顯示DELL標(biāo)志的那個(gè)界面可以看到,在白色進(jìn)度條的上方。
Q:如何知道我當(dāng)前的BIOS版本? A:同樣是在筆記本剛啟動(dòng)顯示DELL標(biāo)志的那個(gè)界面,在白色進(jìn)度條的下方,有 BIOS Revision AXX 字樣,AXX就是當(dāng)前BIOS的版本號(hào)。
Q:什么版本的BIOS含有SLIC信息? A:取決于機(jī)型。比如D620的A07版本,6400的A12版本。對(duì)于一些較老的機(jī)型,DELL根本沒(méi)有提供含有SLIC信息的BIOS更新程序。
Q:如何知道DELL有沒(méi)有為我的機(jī)型提供含有SLIC信息的BIOS? A:有一系列方法: 1、登錄DELL官方網(wǎng)站(http://www.dell.com/,亞太網(wǎng)站.cn也可以,我比較推薦dell.com),在驅(qū)動(dòng)下載頁(yè)面找到你的機(jī)型,并選擇 Windows Vista 32-bit 或 Windows XP 操作系統(tǒng) 及 English 語(yǔ)言,查找 Flash BIOS 更新。如果在該BIOS更新程序的下載頁(yè)面有 Update Computrace ROM support for Vista 字樣,就證明該BIOS含有SLIC信息。 2、DELL統(tǒng)一在2006年12月19日為所有支持升級(jí)到Vista的機(jī)型提供了包含SLIC信息的BIOS更新,只要FTP登錄ftp://ftp.dell.com/bios/,查看你的機(jī)型有沒(méi)有修改時(shí)間為 2006/12/19 或更晚的BIOS更新程序即可。 3、經(jīng)驗(yàn)判斷:如果你的CPU是酷睿系列(編號(hào)T開(kāi)頭,如T2300、T5500),或你的主板芯片組為945系列(或更高,如桌面的965系列),那么DELL應(yīng)該已經(jīng)為你的機(jī)型提供含有SLIC信息的BIOS,快去ftp上找一找吧。如果你的CPU還是Pentium M(或更早,如Pentium 4 M),如果你的主板芯片組為915系列(或更早,如855系列),那么很遺憾,DELL沒(méi)有為你提供含有SLIC信息的BIOS更新程序。
Q:為什么我的機(jī)器明明刷了含有SLIC的BIOS卻只得到一個(gè)長(zhǎng)度為36字節(jié)的SLIC表? A:你的機(jī)器比較新,DELL在生產(chǎn)線上對(duì)其BIOS做了標(biāo)記,使BIOS信息向內(nèi)存映射時(shí),只有36字節(jié)的表頭出現(xiàn),后面的內(nèi)容被抹去了??梢钥隙ㄟ@并不是由于你和別人刷了不同的BIOS導(dǎo)致的,換句話說(shuō),DELL的這個(gè)標(biāo)記不是存在于BIOS中(這個(gè)BIOS是狹義的,就是鏡像),而在主板的其它地方,猜測(cè)比如DMI。關(guān)于這個(gè)結(jié)論的證明可以看下面的備份部分(事實(shí)上,6400和6400-n都刷到A12,備份出BIOS可以發(fā)現(xiàn)它們是相同的,即使這臺(tái)6400-n可能被DELL做過(guò)標(biāo)記,導(dǎo)致進(jìn)入系統(tǒng)后其SLIC表不完整。)。
Q:DELL的BIOS刷新程序怎么用? A:BIOS刷新程序是一個(gè)特殊的可執(zhí)行程序,有32位和16位兩種運(yùn)行模式,也就是說(shuō),它可以在Windows平臺(tái)下以32位程序運(yùn)行(非實(shí)模式),也可以在純DOS環(huán)境中運(yùn)行。運(yùn)行后系統(tǒng)會(huì)自動(dòng)重啟,BIOS刷新完畢。在某些特定的情況下,它可能必須在純DOS環(huán)境中運(yùn)行,在Windows平臺(tái)下會(huì)有錯(cuò)誤報(bào)告,代碼0x00000610。
Q:DELL的BIOS刷新程序僅僅是一個(gè)補(bǔ)丁嗎? A:不是!事實(shí)上,DELL的BIOS刷新程序中含有完整的GZip壓縮的BIOS鏡像。提取方法是使用-writehdrfile或-writeromfile參數(shù)。比如:
D610_A06.exe -writehdrfile
這條命令將在當(dāng)前文件夾下生成一個(gè)名為 D610_A06.hdr 的BIOS鏡像,大小為1,048,668字節(jié),等于1MB+92字節(jié)(這個(gè)大小不是D610的特例,而是所有迅馳1,2機(jī)型相同,迅馳3的機(jī)型大小為1,114,208字節(jié))
D610_A06.exe -writeromfile
這條命令將在當(dāng)前文件夾下生成一個(gè)名為 D610_A06.rom 的BIOS鏡像,大小為1,048,576字節(jié),恰好為1MB(這個(gè)大小不是D610的特例,而是所有迅馳1,2,3機(jī)型相同)
Q:HDR和ROM分別是什么格式的BIOS鏡像?它們有什么關(guān)系? A:暫且可以將其稱為 Phoenix ROM BIOS Plus 格式,應(yīng)該是 Phoenix 專為 DELL 設(shè)計(jì)的,尚未找到對(duì)其進(jìn)行修改的工具。HDR文件和ROM文件的關(guān)系則比較清楚,對(duì)于迅馳1,2系列機(jī)型(主板為855或915芯片組),HDR文件比對(duì)應(yīng)的ROM文件多92個(gè)字節(jié)。這92字節(jié)分別是頭部的84字節(jié)和結(jié)尾的8字節(jié),除去這92個(gè)字節(jié)即可得到ROM文件。其中頭部的84字節(jié)是以$RBU開(kāi)頭的版權(quán)字符串,結(jié)尾的8字節(jié)中前4字節(jié)是ROM文件的CRC32校驗(yàn)和的補(bǔ)碼,后4字節(jié)是前面84字節(jié)+1MB完整ROM鏡像+4字節(jié)ROM校驗(yàn)和的CRC32校驗(yàn)和的補(bǔ)碼(汗,說(shuō)得好繞口)。因此由ROM文件也可以簡(jiǎn)單地添加這92字節(jié)內(nèi)容得到相應(yīng)的HDR文件。 附注:1、RBU的全稱是 Remote BIOS Update(遠(yuǎn)程BIOS刷新),估計(jì)DELL當(dāng)初設(shè)計(jì)HDR格式主要是為了遠(yuǎn)程管理(好像有個(gè)Dell OpenManage系統(tǒng)做遠(yuǎn)程管理) 2、CRC32是一種Hash(哈希)函數(shù)(MD5也是一種Hash函數(shù)),它對(duì)任意長(zhǎng)度的數(shù)據(jù)都會(huì)生成4個(gè)字節(jié)的校驗(yàn)和。有許多常見(jiàn)的Hash計(jì)算器都可以用來(lái)獲得某一字符串或某一文件的CRC32校驗(yàn)和。 3、補(bǔ)碼,對(duì)于一個(gè)十六進(jìn)制位來(lái)講,就是用 F(15) 減去當(dāng)前值得到的結(jié)果。(如 3A 的 補(bǔ)碼是 FF - 3A = C5) 4、對(duì)于迅馳3機(jī)型,HDR比ROM文件又多出了一部分內(nèi)容。但是由于這些機(jī)型已經(jīng)包含SLIC表,所以暫且按下不提。
Q:怎么備份當(dāng)前的BIOS鏡像? A:用DELL官方的BIOS刷新程序。必須在純DOS下運(yùn)行,加入-readromfile參數(shù)。比如:
D610_A06.exe -readromfile
這條命令將在當(dāng)前文件夾下生成一個(gè)名為 BIOS.ROM 的BIOS鏡像,大小為1,048,576字節(jié),恰好是1MB。這就是當(dāng)前BIOS備份出來(lái)的鏡像。
Q:如何證明上面的鏡像是從BIOS中備份得到,而非升級(jí)程序提取自身包含的鏡像生成的? A:我的D610目前是A06版本的BIOS,在純DOS下分別用 D610_A06,D610_A05,D510_A04 (注意,我甚至用了D510的升級(jí)程序),配合 -readromfile 參數(shù)得到3份BIOS.ROM,用十六進(jìn)制編輯器(如UltraEdit或WinHex)打開(kāi)后,發(fā)現(xiàn)其中均有D610、A06字樣,經(jīng)過(guò)比較,它們的每一個(gè)字節(jié)都完全相同,都與 D610_A06.exe -writeromfile 得到的鏡像相同!
Q:如何把ROM鏡像或HDR鏡像刷新到BIOS中? A:用DELL官方的BIOS刷新程序。必須在純DOS下運(yùn)行,加入-readgzfile參數(shù)。比如:
D610_A06.exe -readgzfile
這條命令將在當(dāng)前文件夾下尋找D610_A06.gz文件,如果找到,它把該文件解壓得到D610_A06.hdr文件,校驗(yàn)其中的CRC信息,并把該hdr文件中所包含的1MB ROM鏡像刷新到BIOS中。所以,如果我們手頭有ROM鏡像,只須先添加92字節(jié)成為HDR鏡像,然后用GZip打包成gz文件就可以刷新了。 附注:GZip壓縮格式:這是一個(gè)開(kāi)源的壓縮格式,Windows 用戶可能對(duì)其并不熟悉,但是Linux下它的應(yīng)用十分廣泛(Linux最流行的壓縮方式莫過(guò)于tar打包加上gz壓縮)。在 http://www.gzip.org/ 可以獲得各種版本的GZip源碼和不同平臺(tái)下的可執(zhí)行程序。
Q:如何編輯DELL的ROM鏡像? A:盡管用十六進(jìn)制編輯器打開(kāi)ROM鏡像,你可以搜索到RSDT等字符,但很遺憾的是,ROM鏡像的確是被一種未知的算法壓縮過(guò)的。
|