暮色之下txt百度网盘:玩转Insyde BIOS – 黑海豚技术导航

来源:百度文库 编辑:中财网 时间:2024/04/30 01:05:59
转Insyde BIOS             黑海豚发布于:www.vistapc.cn/pid/1270

 Insyde BIOS系统是什么?能够像之前修改AMI BIOS一样对其进行MOD吗?修改Insyde BIOS能得到哪些好处?本文将带大家一起玩转这个新的
BIOS系统。

重要说明

        文中的修改,只是就技术探讨的角度进行,为大家提供动手的参考。修改BIOS存在较大风险,且容易导致笔记本电脑或主板失去保修资格,请谨慎操作。同时本文只限于技术探讨,勿做其它用途,非法使用导致的责任由用户自行承担。

        特别提醒:进行BIOS的刷新修改之前,请务必备份系统原有BIOS文件,以便在操作失败之后进行还原。

        BIOS修改的五大好处:

        1.为系统增加额外的功能;
        2.定制个性化的开机界面;
        3.开启BIOS选项中的隐藏选项,比如丰富超频调节选项;
        4.可以通过修改ID信息安装某些特殊的OEM版操作系统或软件;
        5.锻炼动手能力,提高DIY技巧。

        如何修改Insyde BIOS为我所用?即使你搜遍世界各地的网站,回答都是一个:NO,没有任何资料可以参考。Insyde BIOS一直就好像一个谜,无人可以猜透。那么作为DIYer的我们是否也没有办法呢?当然不是!我们要做的,就是要破解这个谜题。为此,笔者特别对Insyde BIOS进行了一番研究并略有心得。不敢藏私,特借《微型计算机》与大家分享。

搜寻—Insyde BIOS的修改工具

        Insyde BIOS是台湾系微公司开发的BIOS系统,在以前多用于嵌入式设备之中。最近几年,
Insyde BIOS在一些主板和部份笔记本电脑上也有所使用,但目前处于推广前期尚未大规模普及,因此相关修改工具软件在网上几乎没有。这使得很多主板或笔记本电脑用户无法修改BIOS实现其想要的额外附加功能,一时大为郁闷。

        不过,笔者通过研究一些品牌笔记本电脑厂商提供的更新BIOS包,从中提取出了两款好用的官方配套工具软件,在此介绍给大家。

        首先看第一款软件:Insyde Flash(图1)。


图1

        这是Insyde官方的Windows系统刷新工具,新的版本由于含有iscflash.sys和iscflashx64.sys两个sys文件,得以同时支持Windows XP和Windows Vista下刷新(图2)。


图2

        目前能在网上下载到的Insyde Flash只有单纯的刷新功能,而不具备BIOS备份功能,的确让人颇为沮丧。不过,经过笔者的一番研究,发现这个工具软件是可以自己进行二次修改,并使其功能更加强大的,其中的玄机后文自会解开。

        再看下一个工具软件Flashit,这是只能在DOS下运行的刷新工具(图3)。


图3

        如图3所示,利用Flashit可以将名为al90_114.fd的BIOS文件刷入主板。有了这两个工具,我们便可以对Isyde BIOS进行各种DIY了。

改造—Insyde Flash强化使用

        有了工具,自然就有了修改Insyde BIOS的希望。不过正如前面所说,Insyde Flash这个工具功能比较单一,我们需要做的,就是要首先改装这个工具。

        在Insyde Flash文件下有一个名为platform.ini的文件,这是程序配置文件,通过修改这个文件,我们就能对工具软件进行一些功能上的强化与改装。

        笔者在此仅列了出对扩展功能有较大影响的设置选项,文件中的其余部份,读者可根据自己需要酌情更改或无须更改。

        [FDFile]
        FileName=
        BackupName=

        “FileName=”代表刷新工具只会导入名字为afa.fd的BIOS文件进行刷新。如果不输入,则会导入任意名字的BIOS文件。

        “BackupName=”表示程序在刷新过程中先备份当前系统的BIOS为指定的文件名,如果不输入,则不会备份当前系统的BIOS。

        [UpdateBlock]
        PatchFv=0
        FileName=intel.fv
        FileOffset=0
        FlashSize=0
        PhysicalAddress=FFF00000
        FvID=PM45
        IDErrorAction=1

        这是模块升级模式。如果PatchFv=1,则开启该升级模式。如果只想升级BIOS中某些模块,只需要输入模块的偏移量(offset)大小即可。比如将支持Windows Vista激活的SLIC模块直接刷入当前
BIOS,就是非常有意思的事。此时如果FlashSize=0不进行设置,那么在该刷新模式下,会将待刷新模块的所有内容都刷入BIOS。

        [FlashComplete]
        Action=1
        Dialog=0
        Counter=15

        这是刷新完成后的电脑状态配置。Action=1表示完成后关闭系统,Action=2表示重启。Dialog=0表示在刷新时不显示对话框,Dialog=1表示显示对话框,Counter=15则表示显示对话框的时间为
15秒。

        [Logo]
        PatchLogo=0
        FileName=
        GUID=

        这是一个很关键的部分—logo刷新模式设置。如果PatchLogo=0,则表示不开启logo刷新模式,如果PatchLogo=1,则表示Insydeflash工具进入logo刷新模式,这个刷新模式只刷新logo部分。“FileName=”后面输入logo图片的地址,比如C:logo.pcx。图片格式可以是pcx、jpeg、bmp等,如果格式不对应,程序会自动转换成合适的格式进行刷新。“GUID=”代表是否需要单独刷新小
logo的图片,比如在logo中加入一个CPU厂家的标志等,这个时候就需要添加GUID。

        [VARIABLE]
        Flag=0
        SystemManufacturer=0
        BoardManufacturer=0
        SystemProductName=0
        SystemSerialNumber=0
        Uuid=0
        POSTInfo=0
        Version=0
        SLP=0
        Setup=0
        BootPriority=0
        LastBootRecord=0
        AcpiGlobalVariable=0
        SLP2M=0
        SLP2P=0

        这也是很关键的变量配置。Flag=0表示不刷新,1为校验并刷新,2为只校验。如果想刷新下面的部分,首先要设置成Flag=1。

        System Manu facturer是系统制作商,Board Manu facturer为主板制造商,System Product
Name为产品名称,SystemSerialNumber系统序列号以及UUID全局唯一识别号,这些都是OEM信息中非常重要的内容,涉及到保修等一系列售后服务。如果不想更新,都设置为0。如果想单独升级某一个信息,在该信息后面将0改为1。比如要激活OEM版Windows XP就是在SystemManufacturer或者BoardManufacturer中加入厂商的代码。如果要设置SLIC激活Windows Vista,就需要使SLP起到作用。在后文我们有详细例子对其说明。

      利用上面我们提到的配置信息修改方法,想要更改BIOS中的某一部分就非常简单,可以让
Insydeflash按照我们想要的方式去刷新BIOS。

        最后,笔者为大家介绍一个小秘笈— 强化InsydeFlash的功能,打开隐藏窗口。只需要在
platform.ini文件中加入一段文字即可:

        [Option]
        Flag=1

        这样我们就可以打开程序隐藏的一个窗口(图4)。注意看下面,有个option选项,点击之后即可出现原本隐藏的“insyde flash options”,共5个部分。


图4

        option(图5):文件导入和备份,是否清空COMS,是否检查AC适配器和电量,是否检测BIOS的ID,以及以何种模式刷新。


图5

        user interface(图6):包括主对话框设置,刷新完成系统设置等内容。


图6

         ROM protection list(图7):这部分包括了对各模块刷新的具体设置。从这里我们可以看到,
Insydeflash在默认情况下,对受保护的模块是不刷新的,如果需要更新相应的代码,就需要勾选模块前面方块。比如在忘记BIOS密码时,我们要刷新Password密码,就要在该项目前面的方块打上钩,因为我们的新BIOS是没有密码的,这样刷新BIOS后,就等于把密码清除掉了。


图7

        logo(图8):如果要单独刷新开机logo,只需要将patch logo前的方块勾选,然后选择logo图片的地址,点击patch now即可进入到logo刷新模式单独刷新logo。如果要刷新小logo,比如intel标志。方法相同,但是需要加入GUID。


图8

        update FV(图9):只要将需要升级模块地址导入,然后在filename里输入偏移量offset,在
flashsize里输入模块大小,在physical内输入地址。比如我们可以用这个方法来给BIOS刷入一张完整的SLIC表,以便达到激活OEM操作系统的目的(后文有范例讲解)。


图9

        设置完成以后,点击确定,导入要刷的BIOS文件,点击开始即可进行刷新。这种方法是比较直观的,使用方便,不过也有一定局限性。

利器—解密Flashit

        前面我们说到,Insydef lash虽然直观但也有局限性——它只能选择如何刷新,但是很难单独修改一个部分。比如我们想更改UUID,想修改序列号,想单独备份BIOS。这些Insydeflash都是不能轻易做到的,这时就轮到刷新利器Flashit出场了。
Flashit是在纯DOS下使用的小软件,只有400多kB,但是功能异常强大。我们来看如何运用这件神兵才能出神入化。

        Flashit的使用命令格式为:Flashit filename [Option],而使用的关键就是如何配置参数[Option]:

        /U 在刷新过程中显示确认信息
        /N 在刷新完成后不重启计算机
        /S 在刷新完成后关闭计算机
        /AC 不检查是否插入电源适配器
        /AB 检查电池电量的百分比
        /MC 禁止一切检测,即不进行任何检查,直接执行命令
        /PQ 检查当前ROM中的保护地址
        /I:String 升级logo,需要在引导进入DOS系统时载入Himem.sys
        /O:String 输出文件,必须和/I命令一起用
        /LG:String 获得GUID,升级小logo时需要,必须和/I,/WV,/WU参数同时使用
        /B 刷新PEI volume
        /FM 刷新CPU微代码
        /FV 刷新变量Variable
        /FD 刷新DXE
        /FE 刷新EC模块
        /FL 刷新logo
        /FP 刷新密码
        /FN 刷新 OEM NVS
        /FT:value 刷新OEM特别类型内容
        /ALL 整个BIOS全部刷新
        /LF 从另外一张软盘上导入FD文件,FD文件为insyde的BIOS文件默认的格式
        /C 清空CMOS
        /PS 刷新SPI部分
        /PN 刷新 NON-SPI部分
        /E:Offset(Hex),Size(Hex),Address(Hex),模块刷新,按照offset位置和大小来升级对应的物理地址
        /V 校验文件的完整性。用来校验BIOS文件是否完整
        /RV 读取变量
        /RB:Filename 读取二进制变量
        /WV:String 写入变量(ASCII)
        /WU:String 写入变量(UNICODE)
        /WB:Filename 从一个二进制文件中写入变量
        /1 保存当前的BIOS到一个1Mbit文件
        /2 保存当前的BIOS到一个2Mbit文件
        /4 保存当前的BIOS到一个4Mbit文件
        /8 保存当前的BIOS到一个8Mbit文件

        需要注意,我们下载的BIOS包和刷新到主板CMOS中的BIOS文件存在一个8倍的压缩关系,刷新的过程同时解压缩。即1MB的BIOS文件,刷新到主板上以后,其计算方式是8Mbit。所以如果你的主板BIOS文件是1MB,那么你备份当前BIOS用的命令就是Flashit afa.fd /8,这样得到的BIOS才是完整的1MB大小,如果加的参数是/1,那么备份出来的BIOS文件的大小只有128KB,而非1MB。

        /DI 不显示ID
        /UU:[String] 比较UUID
        /SE:[String] 比较序列号
        /GU:[String ] 比较GUID
        /PR 检查当前ROM的区域MAP
        /BIOS 刷新BIOS区域
        /GbE 刷新GbE区域
        /ME 刷新 ME区域
        /Desc 刷新DESC区域
        /EV 擦除变量 (ASCII)
        /BEEP 打开蜂鸣
        /WH:Filename 写入HDCP密钥

        其实Flashitde的使用也很简单。比如我们要将当前BIOS备份为1MB大小的文件,则需要执行
Flashit afa.fd/8,这样就会将当前的BIOS备份为1MB的afa.fd(文件命名可随意)文件。如果想将
afa.fd这个ROM文件刷入系统,则需要执行Flashit afa.fd/all/mc,可将文件全部刷入主板BIOS芯片中,而且在刷新时不做检测,直接刷入。

        再举个例子,我们想写入UUID (通用唯一识别码,Universally Unique Identifier,作为机器的唯一识别代码),只需要执行Flashit/uu:AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDD/wv,注意
UUID是一个32位的字母和数字混合的字符串,这样便可以更改笔记本电脑的UUID了。同理,要刷入
logo图片,只需要执行Flashit/i:logo.pcx,这里logo.pcx是是事先做好的logo图片。

        通过这些参数,便可以实现各种不同的功能,对于刷新Insyde bios来说,是非常方便的。

“花样”—教你刷新Insyde BIOS

        有了上面两个工具软件,我们就开始动手了。下面让我们来看一个具体的例子—刷新BIOS激活OEM版Windows Vista。

        首先看Insydef lash在默认情况下的刷新配置(图10)。


图10

        我们可以看到,虽然是全部刷新,但是受保护的PEI、Variable、EC、Password、OEM Data等部分是不刷新的。

        这里,笔者以一款笔记本电脑为例,在安装了OEM版Windows Vista之后,出现了无法激活的问题(图11),这时就需要刷入SLIC表来激活OEM版Windows Vista。


图11

        SLIC全称是Software Licensing Internal Code,即软件许可内部码。要有效识别一台机器是否为 OEM合法用户,可以在每台预装操作系统的机器主板BIOS里写入特定的信息,来标识这是一台OEM合法用户的机器,这样的信息就是SLIC。不同OEM厂商的SLIC不同,所以一般情况下OEM操作系统不能混用。

        安装了该笔记本电脑OEM Windows Vista系统盘以后,提示没有激活。为什么会这样呢?在系统信息查看工具everestultimate中可以看到,ACPI右面的NSLI部分定义为Unkown,查看详细信息发现表长也是374字节,这就是一个SLIC表的长度(图12)。


图12

        笔者用HWDIRECT分析工具查看NSLI表的内存地址,发现其中是空白,自然无法完成激活
OEM Windows Vista的重任(图13)。


图13

        要解决这个问题,首先想到更新BIOS,不过在使用Flashit将BIOS从1.10升级到1.14之后,
SLIC表仍然为空(图14、15)。


图14


图15

        BIOS版本已经从1.10升级为1.14。各种OEM信息都没有改变。但是ACPI的SLIC表部分,依然是NSLI空白,无法激活Windows Vista。看来Insydeflash或者Flashit保守刷新是不能完成刷新SLIC的任务的。


图16


图17

        其实,此时将Insydeflash中刷新配置的OEM Data部分勾选,将新BIOS1.14版中的SLIC表也刷新到电脑中即可。因为SLIC表也属于OEM的内容,如果我们将OEM Data的数据全部刷入的话,隐藏的SLIC表就会显身了(图16、17)。


图18

        从图18可以看出这是一张非常完成的SLIC表,具备了激活OEM Windows Vista的要素。再次进入系统之后,可以发现OEM操作系统已经被完美激活(图18)。

进阶—修改Insyde bios的DMI信息

        通过前面刷新BIOS的例子,我们可以为BIOS增加一些全新的功能。那么这样做是不是已经完美呢?首先来看一张BIOS的OEM信息图(图19)。


图19

        从图19可以看到,除了几条无关紧要的信息外,几乎所有的OEM信息都丢失了,这会影响到保修等一系列的事情。为什么会出现这种情况呢?原来我们在将BIOS全部内容刷入的时候,相当于厂家给主板BIOS芯片刷新BIOS,这样的主板类似于笔记本电脑的维修备件,是不含有OEM信息的。

         如果想自己写入这部分信息,就需要发扬一下DIY精神了。当然,可以利用Flashit来修改一部分,比如前面我们提到的利用Flashit/uu:[string]/wv来修改UUID。但是Flashit对于修改DMI信息来说,就显得势单力薄了。它的强项在于刷新BIOS而不是修改DMI信息。而且Flashit要检测主板南桥北桥芯片和BIOS芯片的类型,对于一些芯片支持不是很完善,这样容易造成修改UUID失败。

什么是DMI

        DMI是Desktop Management Interface的缩写,也就是桌面管理界面,它含有关于系统硬件的配置信息。DMI充当了管理工具和系统层之间接口的角色。它建立了标准的可管理系统,方便电脑厂商和用户了解系统。DMI的主要组成部分是Management Information Format (MIF)数据库,这个数据库包括了所有有关电脑系统和配件的信息。通过DMI,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。品牌机和笔记本电脑的OEM版的操作系统几乎都通过DMI信息对机器进行验证。

        因此,对于Insyde BIOS的DMI信息修改而言,我们可以寻找新的工具来完成。笔者向大家重点推荐使用SMBCFG来修改。

        尽管SMBCFG是修改Phoenix BIOS的工具软件,但它对于Insyde BIOS的支持非常不错,只是对最新的Insyde H20 BIOS来说,有些内容无法修改,但是仍然可以修改绝大部份内容。

Step 1

        在纯DOS下执行SMBCFG并回车,进入SMBCFG编辑状态,我们可在BIOS(Type00)内的BIOS Version版本信息V1.14处加上激活OEM Windows XP需要的字节,比如Acer System或者Fujistsu
Siemens Computers等。按F10键将修改内存保存到BIOS中,达到激活对应的OEM Windows XP的目的(图20)。


图20

Step 2

        按方向键将光标移到System项,回车进入编辑菜单,可以修改产品名称、序列号和UUID,修改完成后,按F10键将修改内容保存到BIOS中(图21)。


图21

Step 3

        按方向键将光标移到Enclosure/Chassis项,回车进入编辑菜单,可以修改资产标签等内容,比如在Asset Tag Number项中填入你的名字。同样在修改完成时,按F10键将修改内容保存到BIOS中。同理,还可以进入Procerssor项对CPU的一些信息进行修改(图22)。


图22


图23

         除了SMBCFG之外,要修改Insyde BIOS的DMI信息,我们还可以使用DMICFG(图23)、
AMIDEDOS(图24)以及DMI236(图25)等工具软件来进行修改。这些工具的使用方法与SMBCFG大同小异,限于篇幅,我们就不在此一一讲述了。


图24


图25

        通过一系列的修改后,可以看到已经丢失的DMI信息全部回来了,而且添加了自己想要的字节,添加了资产标签,同时激活了对应的OEM Windows XP等。至此,关于Insyde BIOS的修改技巧就基本介绍完毕了。对BIOS的MOD虽然是个辛苦的技术活,但毫无疑问这是最能体现DIY精神的行为之一,而且成功之后的喜悦也会让你得到极大的满足,有兴趣且动手能力不错的用户不妨试试。

2010年1月26日 分类: 经验分享 标签: ACPI, bios, Update