- 积分
- 3137
- 最后登录
- 2024-1-9
- 精华
- 0
- 阅读权限
- 70
- 主题
- 10
- UID
- 2351989
- 帖子
- 4843
- PB币
- 753
- 威望
- 200
- 贡献
- 0
- 技术
- 45
- 活跃
- 87
- UID
- 2351989
- 帖子
- 4843
- PB币
- 753
- 贡献
- 0
- 技术
- 45
- 活跃
- 87
|
本帖最后由 参天的树 于 2012-8-1 17:04 编辑
- 此贴写给和我 dsdt错误相近的同学参考 高手勿喷 dsdt是黑苹果完美的重要一步 通过dsdt就可以加载许多重要驱动 增强系统的兼容性 但dsdt中有错误就有可能引起五国等问题 本淫水平有限 通过不懈爬楼 修复了dsdt内的错误 而无线网卡和声卡等也是通过dsdt加载驱动的 并且通过dsdt加载了 LPC RTC HPET SBUS等 下面首先分享一下我dsdt内的错误修改方法
复制代码
第一个错误(\TNOT)
只需删除这一行就行了
第二个错误_HID suffer must be all hex digits (GH) 和下面的一个(_EJ0)警告
原始代码
- Device (_SB.PCI0.DOCK)
- {
- Name (_HID, "ABCDEFGH")
- Name (_CID, EisaId ("PNP0C15"))
- Name (_UID, "SADDLESTRING")
- Method (_EJ0, 1, NotSerialized)
- {
- P8XH (Zero, 0xED, Zero)
- If (LEqual (ECON, One)) {}
- Return (One)
- }
复制代码
将ABCDEFGH修改为ABCDEF01 将下方的Reture (One)修改为Reture (Zero)
修改后
- Device (_SB.PCI0.DOCK)
- {
- Name (_HID, "ABCDEF01")
- Name (_CID, EisaId ("PNP0C15"))
- Name (_UID, "SADDLESTRING")
- Method (_EJ0, 1, NotSerialized)
- {
- P8XH (Zero, 0xED, Zero)
- If (LEqual (ECON, One)) {}
- Return (Zero)
- }
复制代码 接下来两个Remark _T_1和 _T_0 把所在代码中的这样形式的全部改成T_1和 T_0
原始代码
- Scope (_SB.PCI0.SAT0)
- {
- Device (PRT2)
- {
- Name (_ADR, 0x0002FFFF)
- Method (_DSM, 4, Serialized)
- {
- Name (_T_1, Zero)
- Name (_T_0, Zero)
- If (LEqual (Arg0, Buffer (0x10)
- {
- /* 0000 */ 0x30, 0xEF, 0xFA, 0xBD, 0xBB, 0xAE, 0xDE, 0x11,
- /* 0008 */ 0x8A, 0x39, 0x08, 0x00, 0x20, 0x0C, 0x9A, 0x66
- }))
- {
- While (One)
- {
- Store (Arg2, _T_0)
- If (LEqual (_T_0, Zero))
- {
- While (One)
- {
- Store (Arg1, _T_1)
- If (LEqual (_T_1, One))
- {
- If (LEqual (PFLV, FDTP))
- {
- Return (Buffer (One)
- {
- 0x00
- })
- }
- Return (Buffer (One)
- {
- 0x0F
- })
- }
- Else
- {
- Return (Buffer (One)
- {
- 0x00
- })
- }
- Break
- }
- }
- Else
- {
- If (LEqual (_T_0, One))
- {
- Return (One)
- }
- Else
- {
- If (LEqual (_T_0, 0x02))
- {
- Store (Zero, GPE3)
- If (LEqual (And (GL00, 0x08), 0x08))
- {
- Or (GIV0, 0x08, GIV0)
- }
- Else
- {
- And (GIV0, 0xF7, GIV0)
- }
- And (GL08, 0xEF, GL08)
- Sleep (0xC8)
- Store (One, GPS3)
- Store (One, GPE3)
- Return (One)
- }
- Else
- {
- If (LEqual (_T_0, 0x03))
- {
- Store (Zero, GPE3)
- Store (One, GPS3)
- Or (GL08, 0x10, GL08)
- Return (One)
- }
- Else
- {
- Return (Zero)
- }
- }
- }
- }
- Break
- }
- }
- Else
- {
- Return (Zero)
- }
- }
- }
- }
复制代码 修改后
- Scope (_SB.PCI0.SAT0)
- {
- Device (PRT2)
- {
- Name (_ADR, 0x0002FFFF)
- Method (_DSM, 4, Serialized)
- {
- Name (T_1, Zero)
- Name (T_0, Zero)
- If (LEqual (Arg0, Buffer (0x10)
- {
- /* 0000 */ 0x30, 0xEF, 0xFA, 0xBD, 0xBB, 0xAE, 0xDE, 0x11,
- /* 0008 */ 0x8A, 0x39, 0x08, 0x00, 0x20, 0x0C, 0x9A, 0x66
- }))
- {
- While (One)
- {
- Store (Arg2, T_0)
- If (LEqual (T_0, Zero))
- {
- While (One)
- {
- Store (Arg1, T_1)
- If (LEqual (T_1, One))
- {
- If (LEqual (PFLV, FDTP))
- {
- Return (Buffer (One)
- {
- 0x00
- })
- }
- Return (Buffer (One)
- {
- 0x0F
- })
- }
- Else
- {
- Return (Buffer (One)
- {
- 0x00
- })
- }
- Break
- }
- }
- Else
- {
- If (LEqual (T_0, One))
- {
- Return (One)
- }
- Else
- {
- If (LEqual (T_0, 0x02))
- {
- Store (Zero, GPE3)
- If (LEqual (And (GL00, 0x08), 0x08))
- {
- Or (GIV0, 0x08, GIV0)
- }
- Else
- {
- And (GIV0, 0xF7, GIV0)
- }
- And (GL08, 0xEF, GL08)
- Sleep (0xC8)
- Store (One, GPS3)
- Store (One, GPE3)
- Return (One)
- }
- Else
- {
- If (LEqual (T_0, 0x03))
- {
- Store (Zero, GPE3)
- Store (One, GPS3)
- Or (GL08, 0x10, GL08)
- Return (One)
- }
- Else
- {
- Return (Zero)
- }
- }
- }
- }
- Break
- }
- }
- Else
- {
- Return (Zero)
- }
- }
- }
- }
复制代码
下一个 Not all control paths reture a value (_DSM)
和它同一行的警告
原始代码
- Method (_DSM, 4, NotSerialized)
- {
- If (LEqual (Arg0, Buffer (0x10)
- {
- /* 0000 */ 0x75, 0x0B, 0xA5, 0xD4, 0xC7, 0x65, 0xF7, 0x46,
- /* 0008 */ 0xBF, 0xB7, 0x41, 0x51, 0x4C, 0xEA, 0x02, 0x44
- }))
- {
- If (LNotEqual (Arg1, 0x0102))
- {
- Return (Buffer (0x04)
- {
- 0x02, 0x00, 0x00, 0x80
- })
- }
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (0x04)
- {
- 0x01, 0x00, 0x10, 0x00
- })
- }
- If (LEqual (Arg2, 0x14))
- {
- Return (Package (0x09)
- {
- 0x0110,
- 0x0100,
- Zero,
- Zero,
- One,
- One,
- 0xD2,
- Zero,
- 0x03E8
- })
- }
- }
- }
复制代码
修复方法就是在最后一个括号前插入Reture (Zero)
修改后
- Method (_DSM, 4, NotSerialized)
- {
- If (LEqual (Arg0, Buffer (0x10)
- {
- /* 0000 */ 0x75, 0x0B, 0xA5, 0xD4, 0xC7, 0x65, 0xF7, 0x46,
- /* 0008 */ 0xBF, 0xB7, 0x41, 0x51, 0x4C, 0xEA, 0x02, 0x44
- }))
- {
- If (LNotEqual (Arg1, 0x0102))
- {
- Return (Buffer (0x04)
- {
- 0x02, 0x00, 0x00, 0x80
- })
- }
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (0x04)
- {
- 0x01, 0x00, 0x10, 0x00
- })
- }
- If (LEqual (Arg2, 0x14))
- {
- Return (Package (0x09)
- {
- 0x0110,
- 0x0100,
- Zero,
- Zero,
- One,
- One,
- 0xD2,
- Zero,
- 0x03E8
- })
- }
- }
- Return (Zero)
- }
复制代码
接下来的(_BCM)警告
原始代码
- Method (_BCM, 1, Serialized)
- {
- Store (Zero, BCMF)
- Store (Arg0, BCML)
- If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64)))
- {
- Store (SizeOf (BRLV), Local0)
- While (Local0)
- {
- Decrement (Local0)
- Store (DerefOf (Index (BRLV, Local0)), Local1)
- If (LEqual (Arg0, Local1))
- {
- Break
- }
- }
- Store (DerefOf (Index (DerefOf (Index (PANL, ^^^^LPCB.PNID)), Local0)),
- BRTL)
- Subtract (Local0, 0x02, ^^^^LPCB.ECA3)
- }
- Store (BRTL, Arg0)
- If (LEqual (PBCC, One))
- {
- If (LEqual (PBMR, Zero))
- {
- Store (0x02, PBMR)
- If (LEqual (PBMR, 0x02))
- {
- While (LAnd (LAnd (PBCC, 0xFF), LLess (CNT, 0x0A)))
- {
- Increment (CNT)
- Sleep (One)
- }
- If (LEqual (And (PBCR, 0x02), Zero))
- {
- Multiply (Arg0, 0x0A, TMP1)
- ShiftLeft (TMP1, 0x08, TMP2)
- Or (TMP2, LCD0, TMP1)
- Store (TMP1, PBDI)
- Store (0x86100000, PBCR)
- }
- Store (Zero, PBMR)
- Return (One)
- }
- }
- }
- Return (Zero)
- }
复制代码 修改最下面的Reture (One) 为Reture (Zero)
修改后
- Method (_BCM, 1, Serialized)
- {
- Store (Zero, BCMF)
- Store (Arg0, BCML)
- If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64)))
- {
- Store (SizeOf (BRLV), Local0)
- While (Local0)
- {
- Decrement (Local0)
- Store (DerefOf (Index (BRLV, Local0)), Local1)
- If (LEqual (Arg0, Local1))
- {
- Break
- }
- }
- Store (DerefOf (Index (DerefOf (Index (PANL, ^^^^LPCB.PNID)), Local0)),
- BRTL)
- Subtract (Local0, 0x02, ^^^^LPCB.ECA3)
- }
- Store (BRTL, Arg0)
- If (LEqual (PBCC, One))
- {
- If (LEqual (PBMR, Zero))
- {
- Store (0x02, PBMR)
- If (LEqual (PBMR, 0x02))
- {
- While (LAnd (LAnd (PBCC, 0xFF), LLess (CNT, 0x0A)))
- {
- Increment (CNT)
- Sleep (One)
- }
- If (LEqual (And (PBCR, 0x02), Zero))
- {
- Multiply (Arg0, 0x0A, TMP1)
- ShiftLeft (TMP1, 0x08, TMP2)
- Or (TMP2, LCD0, TMP1)
- Store (TMP1, PBDI)
- Store (0x86100000, PBCR)
- }
- Store (Zero, PBMR)
- Return (Zero)
- }
- }
- }
- Return (Zero)
- }
复制代码 最后的两个(_CRS)警告
原始代码
- Method (_CRS, 0, NotSerialized)
- {
- If (IGDS)
- {
- Return (CRS)
- }
- }
- }
- }
- }
复制代码
修改为
- Method (_CRS, 0, NotSerialized)
- {
- If (IGDS)
- {
- Return (CRS)
- }
- Return (Buffer (One)
- {
- 0x00
- })
- }
- }
- }
- }
复制代码
|
-
3
查看全部评分
-
|