ASUS B450M重炮手+新的Ryzen 5系BIOS+Win7+ACPI.SYS的A5藍(lán)屏的解決一例+相關(guān)內(nèi)容學(xué)習(xí)
因?yàn)槊看位〞r間研究的成本很高,所以習(xí)慣性筆記一下,否則太容易忘記了,很亂,想直接使用的補(bǔ)丁或系統(tǒng)的,請劃到文章末尾,有下載鏈接。
背景:
(1)原有配置:
CPU:Ryzen 3 3100(Zen 2架構(gòu))
主板:ASUS Tuf Gaming B450M Pro S 重炮手V1(原使用2409版BIOS)
內(nèi)存:8G×4 DDR4 3200(1.35V,C16)(8G×2 酷獸3200/3600各一對套條,均使用長鑫A-die顆粒)
存儲:512G Apacer nvme 3.0(PCIE 3.0槽位,Win10)+2T GEIL P3L nvme 3.0(PCIE 2.0槽位,Win7)+500G Seagate sata
顯卡:XFX RX590GME 8G礦卡
OS:Win7 X64 Ultimate+Win10 X64 21H2
(2)近期蘇媽的CPU價格下跌,Ryzen-5-5500 6核心12線程(Zen 3架構(gòu),OC 4.7G)以盒裝不到450的價格,單核性能較3100(OC 4.5G)提升18%,多核提升65%以上(CPU-Z跑分),屬實(shí)是真香,PDD春節(jié)活動期間用券后拿下,因?yàn)閭€人需求,需要使用Win7操作系統(tǒng),原本3100搭配2409版BIOS安裝使用Win7很容易,但自從升級了這塊U以后,煩心事就來了。
經(jīng)歷的學(xué)習(xí)過程,筆記的很亂,有興趣的就讀一下:
(1)Ryzen-5-5500是相對較新的Zen 3架構(gòu)5系CPU,需要搭配新版BIOS才能正常點(diǎn)亮,如下圖,第一版支持的BIOS版本號為3211,并且之前因其他問題咨詢過華碩(見我的往期專欄文章)后推出的bios主要是為了優(yōu)化對5系的支持,既然這樣我就選擇了最新的3810版BIOS。

PS:AMD AM4平臺主板的BIOS更新一個主要特點(diǎn)就是AMD AM4 AGESA 版本的更新,來自維基百科對AGESA的簡要解釋:AMD 通用封裝軟件架構(gòu)( AMD Generic Encapsulated Software Architecture,AGESA ) 是由AMD開發(fā)的程序庫,用于在使用其AMD64架構(gòu)的主板上執(zhí)行平臺初始化(?Platform Initialization,PI)。作為此類主板BIOS的一部分,AGESA 負(fù)責(zé)CPU 內(nèi)核、芯片組、主內(nèi)存和HyperTransport控制器的初始化。這個東西的作用有點(diǎn)類似于intel平臺主板的ME模塊,但ME模塊提供的特色功能更多,且ME模塊本質(zhì)是一個輕量級的操作系統(tǒng),可以在平臺其他部件處于深度睡眠狀態(tài)時啟動并發(fā)揮相應(yīng)功能(后門。。。)。??
? ? 另外通過查詢相關(guān)資料可以確認(rèn)的是,在近期支持uefi環(huán)境較新的A系電腦平臺上,主板bios中的AGESA Code不是以一個單獨(dú)的模塊存在的(之前唯一一個以一整個模塊的形式存在于bios文件中的是Award的產(chǎn)品,且只存在于很老的主板),而是分散在眾多Uefi固件的模塊中一起協(xié)同工作的,且對于不同型號的主板這些模塊不是通用的,所以普通愛好者非廠商技術(shù)人員想要通過修改替換的方式mod AGESA的難度較大。
(2)利用主板提供的usb flashback功能刷新后正常亮機(jī),接著上系統(tǒng)測試,win10不出意外的一切順利,但是win7啟動時出現(xiàn)了A5藍(lán)屏,如下圖:

之前使用Zen2架構(gòu)的3100,win7只需開啟CSM+關(guān)閉安全啟動即可順利安裝使用,升級到Zen3架構(gòu)的U并刷新相應(yīng)支持的BIOS后,雖然bios設(shè)置界面中相應(yīng)的選項還在,但是已然對win7不起作用,核心原因即是新bios中所配套的更高版本的AGESA不能良好兼容win7的acpi.sys所引起的。
此外,一個佐證就是,asus在其官網(wǎng)對該型號主板的說明中也提到,如是使用win7,則需要安裝1代或2代銳龍?zhí)幚砥鳎≧yzen 3XXX及更早型號的處理器)。

在我一陣搜索以后,發(fā)現(xiàn)上述問題其實(shí)一年前就有人向ASUS官方反映過(https://rog.asus.com/forum/showthread.php?125628-Bios-tuf-gaming-b450m-pro-s),見下圖,最終沒有下文。
一點(diǎn)私貨:由于AGESA是由AMD進(jìn)行維護(hù)更新的,這里我傾向于是AMD有意為之,但是asus也未能對此問題進(jìn)行修復(fù),其目的是為了用戶能遷移到更新的操作系統(tǒng),而不是堅守相對陳舊的win7。一個佐證就是,我的銘瑄電競之心B550M+搭配R7-5700X使用最新版BIOS,只需開啟CSM和關(guān)閉安全啟動即可順利安裝使用Win7,顯然,以后者的研發(fā)能力尚能在更新的平臺實(shí)現(xiàn)對win7 acpi的正常支持,asus應(yīng)該也是有這個能力來修復(fù)的。

PS:?因不完全兼容win7的Acpi導(dǎo)致的A5藍(lán)屏和常見的新平臺安裝win7卡logo的故障沒啥關(guān)系,后者一般可以通過開啟CSM及關(guān)閉安全啟動來解決(如果有相關(guān)設(shè)置選項的話),當(dāng)開啟CSM支持后,能夠提供win7中VGA.sys這個內(nèi)核驅(qū)動程序正確加載所需的INT 10H中斷調(diào)用的模擬仿真,而關(guān)閉安全啟動則是因?yàn)閣in7推出的年代太早,本就不支持。
intel自2020年起,在后續(xù)產(chǎn)品中去除了對CSM的支持(uefi本身是intel開發(fā)的,我的intel X58原廠骷髏頭主板可能是最早支持uefi(1.0)的主板,后來吸收了更多廠商,發(fā)展并形成了如今的形態(tài),目前最新的版本為UEFI class?3)??赡苡幸恍┤耸褂眉僽efi模式+關(guān)閉安全啟動的情況下,也能成功能安裝并運(yùn)行win7,大概率是因?yàn)樗闹靼骞ぷ髟趗efi class?2環(huán)境,只因該版本依就可以提供INT?10H的仿真的csm,而class 3則完全去除了csm(一個特征就是很多新筆記本平臺的bios都缺少打開csm支持的選項),因此在安裝win7時必然會卡logo。
去年9月起,微軟推送的win7月度更新補(bǔ)?。▽?個bootXXX.efi進(jìn)行了重新簽名)已經(jīng)支持安全啟動,也就是說,理論上在純UEFI模式下(關(guān)閉CSM支持),開啟安全啟動,也可以正常啟動win7,但實(shí)際由于上述Vga.sys限制的存在(具體請閱讀:https://forums.mydigitallife.net/threads/installing-windows-7-on-the-pure-uefi-systems-without-csm.80876/),需使用技術(shù)手段禁用Vga.sys在啟動階段的加載,并同時事先注入你的平臺的GPU驅(qū)動,雖能啟動到win7平臺,但經(jīng)上述操作后,當(dāng)你處于啟動win7的階段時,屏幕會沒有顯示,且win7的安全模式將不能使用(因其使用Vga.sys作為顯示驅(qū)動程序,除非在安全模式環(huán)境中集成特定廠商的gpu驅(qū)動)。
繼續(xù)剛才的內(nèi)容,又經(jīng)過一陣搜索,我又發(fā)現(xiàn)一篇帖子,如下圖:
https://winraid.level1techs.com/t/solution-win7-8-1-drivers-for-usb-3-0-3-1-controllers-of-new-amd-chipset-systems/33603

這篇帖子本來是解決win7下AMD新平臺的usb3.0/3.1的驅(qū)動問題的,特意提到了某些asus主板板載的Asmedia USB控制器導(dǎo)致的啟動死機(jī)問題并提供了專用的驅(qū)動版本(我之前有篇專欄也是和usb支持問題有關(guān),后來因?yàn)轵?qū)動總裁提供的驅(qū)動安裝程序已將相關(guān)驅(qū)動納入了可選驅(qū)動列表,就沒有再操過心了)。
注意上圖劃紅圈的部分,作者同時提供了一個修改版ACPI.sys,通過替換可以解決win7啟動時的A5藍(lán)屏問題。
如何替換:
替換C:\Windows\system32\drivers\acpi.sys
替換:C:\Windows\System32\DriverStore\FileRepository\acpi.inf_amd64_neutral_476d4b744f1f6916\acpi.sys
馬上下載下來按照作者的描述進(jìn)行試驗(yàn),BIOS設(shè)置依然開啟CSM支持和關(guān)閉安全啟動,當(dāng)使用PE將win7 ISO釋放到安裝盤符并完成替換后重新啟動計算機(jī),加載win7時提示acpi.sys沒有有效的數(shù)字簽名,拒絕繼續(xù)動作。
這里沒有拍照片,留空。
于是按F8鍵進(jìn)入高級啟動模式,選擇最后一項,禁用驅(qū)動程序的數(shù)字簽名,回車,win7的安裝程序開始繼續(xù)執(zhí)行以后的安裝流程,當(dāng)前者自動重啟計算機(jī)后,需要在啟動系統(tǒng)的一剎那狂按F8,依然按上述操作,這樣,最終看到了win7的歡迎頁面并來到了桌面。
到這里,似乎問題已經(jīng)解決了,但是一個很明顯的問題就是每次啟動的一剎那需要狂按F8(失敗率不低)。該如何解決?
通過查詢相關(guān)資料,至少一種可行的解決辦法就是,使用Driver Signature Enforcement Overrider這個工具(https://www.ngohq.com/driver-signature-enforcement-overrider.html)
原理:Windows Vista 和更高版本中要求所有內(nèi)核模式驅(qū)動程序(win7安全模式下加載的sys都屬于此)都要使用數(shù)字證書進(jìn)行簽名。官方的一個臨時解決方案來禁用驅(qū)動程序簽名強(qiáng)制(在系統(tǒng)啟動時按 F8)。Driver Signature Enforcement Overrider 作為一種永久解決方案,通過使用帶有測試簽名數(shù)字證書的 TESTSIGNING 模式來加載未簽名的內(nèi)核驅(qū)動。(注意:這里因?yàn)閍cpi.sys屬于內(nèi)核驅(qū)動,在啟動早期加載,故網(wǎng)上所介紹的在win環(huán)境利用cmd命令禁用驅(qū)動數(shù)字簽名的方法或者是單純開啟測試模式的方法對此類驅(qū)動是無效的)
使用方法:
1.下載DSEO工具(https://www.ngohq.com/dseo13b.exe)。
2.下載雙擊打開,點(diǎn)擊一次next,一次yes之后,來到如下圖這個頁面。

3.選中Enable Test Mode(開啟win7的測試模式),點(diǎn)擊next,完成后,返回上圖界面。
4.接著選中Sign a System File,在接下來的對話框中,輸入acpi.sys的完成路徑(默認(rèn)c:\windows\system32\drivers\acpi.sys),點(diǎn)擊OK(給mod版本的acpi.sys進(jìn)行測試模式下的數(shù)字簽名)。完成后,選擇exit退出即可。
5.完成后重啟電腦,已經(jīng)不需要狂按F8,win7會自動正確的加載到桌面。第一次加載,會發(fā)現(xiàn)右下角有一個測試模式的水印,使用下面的軟件進(jìn)行去除即可(中文界面,使用傻瓜,使用管理員權(quán)限打開操作,完成后再次重啟電腦即可)如下圖。

上述方法,我測試可用。
mod版ACPI文件+DSEO+去水印工具下載:
鏈接: https://pan.baidu.com/s/1CGscwEVoSWPym-RVn_G2zQ?pwd=ewbd?
提取碼: ewbd?