logo资料库

黑苹果常见dsdt、ssdt错误修改.docx

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
dsdt,ssdt 错误修改 ①错误提示: 2085 Warning ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits) 所在代码: CreateDWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN) 修改方法:将 CreateDWordField 修改为 CreateQWordField ②错误提示 3111 Warning Result is not used, possible operator timeout will be missed 所在代码:Acquire (MUT0, 0x0FFF) 修改方法:将 0x0FFF 改为 0xFFFF 提醒:错误提示 Possible operator timeout is ignored,也这样修改。 ③错误提示: 4754 Remark Use of compiler reserved name (_T_0) 所在代码: Name (_T_0, Zero) 修改方法:将_T 前边的短横删除,或者改为 T0_0,当然,如果后边是其他数 2,3 等 等,那么相应改为 T2_2,T3_3 即可 提醒:这种错误要注意,一般仅仅提示 Name 行所在的此种错误但 是这个代码段中很 多这样的错误,所以修改这种错误的时候,修改完 Name 行之后,这个代码段中的下 边的所有此类错误要全部修改,然后再根据提示修改下一个 代码段,否则你会吃惊的 发现突然怎么出现这么多错误。这样比较简便而已。修改完之后,重新编译一下看看 还有没有。 ④错误提示: 10035 Warning Not all control paths return a value (WQAA) 所在代码:Method (WQAA, 1, NotSerialized) { If (LEqual (Arg0, Zero)) { Store (T2D0, Local0) Return (Local0) } …… …… If (LEqual (Arg0, 0x21)) { Store (TDBB, Local0)
修改方法:在此代码段的倒数第二个大括号之后定位指针,然后按回车键,然后输入 Return (Zero),效果如下: Return (Local0) } } Method (WQAA, 1, NotSerialized) { If (LEqual (Arg0, Zero)) { Store (T2D0, Local0) Return (Local0) } …… …… If (LEqual (Arg0, 0x21)) { Store (TDBB, Local0) Return (Local0) } Return (Zero) } 提醒:诸如此种错误提示,都是在代码段的最后一部分像上边修改方法一样,添加这 样一个代码即可解决。 ⑤错误提示: 11624 Error _HID suffix must be all hex digits (GH) 所在代码:Name (_HID, "ABCDEFGH") 修改方法:将 GH 改为 01 即可。 ⑥错误提示: 17 Error Name already exists in scope (\TNOT) 所在代码:External (\TNOT) 修改方法:删除此行。 ⑦错误提示: 7297 Warning Result is not used, operator has no effect 所在代码:Add (Local0, 0x02) 修改方法:此处修改为 Add (Local0, 0x02,Local0)即可。 ⑧错误提示: 8866 Warning Not all control paths return a value (_CRS)
8866 Warning Reserved method must return a value (Buffer required for _CRS) 所在代码:Method (_CRS, 0, NotSerialized) { If (IGDS) { Return (CRS) } } } } 修改方法:参考绝情奶牛的方法解决了这种双重错误的问题 前后都添加代码。红色部分为要添加的部分 Method (RES, 0, NotSerialized) Return (Zero) Method (_CRS, 0, NotSerialized) { If (IGDS) { Return (CRS) { } } Else { } Return (RES) } } } ⑨错误提示: 3588 Warning ResourceTag larger than Field (Tag: 16 bits, Field: 8 bits) 所 在 代 码 : CreateByteField (BUF0, IOL0) 修改方法:将 CreateByteField 改为 CreateWordField \_SB.PCI0.LPCB.N393.LPT1._CRS._Y16._MIN, ⑩错误提示: 3421 Warning ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits) 所在代码:CreateDWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN) 修改方法:将 CreateDWordField 改为 CreateQWordField。 ⑪错误提示: 11875
Warning Unknown reserved name (_VPC) 所在代码: Name (_VPC, Zero) 修改方法:搜索 VPC,我们看到大部分的 VPC 之前都没有短横。所以删除所有搜索 到的带短横的 VPC 之前的短横。 提醒:看到 VPC,就想到联想电脑,VPC 即 Virtual power control. 附 : 如 果 错 误 是 Unknown reserved name (_CFG), 指 向 Method (_CFG, 0, NotSerialized),那么删除 CFG 之前的短横即可,因为这个一般只有一个。 ⑫错误提示: Warning Statement is unreachable Return (Local1) Return (Ones) 有两个 Return,第一个 Return 掉了,第二个 Return 不起作用,所以把它删除 13 错 误 提 示 : 关 于 Invalid object type for reserved name (found BUFFER, requires Package)的修改 改为:Name (_PLD, Package (1) {Buffer (0x10) { /* 0000 */ /* 0008 */ }}) 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x0D, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 大家一定要注意大括号和小括号的数量,一定不要搞错,否则错误越改越多 四、SSDT 错误修改 SSDT 的提取和降频修改部分见我的另一篇帖子,第一部分提到了已经。这里重点 说一下错误修改。修改的工具和方法和 DSDT 一样,所以我们直接开始。 ①错误提示: warning: ResourceTag larger than Field(Tag:64its,Field:32bits) 146 Remark Effective AML package length is zero 所在代码: Package (0x00) {}, 修改方法:将 Package (0x00) {} 修改成 Package (0xFF) {}
②错误提示: 40 Warning _REG has no corresponding Operation Region 所在代码:Method (_REG, 2, NotSerialized) 修改方法:删除_REG 之前的短横即可 ③错误提示: 220 Error syntax error, unexpected PARSEOP_PACKAGE 所在代码:Package (0x06) { 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000 } Package (0x06) { 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000 } …… …… 修改方法:我们看到有很多这样的 Package,那么我们删除标注行之后一直到下一个 NAME 之前的 Package (0x06) { } 0x000004B0, 0x00003848, 0x0000000A, 0x0000000A, 0x00000C00, 0x00000C00 提醒:删除之后,出现另一个同样错误,所以一共删除两处 ④错误提示: 84 Warning Reserved method should not return a value (_PDC) 所在代码:Return (Local0)
修改方法:我们追根求源,找到这段代码 Method (_PDC, 1, NotSerialized) { } Store (CPPC, \_PR.CPU0._PPC) Store (CPDC (Arg0), Local0) GCAP (Local0) Return (Local0) 我们发现删除 Method (_PDC, 1, NotSerialized)中 PDC 前边的短横即可轻易解决问题。 提醒:类似的错误提示都这样处理,观察上下文,跟修改语病一样。 修正:此处经过 lihuanzi2007 的指导,我仔查阅了相关修改,发现这样修 改确实不妥,做出以下修正 将 Return (Local0)改为 Return (Zero) ⑤错误提示: 63 Warning Statement is unreachable 所在代码:0x09 修改方法:追根溯源,代码段: Method (_PRW, 0, NotSerialized) { } Return (GPRW) 0x09 0x04 我们删除下边两行即可解决问题。 0x09 0x04 ⑥错误提示: 67 Error Object does not exist (_ON_) 所在代码: _ON () 修改方法:删除此行即可。(错误) 提醒:大部分此类的错误都这样解决。例外在第七条。 修正:此处修改方法有误,应如此修改: 既然不存在这个项,我们就在 SSDT 的开头添加。添加的代码样式:External (_ON_) 我们看一下 SSDT 开头的格式: DefinitionBlock ("SSDT_7.aml", "SSDT", 1, "OptRef", "OptTabl", 0x00001000) { External (DID8) External (NXD8)
…… …… 那我们这样修改: DefinitionBlock ("SSDT_7.aml", "SSDT", 1, "OptRef", "OptTabl", 0x00001000) { External (_ON_) External (DID8) …… ⑦错误提示: 156 Error Object does not exist (\_SB.PCI0.GFX0.HDSM) 所在代码: Return (\_SB.PCI0.GFX0.HDSM (Arg0, Arg1, Arg2, Arg3)) 修改方法:删除“.HDSM (Arg0, Arg1, Arg2, Arg3)”
分享到:
收藏