jndhui 发表于 2018-12-18 09:12

(已解决)Z97如何修改hotpatch中的SSDT-LPC.dsl以加载appleLPC变频?

本帖最后由 jndhui 于 2018-12-18 12:47 编辑

      最近把静态的dsdt修改成了hotpatch,但目前appleLPC不加载,论坛主要两种办法,一种是修改dsdt来加载LPC,一种是修改原生的appleLPC.kext来加载,目前都不好,不想在加dsdt或者破坏appleLPC了,那有什么办法,我觉得无非两种,一种在CLover修改(config.plist----acpi----Fixes----FakeLPC不管用),或者在SSDT-LPC修改,具体怎么做???麻烦大神指导下附SSDT-LPC.dsl代码// To fix unsupported 8-series LPC devices

#ifndef NO_DEFINITIONBLOCK
DefinitionBlock("", "SSDT", 2, "hack", "_LPC", 0)
{
#endif
    External(_SB.PCI0.LPCB, DeviceObj)
    Scope(_SB.PCI0.LPCB)
    {
      OperationRegion(RMP0, PCI_Config, 2, 2)
      Field(RMP0, AnyAcc, NoLock, Preserve)
      {
            LDID,16
      }
      Name(LPDL, Package()
      {
            // list of 7-series LPC device-ids not natively supported (partial list)
            0x1e49, 0,
            Package()
            {
                "device-id", Buffer() { 0x42, 0x1e, 0, 0 },
                "compatible", Buffer() { "pci8086,1e42" },
            },
            // list of 8-series LPC device-ids not natively supported
            // inject 0x8c4b for unsupported LPC device-id
            0x8c46, 0x8c49, 0x8c4a, 0x8c4c, 0x8c4e, 0x8c4f,
            0x8c50, 0x8c52, 0x8c54, 0x8c56, 0x8c5c, 0x8cc3, 0,
            Package()
            {
                "device-id", Buffer() { 0x4b, 0x8c, 0, 0 },
                "compatible", Buffer() { "pci8086,8c4b" },
            },
            // list of 9-series LPC device-ids not natively supported (partial list)
            0x8cc6,
            // list of 100-series LPC device-ids not natively supported (partial list)
            0x9d48, 0x9d58, 0xa14e, 0xa150,
            // and 200-series...
            0xa2c5, 0,
            Package()
            {
                "device-id", Buffer() { 0xc1, 0x9c, 0, 0 },
                "compatible", Buffer() { "pci8086,9cc1" },
            },
      })
      Method(_DSM, 4)
      {
            If (!Arg2) { Return (Buffer() { 0x03 } ) }
            // search for matching device-id in device-id list, LPDL
            Local0 = Match(LPDL, MEQ, ^LDID, MTR, 0, 0)
            If (Ones != Local0)
            {
                // start search for zero-terminator (prefix to injection package)
                Local0 = Match(LPDL, MEQ, 0, MTR, 0, Local0+1)
                Return (DerefOf(LPDL))
            }
            // if no match, assume it is supported natively... no inject
            Return (Package() { })
      }
    }
#ifndef NO_DEFINITIONBLOCK
}
#endif
//EOF

解决办法:先搞清楚自己LPC的ID,最好用ADIA64查看(起初就被https://bbs.pcbeta.com/viewthread-1658462-1-1.html这篇帖子误导,搞错了ID),然后在自己对应主板型号的下面添加上自己的ID,编译完后重启应该能完美解决,这样不需要修改DSDT,更不需要动原版驱动。

jndhui 发表于 2018-12-18 11:54

在线等,请会的指导下

ydhmq 发表于 2018-12-18 11:56

win下 看你的LPC是多少 多那个系列的主板芯片,然后在修改

jndhui 发表于 2018-12-18 12:07

ydhmq 发表于 2018-12-18 11:56 https://www.pcbeta.com/static/image/common/back.gif
win下 看你的LPC是多少 多那个系列的主板芯片,然后在修改

我查了,是8ac2,试着把         
33          // list of 9-series LPC device-ids not natively supported (partial list)
34            0x8cc6,
改成
33          // list of 9-series LPC device-ids not natively supported (partial list)
34            0x8cc6,0x8ac2,

编译成aml还是不行,该怎么改

ydhmq 发表于 2018-12-18 12:16

增加到8系列表后面,看看

maojinbing 发表于 2018-12-18 12:25

搞清楚自己LPC的ID 请确认完全没问题 用硬件检测工具上图在我任意贴后上图 可以简单解决 不需要DSDT

云朵有点甜 发表于 2018-12-18 12:29

正确做法是仿冒苹果系统原生支持的ID,而不是注入自己的ID
而且现在用properties方法更方便,做ssdt没必要了

jndhui 发表于 2018-12-18 12:41

ydhmq 发表于 2018-12-18 12:16 https://www.pcbeta.com/static/image/common/back.gif
增加到8系列表后面,看看

感谢啦,已经搞定,原来被一篇教程误导,搞错了lpc的id,实际上应该是8cc4,添加进去就ok了

jndhui 发表于 2018-12-18 12:43

maojinbing 发表于 2018-12-18 12:25 https://www.pcbeta.com/static/image/common/back.gif
搞清楚自己LPC的ID 请确认完全没问题 用硬件检测工具上图在我任意贴后上图 可以简单解决 不需要DSDT

按你说的,我又查了遍LPC的ID,发现真被误导,搞错了,现在添加进去完美解决,感谢大大,你的几篇帖子很不错,就是我现在看不到了,可惜,一篇好像删了,还一篇阅读权限不够,麻烦告知怎么才能看到

jndhui 发表于 2018-12-18 13:19

云朵有点甜 发表于 2018-12-18 12:29 https://www.pcbeta.com/static/image/common/back.gif
正确做法是仿冒苹果系统原生支持的ID,而不是注入自己的ID
而且现在用properties方法更方便,做ssdt没必要 ...

麻烦指导下,还没听过这种方法

hongjian_z 发表于 2018-12-18 22:13

云朵有点甜 发表于 2018-12-18 12:29 https://www.pcbeta.com/static/image/common/back.gif
正确做法是仿冒苹果系统原生支持的ID,而不是注入自己的ID
而且现在用properties方法更方便,做ssdt没必要 ...

能指导下吗,小白想学学

39军小兵张 发表于 2018-12-18 23:24

不需要修改,直接用R大的那个就是,一般是没有问题的,人家R大明明写了英文注释好不?看不懂,谷歌翻译一下

39军小兵张 发表于 2018-12-18 23:34

人家R大英文注释明明白白写着以下不支持原生lpc的id,然后后面统一修改成支持原lpc的id

jndhui 发表于 2018-12-19 07:52

39军小兵张 发表于 2018-12-18 23:24 https://www.pcbeta.com/static/image/common/back.gif
不需要修改,直接用R大的那个就是,一般是没有问题的,人家R大明明写了英文注释好不?看不懂,谷歌翻译一下

可我那个地方不修改,appleLPC就是不加载,加上了我的ID,appleLPC,就加载了,这是实实在在的例子啊

kingpino 发表于 2018-12-19 08:25

好像是很有用的问题,求个完整教程

allstar-cc 发表于 2018-12-19 11:02

我是DSDT直接改的

39军小兵张 发表于 2018-12-19 11:40

jndhui 发表于 2018-12-19 07:52 https://www.pcbeta.com/static/image/common/back.gif
可我那个地方不修改,appleLPC就是不加载,加上了我的ID,appleLPC,就加载了,这是实实在在的例子啊

一般是不用修改的,因为里面列举了不少常见的id。当然你的ID都不在里面那肯定要要添加的了。{:5_262:}

lesing 发表于 2018-12-19 12:52

直接勾选fakelpc就好了啊

云朵有点甜 发表于 2018-12-23 11:22

hongjian_z 发表于 2018-12-18 22:13 https://www.pcbeta.com/static/image/common/back.gif
能指导下吗,小白想学学


hongjian_z 发表于 2018-12-25 21:58

云朵有点甜 发表于 2018-12-23 11:22 https://www.pcbeta.com/static/image/common/back.gif


虽然看不懂,还是非常感谢
页: [1] 2
查看完整版本: (已解决)Z97如何修改hotpatch中的SSDT-LPC.dsl以加载appleLPC变频?