最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【硬件折騰】主板BIOS更新CPU微碼流程

2022-04-28 00:40 作者:lwyx2017  | 我要投稿

UP主最近在學(xué)習(xí)折騰BIOS的過程中有了一點點經(jīng)驗,就總結(jié)了一些關(guān)于更新主板BIOS中CPU微碼的方法,希望能給大家?guī)硪恍椭?/p>

在折騰前說明,更新CPU微碼涉及修改和刷新BIOS,而修改和刷BIOS存在一定風(fēng)險,本人不對修改后BIOS的適用性、兼容性和穩(wěn)定性做出任何保證,在折騰過程中因操作不當(dāng)而造成的損失和后果概不負(fù)任何責(zé)任。

在做這些前,你應(yīng)該備份機(jī)器未經(jīng)修改的原版BIOS,并知道在刷入錯誤BIOS后導(dǎo)致機(jī)器變磚的情況下,該如何使用編程器搭配燒錄夾救磚。

本人技術(shù)水平有并不專業(yè),且專業(yè)知識匱乏,文章存在錯誤請求各位大佬指出,謝謝。

同樣在操作開始前,先回答一些大家可能想問的問題。

什么是CPU微碼?

CPU微碼(CPU Microcode),又稱為微指令,是在CISC處理器運(yùn)行一些功能復(fù)雜的指令的時候,所分解的一系列相對簡單的指令。

現(xiàn)代CPU的IDU(Instruction Decode Unit),也就是指令解碼器,分為硬件指令解碼和微碼指令解碼。

其中硬件指令解碼通常運(yùn)用在RISC處理器上,而微碼指令解碼通常運(yùn)用在CISC處理器上,換句話來說就是x86處理器使用的是CISC指令集,CISC指令集較為復(fù)雜,指令很多且長短不一,因此不能像RISC處理器那樣使用硬件解碼,就需要利用微指令,將那些復(fù)雜的指令分解為相對簡單的指令。

微指令的作用便是將機(jī)器指令與相關(guān)的電路實現(xiàn)分離,這樣一來機(jī)器指令就可以更自由的進(jìn)行設(shè)計與修改,而不用考慮到實際的電路架構(gòu),使用微指令架構(gòu),除了可以在降低電路復(fù)雜度的同時,還可以構(gòu)建出復(fù)雜的多步驟機(jī)器指令。

那么問題來了,為什么CISC處理器要考慮機(jī)器指令更自由的設(shè)計與可以修改呢?

原因正是既然軟件可能會存在BUG,那么硬件當(dāng)然也會存在BUG了,這個事件最早在90年代的1994年就出現(xiàn)過,當(dāng)時英特爾發(fā)布的奔騰處理器(奔騰在那時候可是英特爾高端系列的代名詞,并不是現(xiàn)在看來的低端產(chǎn)品)在進(jìn)行浮點運(yùn)算的時候可能會發(fā)生錯誤,這就造成了計算出來的結(jié)果可能會不準(zhǔn)確,盡管這個問題對于普通用戶可能影響不大,但對于從事科學(xué)計算,統(tǒng)計學(xué)群體的用戶來說卻是致命的,最終礙于名譽(yù)和面子,英特爾還是召回了這批處理器。

通過這次事件以后,便出現(xiàn)了該如何給CPU“打補(bǔ)丁”這個問題,畢竟英特爾也不敢保證自己的新產(chǎn)品不會再次重蹈覆轍,若是再次出現(xiàn)這種問題,還是選擇像當(dāng)時那樣將產(chǎn)品都召回的話,那么在售后成本上付出的代價豈不是太慘痛了?自己的名譽(yù)同樣也會受到影響。

而我們知道計算機(jī)硬件能直接識別和執(zhí)行的語言是機(jī)器語言,CPU也只認(rèn)識機(jī)器指令,X86處理器是將復(fù)雜的IA32指令轉(zhuǎn)換為機(jī)器指令的,因此在指令解碼器部分,使用可以自由修改的微碼,便是比較好的解決方案,如果出現(xiàn)了BUG,通過更新微碼來解決這些問題并修復(fù)BUG,不就可以了嗎?

因此在吸取了這次教訓(xùn)并找到了解決方案后,英特爾在1995年推出的奔騰Pro處理器時,便開始使用更新Microcode的方式來修復(fù)可能存在的硬件BUG,且一直延續(xù)至今。

例如在四代Haswell-E架構(gòu)的處理器中也出現(xiàn)過問題,那一代英特爾加入了AVX2指令集的支持,使得對這個指令集有優(yōu)化的應(yīng)用帶來了很大的提升,但AVX2指令集會給處理器帶來更高的功耗和發(fā)熱,尤其是在服務(wù)器平臺更為明顯,畢竟服務(wù)器平臺的核心數(shù)相比桌面端的更多,Haswell-E處理器的最大核心數(shù)也從上一代Ivy Bridge-E的12核提升到了最大18核,這也導(dǎo)致了早期Haswell-E處理器出現(xiàn)了巨大發(fā)熱和功耗的情況。

后面英特爾同樣也是通過更新CPU的微代碼的方式來解決這個問題,新版的微碼可以使E5 V3處理器在那些針對AVX2指令集優(yōu)化的程序高負(fù)載的情況下降低CPU的頻率,從而減少功耗和發(fā)熱。

如今Microcode既可以保存在ROM中,也可以保存在RAM中,加載既可以由BIOS進(jìn)行,也可以由操作系統(tǒng)進(jìn)行。

例如電腦啟動的過程中,主板在給CPU進(jìn)行初始化的時候,就需要將英特爾提供的微碼加載到CPU的指令解碼器部分,因此BIOS就可以勝任主要的加載CPU微碼任務(wù)。

而除了BIOS以外,CPU微碼也可以通過操作系統(tǒng)進(jìn)行,例如Linux內(nèi)核在引導(dǎo)的時候就可以更新CPU微碼,而無需BIOS更新。

同樣在幾年前那次幽靈熔斷漏洞的事件中,后期在Win10系統(tǒng)更新中,也會有這個漏洞補(bǔ)丁和新版的CPU微碼,來修復(fù)這個漏洞。

E5 V3雞血將EFI補(bǔ)丁刷入系統(tǒng)EFI分區(qū),開機(jī)啟動加載這個EFI以后,可以讓CPU運(yùn)行在舊版的微碼上,這也是同樣的道理。

為什么要折騰CPU微碼?什么機(jī)器需要折騰微碼。

給主板BIOS折騰CPU微碼,相信玩過771的至強(qiáng)上775主板,E5 V3雞血,100和200系主板支持八九代酷睿的硬件玩家來說,肯定不陌生,當(dāng)我們有時候需要折騰這類東西的時候,自然也就需要折騰微碼了。

首先是關(guān)于771的事,771則指的是LGA771接口,也就是當(dāng)年和775同代的至強(qiáng)使用的接口(06年到08年那個時候的至強(qiáng)),我們知道至強(qiáng)是英特爾定位服務(wù)器的產(chǎn)品系列,同代產(chǎn)品相比普通臺式機(jī)CPU來說,有著更強(qiáng)大的性能和更大的三級緩存,不過那時候771的主板很貴,盡管后期有了很多淘汰下來的拆機(jī)的CPU,但在沒有發(fā)現(xiàn)它們也可以用到775主板上這種“騷操作”之前,771的至強(qiáng)除了原生的771平臺以外,并沒有其他用武之地。

不過后期有些技術(shù)宅發(fā)現(xiàn),LGA775和LGA771理論上可以通過交換A3和A5的地址來兼容,換句話來說771和775的差別在于CPU和主板插槽上防呆接口的位置不同,CPU觸點上有兩個針腳的定義不一樣以外,其他都一樣。

雖然這樣魔改(只是交換那兩個針腳)經(jīng)過實際測試確實是成功了,但存在的問題是只有部分主板支持,即便點亮以后可能也會出現(xiàn)不兼容的情況,例如存在指令集,溫度,電壓,總線頻率,外頻和內(nèi)存支持方面等諸多玄學(xué)問題。

而且771的至強(qiáng)也有不同的步進(jìn),有的可以不刷微碼在775主板上點亮,有的則必須刷微碼,不然點不亮,例如C0的步進(jìn)不刷微碼可以點亮,E0步進(jìn)的就必須要刷微碼才能點亮。

而通過給主板BIOS添加771CPU的微碼,就可以解決像點不亮,并改善北橋和CPU的發(fā)熱,提升兼容性和改善穩(wěn)定性的問題。

100和200系主板通過魔改BIOS,屏蔽CPU上的部分觸點支持八九代酷睿也是同理,雖然300系列的主板使用的插槽還是LGA1151,與100系和200系主板相同,但是Intel則是利用處理器微代碼,ME管理引擎,核顯GOP等,故意讓老主板不認(rèn)識新處理器。

拿八代i3舉例的話,八代i3實際上是七代i5的馬甲,因此只需要將新版微碼加入BIOS,并將ME,核顯VBIOS和GOP固件更新后,在100和200系主板上就可以點亮并完美使用核顯。

E5 V3雞血則是通過去除主板BIOS里Haswell-E CPU的微代碼(306F2),并加載EFI補(bǔ)丁來實現(xiàn)的,這個在前面也提到過。

除了在玩這些的時候會需要折騰微碼以外,下面這些情況也需要我們折騰微碼。

例如某些情況下舊版的微碼可能會存在BUG,而新版微碼修復(fù)這個問題并改善了性能,但你使用的機(jī)器或者主板廠商沒有更新BIOS,我們就可以自己更新微碼,比如我那臺B450的藍(lán)天NH57就是藍(lán)天一直不更新BIOS,而BIOS的更新對于AMD平臺來說又是非常重要的,于是我便嘗試將Zen2 00870F10的微碼從從08701013更新到了08701021。

還有像X99平臺在那次被爆出幽靈熔斷漏洞以后,微軟也在Windows系統(tǒng)中打補(bǔ)丁,更新CPU微碼來修復(fù)這些安全問題,前面我們也提到過微碼的加載既可以由BIOS進(jìn)行,也可以由操作系統(tǒng)進(jìn)行,如果X99平臺你使用的是Broadwell-E架構(gòu)的i7旗艦版,并在超頻的情況下使用,操作系統(tǒng)又是比較新的情況下,進(jìn)入系統(tǒng)以后CPU超頻可能會失效,造成這種情況的原因是主板BIOS中的微碼版本比系統(tǒng)中提供的微碼版本低,這樣就導(dǎo)致將CPU頻率的控制權(quán)交給了操作系統(tǒng),BIOS中的超頻設(shè)置就會失效,這樣就需要更新BIOS中的微碼來解決這個問題。

或者是新版BIOS將微碼更新后,修復(fù)了一些良性BUG或者降低了CPU性能,而我們使用的也是舊版本的系統(tǒng)的話,我們也可以把老的微碼與新版微碼替換,達(dá)到降級的目的。

對這方面有了一定了解以后,我們就開始吧。

這里請注意教程里提到的方法比較復(fù)雜,舊平臺的BIOS實際上使用UEFI BIOS Updater,也是可以直接更新微碼的,不需要那么麻煩,我這個方法適合想要對這方面有更多理解的人。

教程中用到的工具整合:https://pan.baidu.com/s/1cn2J4oHXiqmoD_5P2T5j9g?pwd=BIOS?

提取碼:BIOS

備份原版的BIOS

在折騰之前我們首先要有BIOS原文件,且需要備份原版BIOS以防萬一,如果廠商有提供的話,可以使用廠商提供的,而如果廠商沒有提供,網(wǎng)絡(luò)上也沒有找到可以下載的渠道的話,我們就需要自己提取。

英特爾平臺我們可以使用FPTW64,也就是Intel?Flash Programming Tool,來備份和刷入BIOS,當(dāng)然你也可以使用像AFUWin或者H2OUVE等其他工具來提取,不過它們只能支持自家的BIOS,例如AFUWin只能支持AMI的BIOS,H2OUVE只能支持Insyde的BIOS,也可以拆機(jī)使用編程器搭配燒錄夾提取,看情況選擇適合自己的方法吧。

而FPTW64似乎就沒有BIOS的廠商的限制,我試過無論是AMI Aptio V的BIOS還是Insyde H2O的BIOS,都是可以提取和刷入的,也可以強(qiáng)刷修改后的BIOS,不過這個工具只支持英特爾平臺,且不同平臺對工具版本存在要求,例如舊版的工具會不支持新平臺。

拿GPD Win3來說,這個機(jī)器的BIOS是AMI Aptio V的BIOS,我拿FWTW64舉例,我們先使用管理員身份打開命令提示符,轉(zhuǎn)到工具所在的目錄下,輸入FPTW64.exe /d Win3.bin的命令,將BIOS提取出來。

其中/d的命令是備份16M的完整BIOS,后面?zhèn)浞莩鰜鞡IOS的文件名可以自己定義,輸入命令后我們等待備份完成即可。

AMI的BIOS我們也可以使用AFUWin備份,不過這個工具有時候會出現(xiàn)備份出來的BIOS不完整的情況,例如我拿來備份Win3的BIOS,備份出來的文件大小只有11M。

使用UEFITool打開的話,會發(fā)現(xiàn)兩者結(jié)構(gòu)上是存在區(qū)別的,也就是說使用AFUWin備份出來的BIOS可能會是不完整的,出現(xiàn)這種情況的話,還是使用FPTW64來備份吧。

而像Insyde H2O的BIOS,除了可以用FPTW64備份以外,也可以使用H2OUVE備份,有時候可能會出現(xiàn)下載到的BIOS是超過16M的,使用H2OFFT刷入沒有問題,但H2OFFT似乎只能刷簽名過的BIOS,未經(jīng)簽名的BIOS是刷不了的。

而使用其他工具或者編程器刷超過芯片容量的BIOS的話,就會出現(xiàn)BIOS容量大于芯片容量,導(dǎo)致無法刷入的情況,以前我給NH57救磚的時候就遇到了這種情況,所以備份和芯片容量相同的BIOS文件是非常有必要的。

我拿我自己的藍(lán)天NH57AF1舉例,藍(lán)天X170使用的也是這種BIOS,H2OUVE除了可以修改Insyde H2O BIOS的選項以外,還可與備份BIOS。

H2OUVE我使用的版本是200.00.01.00,我們以管理員身份運(yùn)行H2OUVE-W-GUIx64.exe這個程序,點擊Load runtime,等待運(yùn)行時的BIOS讀取完成后,再選擇Dump BIOS rom,就可以將BIOS提取出來。

以上介紹的就是備份BIOS的方法了,注意備份BIOS原文件這一步非常重要,在救磚的時候會用到,備份出來以后,建議復(fù)制一份到U盤或者另一臺可以正常使用的電腦上,然后再對其進(jìn)行魔改。

關(guān)于MCExtractor的安裝和使用

我先拿GPD Win3這臺機(jī)器的BIOS舉例,這個機(jī)器的2.29版BIOS的微碼都不是最新的,那我們該如何確認(rèn)BIOS里的微碼是不是最新的呢?

這時候我們就需要用到一個開源工具M(jìn)CExtractor了,這個工具可以檢測BIOS中的微碼是不是最新的,也可以從BIOS中提取微碼,非常方便。

MCExtractor地址:https://github.com/platomav/MCExtractor

我們可以使用git clone這個項目,或者直接下載壓縮包來獲取這個工具。

這個工具是Python寫的,因此必須要安裝Python才能使用,我們可以執(zhí)行python --version的命令來查看自己電腦的系統(tǒng)中是否安裝了Python,并確定安裝的是那個版本,沒有安裝的話,就需要安裝以后才可以使用這個工具,這個工具需要Python 3.7以上的版本才能運(yùn)行。

Python官網(wǎng):https://www.python.org

另外由于這個工具引入了pltable和colorama,因此除了需要安裝Python以外,還需要安裝這兩個模塊才能正常使用。

安裝那兩個模塊很簡單,在命令提示符或者PowerShell中使用pip命令安裝即可。

我們輸入pip3 install colorama和pip3 install pltable就行。

colorama可以跨多終端,顯示字體不同的顏色和背景,pltable可以用來生成美觀的ASCII格式的表格。

其中pip install加上模塊名稱是安裝的命令,對模塊的版本有要求的話,可以加上版本號。

pip install --upgrade加上模塊名稱是更新的命令,pip uninstall加上模塊名稱是卸載的命令。

安裝完成后工具就可以正常打開了,不過我們也可以編譯一份,這樣在沒有安裝Python的電腦上就可以直接使用,我后面也會把編譯好的程序放在工具包里,方便那些不想安裝Python的用戶使用。

編譯的方法很簡單,使用pip命令安裝PyInstaller,colorama和pltable以后,執(zhí)行pyinstaller --noupx --onefile MCE.py即可編譯。

其中--noupx的命令是不使用UPX,--onefile的命令是創(chuàng)建一個單文件綁定的可執(zhí)行文件。

操作完成后目錄會新增一個dist的文件夾,在這個文件夾里就可以找到編譯好的程序,這個程序在其他沒有安裝Python環(huán)境的電腦上就可以直接使用。

回歸原題,當(dāng)確保MCExtractor可以正常使用以后,我們就可以使用它來查看BIOS中有什么微碼,那些微碼是不是最新的了。

我們將BIOS拖到程序上,然后再按回車就可以查看了。

其中CPUID那一列是指這個BIOS里有什么CPU的微碼,這個依據(jù)你的平臺來決定。

比如我那臺GPD Win3使用的是i7 1165G7的CPU,BIOS中當(dāng)然就需要有這個微碼才能支持這個CPU,而i7 1165G7的CPU ID是806C1,對應(yīng)的微碼就是第一個和第三個。

而我那臺藍(lán)天NH57AF1支持銳龍3000系桌面級CPU,也就是Zen2代號Matisse的處理器,而目前我使用的R7 3700X,它的CPU ID是00870F10,對應(yīng)的微碼就是第一個。

關(guān)于這個我們也可以使用AIDA64或者HWINFO查看,它們就可以檢測出這個信息。

Revision那一列則是微碼的版本,Date那一列是日期,Size是指微碼大小,它們可能會隨著微碼版本而變化。

Offset則代表它在十六進(jìn)制中的位置,Last那一列是Yes代表這個微碼是最新的,No則代表不是最新。

比如我剛才打開的藍(lán)天NH57AF1的BIOS就是我改過的,而原版BIOS的微碼就不是最新的,通過對比我們可以看出。

使用MCExtractor從其他BIOS中提取新的微碼

對這方面有一定了解以后,我們就需要從其他相同平臺的機(jī)器中提取新版的微碼了。

比如GPD Win3那個機(jī)器使用的是i7 1165G7的CPU,因此我們就可以從其他也是使用這種CPU機(jī)器的BIOS里,提取新版的微碼。

雖然臺式機(jī)平臺的那些兼容機(jī)主板,你可能很容易就從各大主板廠商的官網(wǎng)上找到BIOS原文件,但筆記本的BIOS原文件就不是很好找了,它們提供的大多數(shù)都是整合好的刷寫程序,而不是BIOS原文件,我拿該如何從戴爾的BIOS里提取微碼舉例。

戴爾給我印象非常好的就是它對驅(qū)動和BIOS的更新支持非常好,甚至之前我玩有些驅(qū)動支持不好的機(jī)器,也用過戴爾提供的驅(qū)動,這一點是要提出表揚(yáng)的,因此我們就可以從戴爾的BIOS里提取CPU微碼,盡管BIOS不是通用的,但CPU微碼是通用的,這一點是毋庸置疑的。

這里使用同樣搭載了十一代Tiger Lake-UP3的處理器的戴爾XPS 13 9310的BIOS舉例,我是從這里面提取Tiger Lake-U的微碼給Win3用的。

雖然它提供的是整合好的刷寫程序,而不是BIOS原文件,這一點就讓我們感到犯難了,但我們可以借助一個開源工具來從這個程序里提取出我們需要的BIOS,也正是因為戴爾的BIOS有現(xiàn)成的提取工具,所以我才使用戴爾的BIOS的。

Dell-PFS-BIOS-Assembler(戴爾BIOS提取工具)

https://github.com/vuquangtrong/Dell-PFS-BIOS-Assembler

這個工具也是Python寫的,使用同樣的方法下載和編譯即可。

然后將BIOS程序拖到Dell_PFS_Extract上,就可以將里面的BIOS提取出來。

Dell_PFS_Assembler應(yīng)該是打包BIOS用的,不過我沒試過。

獲取到BIOS源文件以后,我們將它放到MCExtractor的目錄下將其打開。

可以看出這個BIOS的806C1和806C2的微碼是最新的,我們就可以從里面提取了。

使用MCE加上BIOS文件名(BIOS文件未在目錄下的話,需要加上完整的路徑),再加上-skip>nul && goto cpu的命令,即可提取微碼。

接著MCExtractor的目錄下會多出一個名為Extracted的文件夾,這里面就是我們提取出來的新版本的微碼。

有了新版本的微碼以后,我們就可以更新微碼了,雖然有時候我們也可以使用像MMTool,或者H2OEZE(H2OEZE僅適用于Insyde的BIOS)之類的來更新微碼,不過這些工具并不能保證時刻都能成功,例如MMTool在給Win3更新微碼的時候就有點問題,我選擇了插入新的微碼以后前兩個不起作用,后面雖然添加進(jìn)來了一個新版的,但是又報錯了,H2OEZE打開藍(lán)天X170的BIOS以后雖然可以讀取和刪除微碼,但是這個工具提取和替換也是有問題的,畢竟版本太老了,網(wǎng)上能找到的版本是比較舊的了,對新BIOS的支持不好也很正常。

那么我這里介紹一個比較麻煩,但是通用性較好的方法。

還是拿GPD Win3的BIOS舉例,我們使用MCExtractor將BIOS里舊版的微碼提取出來,先將806C1的微碼更新。

使用十六進(jìn)制編輯器打開提取出來對應(yīng)的微碼文件,我這里想要更新806C1的微碼,因此是打開806C1那個文件,我這里用的是HXD,復(fù)制第一段對應(yīng)的十六進(jìn)制,我這里是01 00 00 00 8A 00 00 00 21 20 09 04 C1 06 08 00。

然后使用UEFITool打開BIOS,UEFITool的最新版可以在Github下載,不過新版目前還不支持微碼的替換,所以我使用舊版,也就是0.28版來進(jìn)行操作。

想關(guān)心最新版可以在Github的發(fā)布版下載:https://github.com/LongSoft/UEFITool/releases

這個工具是C++寫的,而且是跨平臺的,它除了有Windows版以外,還有Linux版和Mac版,由于我沒有學(xué)過C++,編譯C++程序也只會編譯使用VS寫的項目,對于不依賴.sin或.vcxproj項目文件的跨平臺C++應(yīng)用,就不怎么會編譯了,平常我也只會簡單使用Windows,不會用Linux,Mac系統(tǒng)的話手上沒有蘋果設(shè)備也沒玩過。

我們搜索剛才復(fù)制的這個十六進(jìn)制,搜索類型那里選擇Body only。

然后將搜索到的結(jié)果保存,使用十六進(jìn)制編輯器打開,我這里使用的是HxD。

保存的文件名可以自己定義,建議保存成對應(yīng)的GUID名稱方便區(qū)分。

使用HxD打開后可以看出,提取出來的這個模塊文件開始部分的十六進(jìn)制和微碼的開頭一致(我這里都是01?00 00 00 8A 00 00 00 21 20 09 04 C1 06 08 00)情況不同的話就要進(jìn)行搜索,并記住這部分開始的Offset,我這里就是00000000。

接著回到剛才打開的那個舊版微碼文件,復(fù)制最后部分的十六進(jìn)制,我這里是E9 19 DE 67 BA CF FA BC 84 52 EA B6 40 8C 00 25,并在模塊文件中查找。

查找到以后再次記錄下它結(jié)尾的Offset,我這里是0001ABF0。

確定了00000000到0001ABF0的位置是舊版的微碼以后,我們就可以用新版微碼的十六進(jìn)制數(shù)據(jù)來替換舊版的了。

使用HXD打開剛才從戴爾BIOS中提取出來的新版微碼(我這里是806C1),按Ctrl+A全選復(fù)制,然后回到剛才那個模塊中,選中剛才記錄的位置(也就是舊版微碼的整體)我這里是00000000到0001ABF0的位置,將其替換。

這里要注意的是,由于我這里806C1新版和舊版的微碼大小完全相同,對應(yīng)的十六進(jìn)制長度也都是0x1AC00,因此就可以使用覆蓋式粘貼進(jìn)行替換。

如果你新版微碼的大小是小于舊版微碼大小的話,就記住它的十六進(jìn)制長度,然后在模塊文件中選擇相同長度的十六進(jìn)制來進(jìn)行替換,多出來的部分使用十六進(jìn)制FF來進(jìn)行填充即可。

而新版微碼的大小是大于舊版微碼大小的話,同樣還是就記住它的十六進(jìn)制長度,在模塊文件中選擇相同長度的十六進(jìn)制來進(jìn)行替換,多出來的部分直接在FF上面寫即可。

替換完成后保存文件,將修改后的文件與原來的替換,我這個BIOS關(guān)于806C1的微碼是一式兩份的,查找下一個模塊文件,它的GUID和上面那個也完全相同,因此直接替換就行。

替換完成后保存文件,使用MCExtractor打開魔改好的BIOS,我們就能看出806C1的微碼成功更新了。

更新806C2的微碼也是同樣的方法,第二個微碼所在的模塊文件和第一個相同,只是所在的位置不同,第一個微碼就在文件的開頭,而第二個微碼在第一個的后面。

我們還是在模塊文件中搜索第二個微碼(我這里是舊版806C2)開頭的十六進(jìn)制,并將它記錄下來,我這里是00020000。

不過這次更新806C2的微碼和806C1的有些不同,因為806C2新版本的微碼比舊版本的大了一些,因此在替換過程中就不能像上面那樣,從舊版微碼的開頭到結(jié)尾,直接使用覆蓋式粘貼來替換,因為那樣會改變文件大小,可能就會造成UEFITool保存失敗的問題。

不要著急,我們打開新版的806C2微碼,按Ctrl+A全選復(fù)制,并記住它的十六進(jìn)制長度,我這里的十六進(jìn)制長度是0x17C00。

然后回到模塊文件中,從剛才記錄下來的開始部分進(jìn)行選擇,直到選擇的十六進(jìn)制長度等于新版微碼的長度,我這里是0x17C00,然后再使用覆蓋式粘貼將其替換。

模塊修改完成后,同樣使用UEFITool替換并保存,要注意BIOS中相同的微碼如果只有一個的話,那么替換一個即可,如果有兩個的話,那么兩個都要替換才行。

使用UEFITool替換并保存完成后,再使用MCExtractor打開BIOS,我們就能看出這個BIOS里的所有微碼都是最新的了。

這種方法應(yīng)該也是適用于AMD平臺的,我那臺藍(lán)天NH57AF1也是用同樣的方法將Zen2的微碼更新的,不過我當(dāng)時是直接拿十六進(jìn)制編輯器在BIOS文件上改的,沒有使用UEFITool,但我個人還是建議使用UEFITool來提取微碼所在的模塊,然后在那個模塊上進(jìn)行修改比較好。

然后我們將改好的BIOS文件刷入機(jī)器,英特爾平臺可以使用FPTW64強(qiáng)刷,AMD平臺的話用編程器搭配燒錄夾刷吧,反正我那臺藍(lán)天NH57AF1就是拿編程器刷的。

回歸原題,Win3改好的BIOS我又使用了AMIBCP改了默認(rèn)內(nèi)存頻率,將默認(rèn)的3733改成了4267,使用FPTW64刷BIOS的時候使用/f的命令來刷即可。

BIOS刷完后重啟一次點亮,看來沒什么問題,不過還是要當(dāng)心,如果BIOS里面的微碼與當(dāng)前的CPU不匹配或者有錯誤,是會造成機(jī)器無法正常啟動的,那種情況就必須拆機(jī)使用編程器搭配燒錄夾救磚了。

AIDA64和HWINFO也讀出了i7 1165G7的微碼成功更新至了目前最新的A4h,這樣我們的微碼就更新成功了,目前1165G7最新版的微碼是A4,之前BIOS里的舊版微碼是8A。


【硬件折騰】主板BIOS更新CPU微碼流程的評論 (共 條)

分享到微博請遵守國家法律
连山| 新和县| 荔波县| 河池市| 年辖:市辖区| 宜兰市| 嘉禾县| 凤台县| 沅江市| 张家港市| 诸城市| 婺源县| 伊宁市| 鄯善县| 台湾省| 麦盖提县| 河东区| 黔西| 进贤县| 泰顺县| 塔河县| 黎城县| 陇南市| 小金县| 抚州市| 大石桥市| 辽中县| 涞水县| 康马县| 泸溪县| 屏东县| 潮安县| 萨嘎县| 八宿县| 古田县| 娱乐| 凌云县| 察雅县| 扬中市| 麻江县| 灯塔市|