MaciASL 2015-01-07 RehabMan 维护版 | DSDT编辑工具

这一版的MaciASL是有RehabMan 在维护的,2015年1月7号更新了一版,具体更新了什么也不知道,反正用最新的就对了。

MaciASL是一款在MAC OS X下编辑、编译AML的工具,图形化的操作界面,并且支持补丁源,方便修复编译错误。

软件特性

  • 语法高亮
  • 活动目录树
  • 支持OS X 本地保存和恢复
  • 文件修复 File patching
  • 在线修复功能
  • 文本编辑器可自定义布局
  • 编译时自动提示错误

MaciASL DSDT Edrtor 1.3 RehabMan 维护版 | ACPI图形编译工具

MaciASL是一款哎OS X下修改、编译ACPI文件的工具,比如DSDTSSDT等等,可以说是一款玩黑苹果的必备工具。类似的软件还有DSDT Editor,这软件使用JAVA写的可以跨平台运行,但是已经很久没有更新了。

MaciASL托管于sourceforge,软件使用苹果的Object-C语言和Cocoa框架编写的软件,可在OS 系统下运行。而且maciasl可以添加在线补丁源,很方便的解决一些编译问题。但是一样最后更新已经是2013年的事了,此版本是由RehabMan更新维护的版本。

软件下载

MacIASL v1.4 DSDT Tools | 黑苹果AML编译器

MacIASL是一款在OS X 系统下AML编译器,经常接触黑苹果的用户应该都熟悉DSDT、SSDT这些吧,Maciasl软件支持高亮显示代码自动着色,并且书目录显示AML结构,支持在线补丁、本地补丁。软件也算是黑苹果玩家必备工具之一,目前软件更新到V1.4版本,支持AML v6.0标准。

更新内容

  • Better updates of compiler download progress, and increment
  • Check filesize with modtime in +conditionalGet, and increment
  • Nullability fixes, and increment
  • Increment
  • Add iasl6 support (20150930)
  • Release version 1.4

相关文章

  1. 黑苹果DSDT屏蔽独显方法教程整理
  2. 黑苹果DSDT注入代码驱动部分声卡的教程
  3. DSDT Editor for Windows (20150204) v1 | DSDT编译工具

DSDT Editor for Windows (20150204) v1 | DSDT编译工具

最早接触DSDT编辑工具应该就是这家伙了吧,但是很长时间没有更新维护,现在编译DSDT的基本上都在用MaciASL这款工具,工具很强大,支持在线补丁什么的,DSDT Editor这个最主要的特色还是跨平台,因为是java写的,所以只要你设备支持java并且安装了java理论上都可以运行,在linux Mac 或者windows下都可以运行。习惯在windows下编译DSDT的可以下载使用了!

更新内容

更新IASL到ACPICA 20150204版本,当前版本通过phpdev32开发!

黑苹果DSDT屏蔽独显方法教程整理

  • 文章前言
  • 基本原理
  • 具体方法
  • 方法一:搜索函数
  • 方法一:在_WAK之前新建一个Method PINI()
  • 方法一:在_WAK和适当的_INI中调用PINI()
  • 方法一:编译错误
  • 方法一:错误修正示范:
  • 方法一:保存编译
  • 方法二:没有_PS3函数
  • 方法二:编译错误
  • 方法二:编译保存
  • 查看是否生效
  • 文章总结

文章目录

文章前言

此文来自zsy6271投稿整理发布到极客黑苹果社区,文章介绍了如何通过DSDT屏蔽你的独显,比如在安装使用黑苹果的时候独显不被支持,或被定义为无解等原因而无法使用,BIOS又不能屏蔽,那就需要使用DSDT或者SSDT等进行屏蔽。

基本原理

在电脑开机时(对应_INI method)和睡眠唤醒时(对应_WAK method)调用关闭Nvidia独显的Method。

这个网站http://hybrid-graphics-linux.tuxfamily.org/index.php?title=ACPI_calls总结了关闭Nvidia显卡的常见methods,还列举了一些机型的具体情况,大家可以去看看,弄清楚自己电脑关闭显卡的method究竟是哪个,然后结合这个帖子来修改DSDT.

正如上面那个网站所示,关闭Nvidia独显一般有两种方法:一、使用 _DSM + _PS3;二、直接用_OFF(或者DOFF,SGOF等等,有些机型是不同的);

虽然上面那个网站一般都是直接调用OFF()函数来关闭独显的,但个人觉得如果有_DSM和_PS3的话,先使用方法一比较好,因为方法二可能会有一些影响,比如CPU变频的问题。(具体请看参考帖子[教程] 解决Optimus 和CPU Turbo 变频冲突)。

具体方法

很多人喜欢把SSDT的显卡部分移到DSDT中然后添加关闭独显的代码,并且开机DropOEMSSDT只用DSDT。但是我个人觉得这样子很麻烦,首先在移动过程中可能会产生错误,而且Drop掉SSDT后,DSDT中的那些External variables,methods就无法access了,因此DSDT中用到这些Objects,Methods的地方就会产生问题。如果Drop SSDT的目的是为了使用clover和变色龙的Generate P-States和C-States的话,clover可以只Drop掉有CPU信息的SSDT,变色龙可以把除有CPU信息的其他SSDT放在Extra目录下再DropSSDT,所以我认为完全没有必要花时间来移动显卡部分或者其他东西。如果DSDT和SSDT要相互调用对方的函数,那就在definition block那里加上External就好了。(如果新人看不懂这一段就跳过吧)说了那么多废话,终于开始了。

注意,在修改DSDT和SSDT之前,可以用这个帖子介绍的方法先生成dsl文件,可以减少错误,还有其他错误自己爬帖解决。不过如果你某个DSDT或SSDT有错误不能解决但你不需要再把它编译成AML文件的话,可以不用管它。

方法一:搜索函数

首先在DSDT和SSDT中搜索找到要用的函数_WAK,_INI,_PS3,_DSM。_WAK一般只有一个。_INI可能有很多个,最好用\_SB.PCI0下或\_SB.PCI0.PEG0.PEGP的。_PS3只有一个,如果没有的话看方法二。_DSM会有很多个,一定要用\_SB.PCI0.PEG0.PEGP下的,如果\_SB.PCI0.PEG0.PEGP下没有,搜索看看Device(GFX0)下有没有,如果都没有就看方法二.(注意,以下步骤是默认你DSDT的相关methods为一般情况,若有不同需根据你自己的DSDT做相应更改)

方法一:在_WAK之前新建一个Method PINI()

  1. Method (PINI, 0, NotSerialized)
  2.         {
  3.                 \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
  4.             {
  5.                 /* 0000 */    0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
  6.                 /* 0008 */    0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
  7.             }, 0x0100, 0x1A, Buffer (0x04)
  8.             {
  9.                 0x01, 0x00, 0x00, 0x03
  10.             })
  11.         \_SB.PCI0.PEG0.PEGP._PS3 ()
  12.         }

方法一:在_WAK和适当的_INI中调用PINI()

_WAK和_INI可能不在同一个DSDT或SSDT中,没有关系

  1. Method (_WAK, 1, Serialized)
  2.            {
  3.               PINI ()
  4.         ……
  5.           }
  6. [。。。省略。。。]
  7. Method (_INI, 0, NotSerialized)
  8.           {
  9.         PINI ()
  10.         …….
  11.           }

方法一:编译错误

如果有类似以下的错误

  1. Error Object does not exist (PINI)

在DefinitionBlock(在DSDT和SSDT的最上面)加上以下代码

  1. External(PINI, MethodObj)

方法一:错误修正示范:

  1. DefinitionBlock (“acpi_dsdt.aml”“DSDT”1“LENOVO”“CB-01   “0x00000001)
  2. {
  3.     External (_SB_.PCI0.PAUD.PUAM, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
  4.     External (_SB_.PCI0.XHC_.DUAM, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
  5.     External (_SB_.TPM_.PTS_, MethodObj)    // Warning: Unresolved Method, guessing 1 arguments (may be incorrect, see warning above)
  6.     External (_PR_.CFGD, FieldUnitObj)
  7.     External (_PR_.CPU0._PPC, IntObj)
  8.     External (_PR_.CPU0._PSS, PkgObj)
  9.     External (PINI, MethodObj)

如果错误提示Object does not exist (\_SB.PCI0.PEG0.PEGP._PS3)

在DefinitionBlock加上

  1. External(_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)

如果错误提示Object does not exist (\_SB.PCI0.PEG0.PEGP._DSM)

在DefinitionBlock加上

  1. External(_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)

方法一:保存编译

没有错误了,编译,save AML,把修改了的DSDT.aml, SSDT.aml和其他所以没有修改的SSDT*.aml放在Extra目录(变色龙),或patched文件夹(Clover),这样的话要DropSSDT。开机,幸运的话,Nvidia显卡应该被屏蔽了。

方法二:没有_PS3函数

如果没有_PS3函数,或者使用上面的方法没效果,那就试试这个方法吧。

在_WAK和适当的_INI里面加入\_SB.PCI0.PEG0.PEGP._OFF()

  1. Method (_WAK, 1, Serialized)
  2.            {
  3.               \_SB.PCI0.PEG0.PEGP._OFF()
  4.         ……
  5.           }
  6. [。。。省略。。。]
  7. Method (_INI, 0, NotSerialized)
  8.           {
  9.         \_SB.PCI0.PEG0.PEGP._OFF()
  10.         …….
  11.           }

方法二:编译错误

如果编译时有错误,像方法一的4中那样解决错误即可。

方法二:编译保存

没有错误了,编译,save AML,把修改了的DSDT.aml, SSDT.aml和其他所以没有修改的SSDT*.aml放在Extra目录(变色龙),或patched文件夹(Clover),这样的话要DropSSDT。开机,幸运的话,Nvidia显卡应该被屏蔽了。

查看是否生效

如何查看是否成功屏蔽Nvidia独显:打开“系统信息”→“图形卡/显示器”,若只有Intel显卡的信息就证明屏蔽成功。若成功了就支持一下吧!

文章总结

如果不成功的话把你的DSDT和SSDT文件发上来,看我能不能帮你。如果你还是想把显卡部分从SSDT移到DSDT却不知道怎么做,可以参照这个帖子的移动显卡部分的方法

笔记本安装黑苹果后无法调节亮度的解决办法 | 小太阳

摘 要

笔记本用户,在安装了黑苹果系统后发现用FN快捷键无法调节屏幕亮度,网上搜集了些解决办法,遇到同样问题的可以试一下。本文通过DSDT修复笔记本调节亮度的问题,如果你有好的方法可以在本站投稿!

  • 准备工作
  • 第一步:安装驱动
  • 第二步:为MacIASL添加补丁源
  • 第三步:为DSDT打补丁
  • 第四步:ACPIDebug 查找对应位置
  • 第五步:添加代码

文章目录

问题描述

笔记本用户,在安装了黑苹果系统后发现用FN快捷键无法调节屏幕亮度,网上搜集了些解决办法,遇到同样问题的可以试一下。本文通过DSDT修复笔记本调节亮度的问题,如果你有好的方法可以在本站投稿!

准备工作

在开始之前需要用到一下工具和驱动文件:

  1. 提取的DSDT.aml文件并修复过错误的。
  2. VoodooPS2Controller.kext(PS2驱动)
  3. ACPIDebug.kext(debug工具)
  4. MaciASL(DSDT修改工具)

操作过程

第一步:安装驱动

将下载好的VoodooPS2Controller.kext和ACPIDebug.kext安装系统驱动目录S/L/E下,修复系统权限重建系统缓存。

第二步:为MacIASL添加补丁源

打开MacIASL添加补丁源,源地址:http://raw.github.com/RehabMan/OS-X-ACPI-Debug/master,不会的看图:

第三步:为DSDT打补丁

选择Add DSDT Debug Methods补丁,点击应用!

第四步:ACPIDebug 查找对应位置

在系统的Launchpad中找到其他,打开控制台,右上角输入ACPIDebug会出现类似下面图片的样子

按FN键+F5(减亮度) 或者 FN键+F6(加亮度)看控制台输出的信息,如果FN+F5输出的是 _Q8E 那Q8E是减暗度,FN+F6 如果不出错的话就是Q8F,类似以下代码:

  1. Feb 24 10:53:21 localhost kernel[0]: ACPIDebug: “EC0._Qxx enter”
  2. Feb 24 10:53:21 localhost kernel[0]: ACPIDebug: “EC0._Qxx exit”

注意!红色的部分机型不一样所以各有差异,记住类似QXX这个代码!

第五步:添加代码

再次打开MACIASL来修改DSDT,点击打补丁 输入下面内容,记得修改QXX为你找到的代码。

  1. # Make EC-based brightness up/down work with RehabMan VoodooPS2 ACPI keyboard mechanism
  2. into method label _QXX parent_label EC0 replace_content
  3. begin
  4.     // Dell code for brightness up\n
  5.     Notify (PS2K, 0x0206)\n
  6.     Notify (PS2K, 0x0286)\n
  7. end;
  8. into method label _QXX parent_label EC0 replace_content
  9. begin
  10.     // Dell code for brightness down\n
  11.     Notify (PS2K, 0x0205)\n
  12.     Notify (PS2K, 0x0285)\n
  13. end;

到这里就算是修复完毕了,赶紧重启电脑试一下用快捷键是否能调节亮度,是否看到期待已久的小太阳了!

文章中所用到的工具和驱动都可以在本站找到,请自行搜索!

黑苹果有线网卡DSDT内建等方法汇总整理

摘 要

今天我给大家介绍有线网卡内建的三种方法。首先我要说一下为什么要网卡内建?在某些特殊的情况下,比如说网卡驱动版本不合适等等一些原因,会导致你的iTunes、iBooks、APP store 无法登陆,会提示无法验证此Mac。

  • 相关文章
  • 一、引导内建法
  • 二、dsdt内建法
  • 注意事项
  • 三、BSD名称修改内建法
  • 其他可能
  • 文章总结

文章目录

文章前言

本文由极客黑苹果社区网站编辑mhy0201(M叫兽)原创文章,未经允许禁止转载!

欢迎来到极客黑苹果社区!我是mhy0201(M叫兽),今天我给大家介绍有线网卡内建的三种方法。首先我要说一下为什么要网卡内建?在某些特殊的情况下,比如说网卡驱动版本不合适等等一些原因,会导致你的iTunes、iBooks、APP store 无法登陆,会提示无法验证此Mac。出现这种情况就说明你的网卡没有内建。那么,我们应该如何内建呢?下面,我会给大家一一介绍网卡内建的三种方法。

网卡内建主要有三种方法:

  1. 引导内建法
  2. BSD名称修改内建法
  3. DSDT内建法

相关文章

  1. 黑苹果下内建SD读卡器
  2. IORegistryExplorer 3.0.3 (15) | 系统描述查看工具
  3. Clover Configurator v4.28.0 | 四叶草配置文件图形编辑工具
  4. MacIASL v1.4 DSDT Tools | 黑苹果AML编译器
  5. Chameleon Wizard 4.4.1 | 变色龙图形配置工具

一、引导内建法

首先我要说明一点的是,网卡内建的前提必须是网卡必须已经驱动成功了。若网卡无解或者驱动不起来,我还是劝你洗洗睡吧。另外,这种方法目前仅支持变色龙和clover,如果你是ozmsisos引导,请试试其他两种方法。

1、变色龙引导方法

好了,言归正传,先说说变色龙内建网卡的一般步骤:首先-系统偏好设置里面点击网络,删除以太网,如下图所示:

然后打开小绿人chameleon Wizard,选择org.chameleon.boot,杂项里面勾选Ethernet Built in选项,如下图所示:

再打开小白人kext wizard,修复extra的权限。

然后重新启动,重新添加以太网,此时你的网卡应该是内建状态。

2、四叶草引导方法

此处为隐藏的内容!发表评论并刷新,才能查看发表评论

其他可能

1.拥有无线和有线两个网卡,无线占用en0,有线是en1;
2.因有线无法驱动,用的是无线网卡,无线占用en0;
以上原因是mac定义有线bsd name必须是en0,无线得是en1(这个也不一定,苹果有线en1也可以)
3.USB无线网卡、USB有线网卡无法内建,请尝试使用虚拟有线网卡驱动(NullEthernet.kext)以获取内建状态。

文章总结

好了,以上就是我对有线网卡内建的三种方法的介绍。如果你有什么问题、想法、建议或更好的方法请在下方提问,我会在第一时间回复你。当然,也可以直接联系我,本人QQ:510366505。在这里,我代表极客黑苹果社区的全体管理团队祝您折腾愉快!
崇尚专注,乐于折腾!

Warnings:Possible operator timeout is ignored | DSDT错误修复

错误描述

DSDT编译提示错误Warnings:Possible operator timeout is ignored!翻译为超时被忽略。

修复方法

解决方法如下:

  1. Method (ENFG, 1, NotSerialized)  
  2.      {  
  3.        Acquire (MUT0, 0x0FFF)       //改为0xFFFF  
  4.          Store (0x87, INDX)  
  5.          Store (0x87, INDX)  
  6.          Store (Arg0, LDN)  
  7.      }  

将一下代码

  1. Acquire (MUT0, 0x0FFF)  

修改为

  1. Acquire (MUT0, 0xFFFF)  

最后代笔变更如下

  1. Method (ENFG, 1, NotSerialized)  
  2.      {  
  3.          Acquire (MUT0, 0xFFFF)  
  4.          Store (0x87, INDX)  
  5.          Store (0x87, INDX)  
  6.          Store (Arg0, LDN)  
  7.      }  

工具下载

MaciASL – DSDT Editor V1.3 B252 | OS X aml编译器

syntax error,unexpected ‘}’,expecting ‘(’ | DSDT错误修复

错误介绍

虽然现在DSDT的提取有各种各样的方法,编译能力也是越来越强,错误越来越少,但是有些童鞋还是坚持用比较旧的方法来提取,所以错误在所难免,就比如

  1. syntax error,unexpected ‘}’,expecting ‘(’  

此错误好像haswell平台的都会出现,而且此错误是个关键错误,一般会出现几个甚至是几十个的错误警告。

修改方法

编译时提示是语法错误,定位代码到如下代码:

  1. If (CondRefOf (\_SB.PCI0.XHC.PS0X))
  2.    {
  3.       PS0X
  4.    }

即应该是要对PS0X进行某种操作,可是代码中却只有要操作的对象,没有操作的动作。在PS0X后加上一对小括号,如 PS0X ( )。 或者对PS0X添加一个操作,如Store(Zero, PS0X)

或者External (PS0X,MethodObj)语句把 PS0X定义成方法,那么执行应该用 PS0X()。

其它一样的错误提示的修改方法相同,只是不是同样的字母。修改好所有这样的错误后,Object does not exits ()的提示就全都消失了。

syntax error,unexpected PARSEOP_ | DSDT错误修复

错误描述

编译DSDT时提示syntax error,unexpected PARSEOP_xxxx错误,这里的xxxx会不同,或为LOCAL0、LOCAL1、ARG0、Zero等。但是修改放大略同。点击错误提示软件定位到如下代码:

  1. Store (CMSR (0x63), Local1)
  2. Store (CMSR (0x64), Local0)
  3. Store (^^^GFX0.DD1F.LGBR, Local1)
  4. Local1
  5. Store (^^^GFX0.DD1F.LGBR, Local0)
  6. Local0
  7. Or (ShiftLeft (Local1, 0x04), Local0,Local0)
  8. Or (ShiftLeft (Local0, 0x10), CAUS, Local0)
  9. Store (Zero, ^^EC0.WHOK)
  10. Store (Zero, CAUS)
  11. Return (Local0)

以上代码只是类似,或许你的与此代码不同,大致的修改方法一样。

修复方法

这是语法错误。即应该是要对” Local0”进行某种操作,可是代码中却只有要操作的对象,没有操作的动作。

我们只需要将Local0或错误提示时的字符串用//注释掉或者删除即可。