远景论坛积分规则、等级制度说明远景服务 - 免费开通您的远景博客远景论坛 - 美化区Q&A展望IT,尽在远景资讯(开放投递)
展望Windows7 关注Win7X.Com赞助远景,在远景网站上刊登广告iPhone 权威中文论坛-WeiPhone远景论坛商务合作与联系方式细则
2009年PCBETA.COM版主招聘启事看电影,就用快乐影音!远景招募首席美工设计师 详情请进远景论坛制度章程(200810)
赞助远景,在远景网站上刊登广告赞助远景,在远景网站上刊登广告赞助远景,在远景网站上刊登广告赞助远景,在远景网站上刊登广告
发新话题
打印

【6-5】VISTA 添加 SLIC 模块 【多SLIC】【PCI类型】[开源]

本主题由 visters 于 2007-7-1 13:20 打开

【6-5】VISTA 添加 SLIC 模块 【多SLIC】【PCI类型】[开源]

VISTA 添加 SLIC 模块 【SLIC】
【PCI类型】




免责声明:
本人致力于 BIOS 研究,纯属个人兴趣爱好,并不想从中牟取任何利益 !
本人提供的方法和程序,也许有漏洞,仅供参考。
刷BIOS必然有风险,使用者必须自行承担该风险!
因为使用了本人提供的方法和程序而造成的任何损失,本人不承担任何责任。
本人提供的方法和程序是为了方便用户给BIOS添加SLIC功能,并非是为了鼓励使用盗版!
请在试用后24小时之内删除 !如经济许可,请支持正版!

VISTA 添加 SLIC 模块【单、多SLIC】可以用于AWARD、AMI的BIOS。
          使用该模块,无须担心空间不足的问题(因为被替换的PCI模块大小都在10KB以上)


操作流程

AMI系列(以ASUS P4P800-SE为例子):

1MMTOOL 3.12打开ROM文件(记得ROM文件的后缀要为.rom),然后,点中“ID”中的20模块(有3个),然后,按“Browse”选择要解压的位置,然后按“Extract”解压。

        


2、用WINHEX搜索“PXE”、“NETWORK”、“ETHERNET”等字符串,如果搜索到任意一个,那个PCI ROM就是网卡的BOOT ROM了。
     很明显,RunLoc”为11AB:4320的那个PCI OPTION ROM就是网卡的BOOT ROM了。

     AMI比AWARD方便的地方,就是根本不用查找它的VENDOR IDDEVICE ID,你肯定某个PCI ROM是网卡的BOOT ROM,那就行了。看看MMTOOL 中的对应该PCI ROM的“RunLoc”,那个值就是VENDOR IDDEVICE ID了:
本例子中:“RunLoc”=11AB:4320
VENDOR ID =   11AB
DEVICE ID   =  4320


        


3、用ISA & PCI 模块替换SLIC工具【SLIC专用】(下载:见2楼)来修改Multi-Add-SLIC.bin(下载:见2楼 Vista Multi-Add-SLIC Module【包括源代码】.rarVENDOR IDDEVICE ID

执行Multi-PCI.exe,按“Choose ISAPCI.BIN”,选择下载到的“Multi-Add-SLIC.bin”,在“Vendor ID”、“Device ID”输入上面找到的数据,然后按“Create ISAPCI.BIN FILE”就可以了!


4、然后,在MMTOOL中,点中“RunLoc”为11AB:4320的那个PCI OPTION ROM,点“Replace”,然后,按“BROWSE”选择修改后add-slic.bin,然后按“Replace”替换。
5、记得点“Save Rom”保存ROM
6、有些AMI BIOS是不能改动位置的,请慎用!




AWARD系列以我的MSI K8MM-V 为例子


1
、解压下载到的BIOS

      

2
、将CBROM.EXEW7142vms.160、Multi-Add-SLIC.bin(下载:见2楼放到同一个目录下面,如C:\OEMSLIC\k8mmv下面。此时,在该文件夹的空白处按右键,选择创建快捷方式,在“请键入项目的位置”中输入“cmd”,然后按两次回车键就可以了。在新建的快捷方式处按右键,选择“属性”,然后将“快捷方式”的“起始位置”清空,按“确定”就可以了。



3
、执行cmd.exe快捷方式(下面以cmd.exe来代替描述),输入:

       cbrom W7142vms.160 /d



       然后解压PCI模块:cbrom W7142vms.160 /pci extract

cbrom V1.55 [10/12/05 Release] (C)Phoenix Technologies 2001-2005

PCI ROM - - - [A] : pxeb.238
PCI ROM - - - : 6420r450.ROM
       这里输入:a然后按回车键
       很明显,带PXEB字样的pxeb.238就是网卡的BOOT ROM了。如果不清楚的话,可以解压这两个模块,用WINHEX搜索“PXE”、“NETWORK”、“ETHERNET”等字符串,如果搜索到任意一个,那个PCI ROM就是网卡的BOOT ROM了。

  




4、在该模块中搜索“PCIR”(这个PCIR的位置,可以根据18H处的值(4000)来确定,它反过来写就是PCIR的偏移了(0040),其后面的数据假设为YYXX BBAA形式,其中:

XXYY
(注意都是倒写的)=VENDOR ID
AABB = DEVICE ID



      
       从上面可以得出:
VENDOR ID = 1106
DEVICE ID
= 3065


5
ISA & PCI 模块替换SLIC工具【SLIC专用】(下载:见2楼)来修改Multi-Add-SLIC.bin(下载:见2楼 Vista Multi-Add-SLIC Module【包括源代码】.rarVENDOR IDDEVICE ID

执行Multi-PCI.exe,按“Choose ISAPCI.BIN”,选择下载到的“Multi-Add-SLIC.bin”,
在“Vendor ID”、“Device ID”输入上面找到的数据,然后按“Create ISAPCI.BIN FILE”就可以了!

              

6
、执行以下命令来导入修改好的add_slic.bin

       cbrom W7142vms.160 /pci Multi-Add-SLIC.bin
       此时,再执行一次:

cbrom W7142vms.160 /d

       如果发现PCI ROM的数量多了一个,证明Multi-Add-SLIC.bin模块中的VENDOR IDDEVICE ID没有修改好,需要重新检查以上的数据。只要正确了,肯定不会多出一个模块的




       有些特殊的BIOS,在导入add_slic.bin这步后,BIOS会出现异常,具体现象是用/D来查看模块,会发现只有system bios和另外2~3个模块在,剩余的模块都消失了。在这里提供一个解决的方法:

在导入add_slic.bin,执行释放网卡BOOT ROM模块的步骤:
cbrom W7142vms.160 /pci release
如果有多个模块让你释放,记得选网卡BOOT ROM!!
然后再导入就可以了!



刷完BIOS后必须要做的:
    1、将修改后的该.rom文件刷进主板的CMOS后,重新开机,按DEL、F1、F2或者其他键进入CMOS设置,在“BOOT”(或其他类似的)菜单中,一定要将“ SLIC Mod”设置在“HARD DRIVE”的前面。按F10保存就可以了!

    如果找不到“SLIC Mod”如果有“LAN”、“NetWork”之类的与网络有关的字样,把它设置在“HARD DRIVE”前面。可能还要修改“Integrated Peripherals”(整合周边设备设定)中的“Onboard LAN Option ROM”设置为“Enabled”,如果没有的话,可以不用修改


    2、如果启用了该模块后,会黑屏(不是那种刷了BIOS就黑屏的情况),这时,仅需要在CMOS设置中将该模块禁用就行了。


解释:


      替换的是网卡的BOOT ROM,它在被替换后,仅BOOT ROM不起作用了,网卡还是可以正常使用的。该BOOT ROM仅对无盘工作站之类的起很大的作用,绝大情况下我们是用不到的(或者说,仅网吧可能用到)
       而且,现在出厂(包括2年前出厂)的主板,默认情况下,都是禁用BOOT ROM的,也就是说BOOT ROM一直都没有起作用。如果起作用的话,你会看到一堆的E文,然后就很郁闷的在那画面等待2分钟左右!!而且,你等来的结果是,什么作用都没有!

      另外,如果是单独网卡的话,可以看到网卡的右上角一般是空的(RMB 100块以下的网卡),那里就是插一个专用芯片(RMB 5块)的,主要用来写BOOT ROM,还原卡也必须要用到这个芯片!!

       以上的是针对主板集成网卡的情况写的,如果,你使用的是单独的网卡,可以参考下面的帖子(BY ZHAOLIANG):

http://www.vistafans.com/thread-146268-4-1.html

34楼;该方法实质是:将模块同样刷进BIOS,只需要VENDOR IDDEVICE ID对应网卡就行了!
      如果你的单独网卡,上面有BOOT ROM专用的芯片,可以用与网卡对应的刷新工具,将VISTA 添加 SLIC 模块刷进去(有些网卡要改文件的大小,有些却不需要)


多SLIC的使用补充:开机后,如果是初次使用,只要有个可以正常使用的硬盘,会提示“Press F5 to Change ......”,这时按F5可以进入设置画面(简陋了点)。
如果你不修改,默认是使用ASUS的SLIC!
按F5后,可以选择显示“Press F5 to Change ......”这个信息,也可以选择不显示。
选择不显示后,如果想重新显示,可以这样做:
开机出现BIOS的自检画面后,按F5


---------------------------------------------------------------------------------
关于ASUS P4P800SE 、ASUS p5gpl-x休眠问题的解释
引用:
原帖由 YuJJzhong 于 2007-5-22 08:53 发表
关于睡眠问题
其实有的不是加了PCI模块才出现的问题,是本身的设置或与VISTA有关,下面是一个网友找到的答案:
微软官网找到的提示。是某些USB 鼠标设备无法与 Windows Vista 中的睡眠模式一起正常使用的原因!!
在设备管理器中把那个USB鼠标中电源管理里允许此设备唤醒计算机这个选项前面的勾去掉就可以正常睡眠了!!!

我把单位的同方电脑实际操作了一下证实是如此。我单位买的同方电脑本身就带正版VISTA,但休眠也有问题,用这个方法解决了!
---------------------------------------------------------------------------------

[ 本帖最后由 dkpnop 于 2007-6-5 23:16 编辑 ]
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
中资源

VISTA 添加 SLIC 模块【PCI类型】

下载专用帖:

----------------------------------------------------------------------

--------------------------- SLIC】------------------------------


下载[包括源代码]         [更新日期:2007-6-5]



[更新历史]

2007-6-5
修正了在某些带SATA RAID ROM的主板上,导致SATA RAID找不到硬盘的BUG。
具体为:在模块加载新的GDTR前,保存原来的GDTR,在模块运行后,再恢复回原来的GDTR。

2007-6-4
修改SLIC地址的生成机制(包括原生SLIC的地址):直接使用PCI模块本身的SLIC表在物理内存的地址,添加到RSDT后面。
修改原理:PCI模块在被调用时,是处于未压缩状态的,在执行BOOTSTRAP的过程后,模块中所有的内容,并没有被擦除,即PCI模块中的内容,包括SIC表的内容还存在于内存中,并且该内容是完整的。此时,就可以将SLIC表所在的地址,添加到RSDT后面。
PCI模块所在的地址,具体可以参考ACPI标准(
http://www.acpi.info)中的Sample Memory Map。
2007-5-23
修正了模块里面的SLIC表的内容,并添加了修正SLIC表的校验码的功能。
2007-5-22
在VISTAFANS首发Vista Multi-Add-SLIC Module







ISA & PCI 模块替换SLIC工具【多SLIC专用】[BY:zhaoliang]



http://zhaoliang518.ys168.com




--------------------------- 【单SLIC】-----------------------------------------

下载[包括源代码]         [更新日期:2007-5-18]





[更新历史]
2007-5-18
由于部分AWARD主板的8800:AE00等区域是只读的,只能使用回原来的堆栈保存伪GDTR。
修正了原来堆栈操作的GDT_LEN数值错误的问题。
2007-5-17
修改了A20的重大BUG。因为A20在不同的主板下,在进入本模块时存在着关闭或者开启的状态,原来的代码没有作判断,所以会导致出错。
修改了GDTR中的参数。
2007-5-16
修改了保存伪GDTR的内容的方法,放弃使用不稳定的堆栈操作。
2007-5-15
在VISTAFANS首发Vista Add-SLIC Module For AMI BIOS。



ISA & PCI 模块替换SLIC工具      [BY:zhaoliang]


【下载地址】
http://zhaoliang518.ys168.com
http://my.mofile.com/oemslic

【更新历史】



2007-5-20

原来的版本,模块文件必须和工具在相同的目录,
现在改为可修改任意目录的模块文件。
在 SLIC 文件夹里放上了匹配的证书文件。


--------------------------- --------------------------- --------------------------
--------------------------- --------------------------- --------------------------


fasmw167.rar是ASM编译器,与NASM的语法有很大的不同。







AMIBCP (7.0 、7.5 )打包:






--------------------------- --------------------------- --------------------------
--------------------------- --------------------------- --------------------------



[ 本帖最后由 dkpnop 于 2007-6-5 23:18 编辑 ]
附件: 您所在的用户组无法下载或查看附件
有关硬盘中,保存多SLIC的设置信息的位置的信息:

数据恢复之Fat篇.pdf







[ 本帖最后由 dkpnop 于 2007-5-23 13:53 编辑 ]
附件: 您所在的用户组无法下载或查看附件
保留~~~~~~~~

[ 本帖最后由 dkpnop 于 2007-5-23 06:19 编辑 ]
附件: 您所在的用户组无法下载或查看附件

【特殊BIOS特殊记录】

     下面使用的PCI模块都事先修改了Vendor ID、Device ID。所使用的工具可以在2楼下载。



AMI BIOS


1、ECS精英  P4VXASD2


用amibcp v7.5版来修改,执行以下命令:


amibcp75 xxxxxx.rom /i PCI模块文件 20 /m 8139 10ec

/i                       表示添加一个模块

PCI模块文件       该PCI模块,最好放在同一个目录中。

20                      模块ID

8139 10ec          DIDVID ,因为AMIBCP70、75 中,VID、DID是与MMTO

                           OL 3.12显示的格式相反的。




[ 本帖最后由 dkpnop 于 2007-5-29 06:37 编辑 ]
我也保留一层楼!用的就是张亮提供的:ISA模块和ISAPCI_Tools吧?

[ 本帖最后由 shenbifei 于 2007-5-15 13:58 编辑 ]
附件: 您所在的用户组无法下载或查看附件
这个当然要顶
引用:
原帖由 shenbifei 于 2007-5-15 13:53 发表
我也保留一层楼!用的就是张亮提供的:ISA模块114052和ISAPCI_Tools吧?
ISAPCI_Tools是ZHAOLIANG写的。
该PCI模块[AMI]由我来维护!
保留一层,呵呵。
看操作流程,有一点不明白:award的,为什么没写完说明?如果发现PCI ROM的数量多了一个,证明add_slic.bin模块中的VENDOR IDDEVICE ID没有修改好!怎么就没下文了。。。
ami的:直接Replace原来的模块?那网卡是不是不能用了?

[ 本帖最后由 sdc 于 2007-5-15 14:20 编辑 ]
晚了一步!!!!!!!!!1
晚了也要顶~~~~~~~
引用:
原帖由 sdc 于 2007-5-15 14:05 发表
保留一层,呵呵。
看操作流程,有一点不明白:award的,为什么没写完说明?如果发现PCI ROM的数量多了一个,证明add_slic.bin模块中的VENDOR ID、DEVICE ID没有修改好!怎么就没下文了。。。
ami的:直接Repl ...
是网卡的BOOT ROM不起作用了,该模块仅对无盘工作站之类的起很大的作用,一般我们是用不到的(或者说,仅网吧还会用到)
发新话题

远景部分网络带宽及服务器由[中客数据] - [海波数据] 所提供
Discuz! Support Team官方提供远景论坛技术支持