迅维网

标题: 论intel的me模块与BIOS分离合成(原创,申请加精) [打印本页]

作者: linglongx    时间: 2018-3-18 16:03
标题: 论intel的me模块与BIOS分离合成(原创,申请加精)
             什么是ME
        为什么现在的主板BIOS爱坏,而且坏得最多是intel.就是因为intel搞的ME模块自动配置。先说说什么是ME模块,ME模块其实就是桥里面负责主板高级电源管理与各项调度的电路单元。你可以把ME模块想像成一个单片机;当然是单片机就需要有程序才能运行;所以就有了ME固件。(通常这个ME固件是存储在BIOS芯片中的,也有采用单独ME存储芯片的。)

ME模块是如何工作的呢!首先,主板上电后桥先读取执行BIOS中的ME程序,然后ME程序再加载BIOS中的配置数据。
      如果找到配置数据则直接加载配置数据来配置自身的行为。这其中就包括一序列的时序配置、CPU工作电压、风扇转速控制等等。(举例说明,桥发出S3、 S4等上电信号后延时多久再检测是否收到CPU电源管理芯片发出的电源好信号VRM_PG ,如果检测不到或是程序本身损坏造成检测出错就会采取相应的措施,比如断电重启。)
       如果这个配置不存在,ME程序就会根据当前主板的硬件环境重新生成配置数据并写入BIOS芯片,以备以后上电直接使用。 (注:从而BIOS芯片由以前的只需要读取数据变成了读写数据。 因为有了这个写,就不可被免BIOS芯片中数据出错的可能。相较以前的只读模式,BIOS程序损坏的概率就会成倍的增加。)

      通常ME模块只需要一次自动配置生成一个配置数据,然后一直会使用这个配置数据。在以后每次的运行中只对这个配置数据进行维护,不会再自动重新生成配置数据。如果配置数据出错了,就会使ME模块这个调度中心不知道该如何工作,就会出现各种奇奇怪怪的故障现象。
ME的自动配置过程是如何启动的呢?前面讲了,在检测到配置数据为空白的情况下才会自动生成配置数据。在这儿我们先讨论一个现象,为什么大家刷在论坛下载的别的朋友备份的BIOS好多时候都是不行的,而刷官网的下载的BIOS就修复了呢? 想必大家现在已然明白;那是因为备份的BIOS是带有原机ME配置数据的,但这个配置数据因为主板PCB版本的差异,可能并不适合自己的机器。而官网下载的BIOS文件中ME程序部份相关的配置数据是空白的。这儿牵扯到一个概念:不带配置数据的ME程序,我们暂且叫它纯净ME吧!主板刷入带有纯净ME的BIOS程序后,第一次上电就会启动自动配置,这个配置过程表现的现象为:按下电源开关主板上电,过几秒钟后主板会断电后自动重新上电然后亮机。如若插有主板诊断卡,表现为跑码几个数字后断电自动上电然后重新跑码亮机。


      现在我们讨论一种可能的假设:假如BIOS芯片中存储ME配置数据的区块刚好有了一些物理损坏,会出现什么情况呢?首先当然是主板无法启动,(不然也发现不了情况。)然后我们在维修过程中就会找BIOS程序刷写。刷写后可能就亮机了,但在使用过程中当配置数据再次存储到了坏的区块.主板又over 了。此处还有一个猜想,就是当BIOS芯片的外围电路出现问题造成BIOS工作条件不稳定时,桥在读写ME配置数据时会不会造成ME配置数据的损坏呢?

        如何得到带纯净ME的BIOS程序呢!首先当然是从主板官网下载了。那官网下载不到时怎么办,这时我们就要想办法净化别的朋友备份的BIOS文件中的ME。(这儿就是大家通俗讲的BIOS分离合成了) 如果只是怀疑在修主板BIOS中的ME固件损坏也可以备份出BIOS再合成进去一个纯净的ME





       ME的分离、净化、与合成:

              一.要用到的工具;

                               1. Intel自家的Flash Image Tool工具;

                                2.   UEFITool

                         是的,只要这两个工具足够了,没有那么复杂的。


           二.ME的分离与净化

                      1.  ME的版本号
                         要合成ME首先得分离出适合自己主板的ME固件,如何知道ME固件是否适合自己的主板呢?原来intel的ME固件是有版本号的。ME的版本号如下面所示分为4个字段:

                     AA. BB. CC. DDDD


     其中AA代表的数字为主版本号,BB代表的数字为副版本号,CC代表的数字为辅助版本号,DDDD代表的数字为修订号。


        这儿先根据ME的版本号讲一下ME固件的替代原则,理论上只要ME固件的主版本号与副版本号一样就可以替用,而不用去管辅助版本号与修订号。原则上最好只用相同主版本号与副版本号、辅助版本号比原辅助版本号高的ME来替用。最保险的办法当然是所有版本号相同的替用。(ME固件是可以用intel的工具单独升级的。)经过试验有些主板只要ME的主版本号相同,采用高副版本号的ME也可以正常替用。


        那么如何得知道自己主板使用的是哪个版本的ME呢?这就该UEFIToo上场了。首先我们打开UEFITool工具,把下载的或是备份出来的BIOS文件拖入UEFIToo工具中,我们以华硕P8H61-M-LX主版BIOS为例,如下图:




打蓝线的就是ME的版本号。


               2.    FlashImage Tool工具的选择


         FlashImage Tool工具是作什么用的呢,它就是我们的主角,ME的分离与合成工具。针对不同版本的ME要选择使用不同版本的Flash Image Tool工具。

原则上应该选用主版本号与ME的主版本号相同的,副版本号与ME的副版本号相同或是高的Flash Image Tool工具。


          3.   ME固件的分离

         ME固件可以用16进制文件编辑器手动进行分离,这种分离出来的ME固件就不可能是纯净的了.今天我们只讲采用intel自家工具分离的方法。

我们打开Flash Image Tool工具将BIOS文件拖入其中,就会自动在工具文件夹中生成一个与BIOS文件同名的文件夹。如下图所示:




下面我们看一下此文件夹的目录结构如下面两张图:





     现在我们得到了想要的ME固件。


             4.    ME固件的净化(版主对此法有异议)


            当你得到一个单独的ME固件时,最好是把它净化一下,因为你可能并不知道这个ME固件是否纯净。何况ME固件的净化也是很简单的事情。

            你只要与上面第3小节一样把这个单独的ME固件拖入Flash Image Tool工具即可。同样会在工具文件具中生成一个与ME模块同名的文件夹。

     看下图:






                   于是我们得到了自己想要的纯净ME


                    三.      ME



                 严格来讲应该是把ME固件合成到BIOS文件中去。同样用到我们的主角Flash Image Tool


                 现在不再另外做文字介绍了,请看图示:








        

        


        

        




      


     

     




     Flash Image Tool
Flash Image Tool V2.7z (242.44 KB, 下载次数: 49)