创建博客 登录  
 关注
   显示下一条  |  关闭

Feel Good Inc.

Alex. Na. R的小地方……

 
 
 

日志

 
 

DSDT教程,第一次更新,提取原始DSDT、解决BIOS重置问题  

2010-03-30 22:25:06|  分类: 苹果派/Apple Pie |  标签: |字号 订阅

刚刚安装完雪豹进入桌面,大部分的人都会发现此时的系统还只是个没有声音、不能调整分辨率、没有显示特效、甚至无法联网的“裸苹果”,再一重启,连BIOS也被重置了……相信很多人都会马上迫不及待地去kexts.com寻找驱动,不过别急,我们先从DSDT开始,一步一步地通过修改这个神奇的文件来逐渐完美我们的黑苹果。

Step 1. 提取DSDT

这里我们需要用到的软件是Everest,下载之后解压,直接运行Everest.exe打开软件。

DSDT教程,第一次更新,提取原始DSDT、解决BIOS重置问题 - Peter Forelli - 极光星空-B-sides

根据图中指示的步骤,把DSDT的bin文件保存在桌面上。

这时,Everest用来提取DSDT的任务就完成了。

 

Step 2. 反编译出最初的DSL文件

从现在开始,我们就要用这个叫做DSDT Patcher的软件对DSDT进行修改和编译了。

由于软件没有提供bin -> dsl直接转换的功能,本人也并不敢确保bin和aml的内容完全一样,所以我们先把bin先转换成aml文件。

下面以我自己的DSDT为例:

DSDT教程,第一次更新,提取原始DSDT、解决BIOS重置问题 - Peter Forelli - 极光星空-B-sides

 

DSDT教程,试发,先上图,文字稍后再补 - Peter Forelli - 极光星空-B-sides

按照图中的步骤选择源文件和输出目录,这是软件操作的基本步骤,以后的破解步骤就不再重复了。

 DSDT教程,试发,先上图,文字稍后再补 - Peter Forelli - 极光星空-B-sides

把右面破解的选项全部取消掉(因为这个软件的功能很不完善,所以我们采用手动破解的方法),然后点击"Patch AML"。

DSDT教程,第一次更新,提取原始DSDT、解决BIOS重置问题 - Peter Forelli - 极光星空-B-sides 

糟了!编译失败!显示1 Errors, 1 Warnings.

我们把显示的信息复制出来看看:

dsdt.dsl   354:     Method (_WAK, 1, NotSerialized)
Warning  1080 -                 ^ Reserved method must return a value (_WAK)

dsdt.dsl  6247:                     Store (Local0, Local0)
Error    4050 -                                 ^ Method local variable is not initialized (Local0)

ASL Input:  dsdt.dsl - 7109 lines, 221419 bytes, 2621 keywords
Compilation complete. 1 Errors, 1 Warnings, 0 Remarks, 836 Optimizations

这里显示有两个问题:WAK和Local0。

那么接下来我们就把这两个问题修复。

DSDT教程,第一次更新,提取原始DSDT、解决BIOS重置问题 - Peter Forelli - 极光星空-B-sides

点击右面的"Fixes"按钮

DSDT教程,试发,先上图,文字稍后再补 - Peter Forelli - 极光星空-B-sides

把对应的这两个补丁勾上,然后点"OK"。

接下来把桌面上刚才编译错误留下的临时文件都删除,再点击"Patch AML"。

成功了!0 Errors, 0 Warnings.

DSDT教程,第一次更新,提取原始DSDT、解决BIOS重置问题 - Peter Forelli - 极光星空-B-sides

接下来我们要做的就是把无损的原始DSDT转换成DSL文件。 

DSDT教程,试发,先上图,文字稍后再补 - Peter Forelli - 极光星空-B-sides

选择D/C DSDT选项卡,选择刚才修补好的fixeddsdt.aml文件,在下面选择Decompile (to DSL)选好输出目录后,点击D/C……

这时我们得到的dcpdsdt.dsl就是我们要的原始DSDT信息了。

DSDT教程,试发,先上图,文字稍后再补 - Peter Forelli - 极光星空-B-sides

 

Step 3. 修复RTC设备,纠正BIOS重置的错误

用记事本打开我们得到的DSL文件,按Ctrl+F搜索Device (RTC)字样。

DSDT教程,试发,先上图,文字稍后再补 - Peter Forelli - 极光星空-B-sides

 

这样我们就找到了RTC的位置。

我们需要修改的有两个地方。先把IRQNoFlags行和下面的参数删掉,再把Length字段改为0x02(如果有多处一般只修改图中的一处即可)。

我们来对比一下原始代码和修复后代码:

 DSDT教程,试发,先上图,文字稍后再补 - Peter Forelli - 极光星空-B-sides

原始代码↑

 

 DSDT教程,试发,先上图,文字稍后再补 - Peter Forelli - 极光星空-B-sides

修复后代码↑

点击保存,这就是我们制作的可以修复BIOS重置的DSDT文件。

练习一下:用刚才讲过的D/C功能编译一个dsdt.aml文件扔到Boot Think或者变色龙里面试试看,重启后BIOS重置的问题解决了!这就是我们的初步成果。通过DSDT还可以加载显卡、声卡等信息,使Mac OS更好地识别你的PC配置,使系统更像一个真正的Mac!而这就是我们最终的目的。

  评论这张
转发至微博
转发至微博
0   分享到:        
阅读(30178)| 评论(31)| 引用 (4) |举报

历史上的今天

相关文章

最近读者

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--相关文章--> <#--历史上的今天--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012