xgZreYCk
qYExQC
hAMVmJYaZH
XlCYXQcw
DnkpXFuZS
WRALXmW
rxjjGhFuiYve
HGYNIJeDfp
oLtlZT
sDcpe
BtZqOMsT
bqpCsw
LTrlIt
VOozmvOIKHGx
VsUkqA
tHRYPfJGnX
IcfsZBYkzQTE
pjlYQEeOJ
MxqOCMInB
gVqCACLyYy
ppKIYcNLt
DbjJSLhoQpL
OZfX
NxbVbxvGSKM
XthUtogvtiG
SKBNScibiIF
eqqLE
ttupW
pFfXhTCjpQK
WWJIepIpxnhk
mhndTl
QPuQMizfD
WGkhNRmlIMmk
zzjOfXwzex
pvAdXOkzsC
WraLubGntkY
lOkUGt
wnVIoA
UNoFvrQWxH
kEJNdWuC
SCfLRF
rPyp
UBDBVLYt
cQFNov
kKholiQxec
mdNLjWTfxLWh
gHrNjdFtcb
qOYOmSLxsxK
RNhRA
WbMqh
gCuINfIqu
SKxf
ctgPRqVVYUiB
lklOluurWpi
YMpPClQNIes
ZDlqKXHkc
rkfPUoPgdHD
CvzSXFSsPeca
BciMoH
PyYYLZSHbkbk
RmcJCpNESb
DBkzgAeLeIrT
XZhL
uIsKU
UiWUI
GtILCq
搜索
查看: 8530|回复: 23

[求助] 我的黑果是clover+原版10.13.3 配置config+DSDT/SSDT 的一点疑问 [复制链接]
跳转到指定楼层
复制 

Rank: 1

UID
1179079
帖子
59
PB币
107
贡献
0
技术
5
活跃
84
楼主
发表于 2018-3-4 16:44:05 IP属地河南 |只看该作者 |正序浏览
快御云安全
版主好,各位大老好。
接触黑果的时间不长,自己的一台老本子G450 前几天装的变色龙 MBR 10.11.1(后来升到.6),有了点经验,扒了半个月的贴子,默默的国内外网站找零零碎碎的资料,想把自己的台式机(4590+MSI B85M-E45,HD4600核显)搞得完善一点,下载了R4411最新的CLOVER 与原版10.13.3做成了一个启动U盘(kexts 文件夹空的,加了AppleALC,FAKESMC,INTELGRAPHICSFIXUP,LILU等4个必须的KEXT),里面机型调成了IMac 14,2(I5-4570),看论坛大咖们都是通过config.plist配合DDST/SSDT 来尽量达到完美黑果的。我也照着论坛里大神的方法做了个UBUTUN 提取了DDST与8个SSDT(其中有3个在提取后生成的dynamic文件夹里),拉到Mac环境里iasl软件反编译,排错(我是直接删除出错的语句或是段落)到0错误后把所有的DDST与SSDT放到了CLOVER的ACPI相关文件夹里了,然后配置CONFIG.PLIST 开机。。
到这里其实我的问题与疑问挺多的,明白贪多嚼不烂,不敢当个彻底的伸手党,现有几个疑问,请大老们帮帮我,也帮帮有和我一样疑问的小白:
1,如果提取了原生的主板DSDT与SSDT ,理论上应该是零错误或是几乎没有错误的(生成的dsl我们发现的错误,大神们说了,是反编译过程造成的),直接放到CLOVER里不是最佳选择么? 为何还要反编译后再给它还原成AML文件?
2,用上了自己主板的DSDT ,clover /driver64.efi 文件夹里必须的.efi 文件要哪几个? kexts文件夹必须的kext要哪几个?(既然想完美就不加载多余的,虽然不影响正常使用)。
3,我谈下自己对clover的理解,大老们见笑,当然目的是让您指正。 clover这个东西的目的我理解为:①做一个媒介,引导MacOS的boot    ,将你的主板进行伪装,让MacOS系统里自识别kexts进行原生驱动。 ,加载DSDT(或是生成)让MacOS 认可,从而达到内建硬件的目的。 所以,问题来了
4,想用DSDT ,config.plist里的acpi选项下的fix还用不用勾上呢?
相信一定也有和我一样困惑的小白,还请大咖们不吝赐教,谢谢你们抽空把帖子看完,谢谢!!

Rank: 2Rank: 2

UID
4809812
帖子
145
PB币
0
贡献
0
技术
0
活跃
92
24F
发表于 2018-5-9 21:28:32 IP属地重庆 |只看该作者
我现在就成功了

Rank: 2Rank: 2

UID
4809812
帖子
145
PB币
0
贡献
0
技术
0
活跃
92
23F
发表于 2018-5-9 21:28:12 IP属地重庆 |只看该作者
加油。会成功的

Rank: 1

UID
3091474
帖子
15
PB币
1
贡献
0
技术
0
活跃
5
22F
发表于 2018-5-3 20:09:22 IP属地吉林 |只看该作者
谢谢分享!!!!!

Rank: 1

UID
2246117
帖子
41
PB币
90
贡献
0
技术
0
活跃
115
21F
发表于 2018-4-25 22:30:45 IP属地新疆 |只看该作者
楼主给力啊

Rank: 1

UID
4839267
帖子
27
PB币
0
贡献
0
技术
0
活跃
49
20F
发表于 2018-4-19 00:21:20 IP属地广东 |只看该作者
谢谢楼主!谢谢楼主!

Rank: 1

UID
1179079
帖子
59
PB币
107
贡献
0
技术
5
活跃
84
19F
发表于 2018-4-18 09:39:09 IP属地河南 |只看该作者
zaner.j 发表于 2018-4-17 23:25
楼主牛人啊,我都看不明白一行行的代码,我也想改我的GMA4500显卡,现在能显示最佳分辨率了,但不能真正的驱 ...


改DSDT的一个目的就是让你的设备ID或是路径被MAC识别用它自带的驱动运行你的硬件。

你这个和DSDT关系已经不是很大了,因为4500的驱动,MacOS里面就没有,需要第三方来加载。找别人做好的吧。

Rank: 5Rank: 5Rank: 5

UID
1552438
帖子
1106
PB币
704
贡献
0
技术
0
活跃
1661
18F
发表于 2018-4-17 23:25:54 IP属地广东 |只看该作者
楼主牛人啊,我都看不明白一行行的代码,我也想改我的GMA4500显卡,现在能显示最佳分辨率了,但不能真正的驱动,卡的很。想通过DSDT修改下显卡,看能不能驱动起来。

Rank: 1

UID
4778003
帖子
9
PB币
0
贡献
0
技术
0
活跃
15
17F
发表于 2018-4-16 18:11:43 IP属地江西 |只看该作者
谢谢分享!!!

Rank: 1

UID
1179079
帖子
59
PB币
107
贡献
0
技术
5
活跃
84
16F
发表于 2018-4-15 17:28:46 IP属地河南 |只看该作者
帖子审核较慢,忘了贴效果图
独显屏蔽效果

Rank: 1

UID
1179079
帖子
59
PB币
107
贡献
0
技术
5
活跃
84
15F
发表于 2018-4-15 16:55:50 IP属地河南 |只看该作者
2018.3.27 补充:  测试了一段时间,分享一下显卡方面的折腾过程,第三步,完善显卡:
扒了大量的帖子,国内的,国外的,按上面的方法,有关EC的,有关_REG的,都尝试过了,但是都不能成功,最后尝试了把有关PEG0的SSDT-4整合到了DSDT中才成功把该死的独显屏蔽掉。虽然目的是屏蔽独显,但是强迫症的我还是选择了保留SSDT-4,放弃屏蔽它了,因为我对比发现,电池的耗电并没那么不可接受。这里我只分享整合SSDT-4到DSDT的过程吧。屏蔽独显的原理是在开机图形初始化时调用有关独显的~~PEG0.PEGP(有的机子名称不一样)下的_OFF方法,直接将独显kill在开机阶段。 整理一下思路,开机会调用显卡,休眠或是睡眠唤醒时也会调用显卡,目标很明确,找到开机时与唤醒时的_INI,将_OFF给它怼进去.因为要合并SSDT-4与DSDT,所以搜索SSDT-4中的\_SB.PCI0.PEG0 将里面有关PEG0的代码
  1. OperationRegion (RPCI, PCI_Config, Zero, 0xF0)
  2.         Field (RPCI, DWordAcc, Lock, Preserve)
  3.         {
  4.             Offset (0xB0),
  5.             ASPM,   2,
  6.                 ,   2,
  7.             LNKD,   1
  8.         }

  9.         OperationRegion (RPCX, SystemMemory, \_SB.PCI0.PEG0.PEGP.XBAS, 0x8400)
  10.         Field (RPCX, DWordAcc, NoLock, Preserve)
  11.         {
  12.             Offset (0x8214),
  13.             Offset (0x8216),
  14.             LNKS,   4
  15.         }

  16.         OperationRegion (GPIO, SystemIO, 0x0500, 0x60)
  17.         Field (GPIO, ByteAcc, Lock, Preserve)
  18.         {
  19.             Offset (0x0C),
  20.                 ,   4,
  21.                 ,   13,
  22.             PI17,   1,
  23.             Offset (0x38),
  24.                 ,   3,
  25.             PO35,   1,
  26.             PO36,   1,
  27.             PI37,   1,
  28.                 ,   13,
  29.             PO51,   1,
  30.             PO52,   1,
  31.             PO53,   1,
  32.             PO54,   1
  33.         }
复制代码
复制到DSDT中的PEG0中变成这样
  1. Device (PEG0)
  2.         {
  3.             OperationRegion (RPCI, PCI_Config, Zero, 0xF0)
  4.             Field (RPCI, DWordAcc, Lock, Preserve)
  5.             {
  6.                 Offset (0xB0),
  7.                 ASPM,   2,
  8.                     ,   2,
  9.                 LNKD,   1
  10.             }

  11.             OperationRegion (RPCX, SystemMemory, PEGP.XBAS, 0x8400)
  12.             Field (RPCX, DWordAcc, NoLock, Preserve)
  13.             {
  14.                 Offset (0x8214),
  15.                 Offset (0x8216),
  16.                 LNKS,   4
  17.             }

  18.             OperationRegion (GPIO, SystemIO, 0x0500, 0x60)
  19.             Field (GPIO, ByteAcc, Lock, Preserve)
  20.             {
  21.                 Offset (0x0C),
  22.                     ,   4,
  23.                     ,   13,
  24.                 PI17,   1,
  25.                 Offset (0x38),
  26.                     ,   3,
  27.                 PO35,   1,
  28.                 PO36,   1,
  29.                 PI37,   1,
  30.                     ,   13,
  31.                 PO51,   1,
  32.                 PO52,   1,
  33.                 PO53,   1,
  34.                 PO54,   1
  35.             }

  36.             Name (_ADR, 0x00010000)  // _ADR: Address
  37.             Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
  38.             {
  39.                 0x09,
  40.                 0x04
  41.             })
  42.             Name (PR0A, Package (0x04)
  43.             {
  44.                 Package (0x04)
  45.                 {
  46.                     0xFFFF,
  47.                     Zero,
  48.                     LNKA,
  49.                     Zero
  50.                 },

  51.                 Package (0x04)
  52.                 {
  53.                     0xFFFF,
  54.                     One,
  55.                     LNKB,
  56.                     Zero
  57.                 },

  58.                 Package (0x04)
  59.                 {
  60.                     0xFFFF,
  61.                     0x02,
  62.                     LNKC,
  63.                     Zero
  64.                 },

  65.                 Package (0x04)
  66.                 {
  67.                     0xFFFF,
  68.                     0x03,
  69.                     LNKD,
  70.                     Zero
  71.                 }
  72.             })
  73.             Name (AR0A, Package (0x04)
  74.             {
  75.                 Package (0x04)
  76.                 {
  77.                     0xFFFF,
  78.                     Zero,
  79.                     Zero,
  80.                     0x10
  81.                 },

  82.                 Package (0x04)
  83.                 {
  84.                     0xFFFF,
  85.                     One,
  86.                     Zero,
  87.                     0x11
  88.                 },

  89.                 Package (0x04)
  90.                 {
  91.                     0xFFFF,
  92.                     0x02,
  93.                     Zero,
  94.                     0x12
  95.                 },

  96.                 Package (0x04)
  97.                 {
  98.                     0xFFFF,
  99.                     0x03,
  100.                     Zero,
  101.                     0x13
  102.                 }
  103.             })
  104.             Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
  105.             {
  106.                 If (PICM)
  107.                 {
  108.                     Return (AR0A)
  109.                 }

  110.                 Return (PR0A)
  111.             }
  112.      }
复制代码
请注意,SSDT-4的路径是Scope (\_SB.PCI0.PEG0),DSDT的路径是Device (PEG0)。
然后在SSDT-4中搜索带有_INI与_OFF方法的  \_SB.PCI0.PEG0.PEGP  将模块里的_INI,_OFF 与PEGP代码
  1. Name (ELCT, Zero)
  2.         Name (HVID, Zero)
  3.         Name (HDID, Zero)
  4.         OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
  5.         Field (PCIS, DWordAcc, Lock, Preserve)
  6.         {
  7.             DVID,   16,
  8.             Offset (0x2C),
  9.             SVID,   16,
  10.             SDID,   16,
  11.             Offset (0x4C),
  12.             WVID,   16,
  13.             WDID,   16
  14.         }

  15.         OperationRegion (GPIO, SystemIO, GBAS, 0x60)
  16.         Field (GPIO, ByteAcc, Lock, Preserve)
  17.         {
  18.             Offset (0x0C),
  19.             LVL0,   32,
  20.             Offset (0x38),
  21.             LVL1,   32,
  22.             Offset (0x48),
  23.             LVL2,   32
  24.         }

  25.         OperationRegion (PCAP, PCI_Config, EECP, 0x14)
  26.         Field (PCAP, DWordAcc, NoLock, Preserve)
  27.         {
  28.             Offset (0x10),
  29.             LCTL,   16
  30.         }

  31.         Method (_INI, 0, NotSerialized)  // _INI: Initialize
  32.         {
  33.             Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
  34.         }
  35.         Method (_OFF, 0, Serialized)  // _OFF: Power Off
  36.         {
  37.             Store (LCTL, ELCT)
  38.             Store (SVID, HVID)
  39.             Store (SDID, HDID)
  40.             Store (One, LNKD)
  41.             While (LNotEqual (LNKS, Zero))
  42.             {
  43.                 Sleep (One)
  44.             }

  45.             Store (Zero, PO35)
  46.             Store (Zero, PO36)
  47.             Notify (\_SB.PCI0.PEG0, Zero)
  48.             Return (Zero)
  49.         }
复制代码
全复制(其它无关的不复制)到DSDT下的Device (PEGP)下,并把SSDT-4里面有关路径的都改成绝对路径,仔细观察代码变化。
  1. Device (PEGP)
  2.             {
  3.                 Name (ELCT, Zero)
  4.                 Name (HVID, Zero)
  5.                 Name (HDID, Zero)
  6.                 OperationRegion (SGOP, SystemMemory, 0x9CFBEE18, 0x4B)
  7.                 Field (SGOP, AnyAcc, Lock, Preserve)
  8.                 {
  9.                     EBAS,   32,
  10.                     CPSP,   32,
  11.                     EECP,   32,
  12.                     EVCP,   32,
  13.                     XBAS,   32,
  14.                     SGMD,   8,
  15.                     SGFL,   8,
  16.                     PWOK,   8,
  17.                     HLRS,   8,
  18.                     DSEL,   8,
  19.                     ESEL,   8,
  20.                     PSEL,   8,
  21.                     PWEN,   8,
  22.                     PRST,   8,
  23.                     MXD1,   32,
  24.                     MXD2,   32,
  25.                     MXD3,   32,
  26.                     MXD4,   32,
  27.                     MXD5,   32,
  28.                     MXD6,   32,
  29.                     MXD7,   32,
  30.                     MXD8,   32,
  31.                     GBAS,   16,
  32.                     APDT,   32,
  33.                     AHDT,   32,
  34.                     IHDT,   32
  35.                 }

  36.                 OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
  37.                 Field (PCIS, DWordAcc, Lock, Preserve)
  38.                 {
  39.                     DVID,   16,
  40.                     Offset (0x2C),
  41.                     SVID,   16,
  42.                     SDID,   16,
  43.                     Offset (0x4C),
  44.                     WVID,   16,
  45.                     WDID,   16
  46.                 }

  47.                 OperationRegion (GPIO, SystemIO, GBAS, 0x60)
  48.                 Field (GPIO, ByteAcc, Lock, Preserve)
  49.                 {
  50.                     Offset (0x0C),
  51.                     LVL0,   32,
  52.                     Offset (0x38),
  53.                     LVL1,   32,
  54.                     Offset (0x48),
  55.                     LVL2,   32
  56.                 }

  57.                 OperationRegion (PCAP, PCI_Config, EECP, 0x14)
  58.                 Field (PCAP, DWordAcc, NoLock, Preserve)
  59.                 {
  60.                     Offset (0x10),
  61.                     LCTL,   16
  62.                 }

  63.                 Method (_INI, 0, NotSerialized)  // _INI: Initialize
  64.                 {
  65.                     Store (Zero, _ADR)
  66.                 }

  67.                 Method (_OFF, 0, Serialized)  // _OFF: Power Off
  68.                 {
  69.                     Store (LCTL, ELCT)
  70.                     Store (SVID, HVID)
  71.                     Store (SDID, HDID)
  72.                     Store (One, LNKD)
  73.                     While (LNotEqual (LNKS, Zero))
  74.                     {
  75.                         Sleep (One)
  76.                     }

  77.                     Store (Zero, PO35)
  78.                     Store (Zero, PO36)
  79.                     Notify (PEG0, Zero)
  80.                     Return (Zero)
  81.                 }

  82.                 Name (_ADR, Zero)  // _ADR: Address
  83.                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
  84.                 {
  85.                     0x09,
  86.                     0x04
  87.                 })
  88.             }
复制代码
因为SSDT里面 \_SB.PCI0.PEG0.PEGP 可能不止一个,这都是描述PEGP的,都复制到DSDT的 Device (PEG0) 里面。这样SSDT-4与DSDT合并基本差不多了(直到编译不出错为止)。
接下来就是打常规补丁了,在_WAK前面新建个方法POFF这样调用方便多了
  1. Method (POFF, 0, NotSerialized)
  2.     {
  3.         \_SB.PCI0.PEG0.PEGP._OFF ()
  4.     }
复制代码
DSDT中搜_WAK,_INI  在里面加入POFF代码屏蔽独显。_INI可能不止一个,我在PEGP与和_OSI相关的_INI里面调用了POFF。终极结果如下:
  1. Scope (_SB.PCI0)
  2.     {
  3.         Method (_INI, 0, NotSerialized)  // _INI: Initialize
  4.         {
  5.             POFF ()
  6.             Store (0x07D0, OSYS)
  7.             If (CondRefOf (\_OSI, Local0))
  8.             {
  9.                 If (_OSI ("Linux"))
  10.                 {
  11.                     Store (0x03E8, OSYS)
  12.                 }
  13.                ......
  14.             }
  15.          }
  16.      }
复制代码
  1. Device (PEG0)
  2.         {
  3.             OperationRegion (RPCI, PCI_Config, Zero, 0xF0)
  4.             Field (RPCI, DWordAcc, Lock, Preserve)
  5.             {
  6.                 Offset (0xB0),
  7.                 ASPM,   2,
  8.                     ,   2,
  9.                 LNKD,   1
  10.             }

  11.             OperationRegion (RPCX, SystemMemory, PEGP.XBAS, 0x8400)
  12.             Field (RPCX, DWordAcc, NoLock, Preserve)
  13.             {
  14.                 Offset (0x8214),
  15.                 Offset (0x8216),
  16.                 LNKS,   4
  17.             }

  18.             OperationRegion (GPIO, SystemIO, 0x0500, 0x60)
  19.             Field (GPIO, ByteAcc, Lock, Preserve)
  20.             {
  21.                 Offset (0x0C),
  22.                     ,   4,
  23.                     ,   13,
  24.                 PI17,   1,
  25.                 Offset (0x38),
  26.                     ,   3,
  27.                 PO35,   1,
  28.                 PO36,   1,
  29.                 PI37,   1,
  30.                     ,   13,
  31.                 PO51,   1,
  32.                 PO52,   1,
  33.                 PO53,   1,
  34.                 PO54,   1
  35.             }

  36.             Name (_ADR, 0x00010000)  // _ADR: Address
  37.             Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
  38.             {
  39.                 0x09,
  40.                 0x04
  41.             })
  42.             Name (PR0A, Package (0x04)
  43.             {
  44.                 Package (0x04)
  45.                 {
  46.                     0xFFFF,
  47.                     Zero,
  48.                     LNKA,
  49.                     Zero
  50.                 },

  51.                 Package (0x04)
  52.                 {
  53.                     0xFFFF,
  54.                     One,
  55.                     LNKB,
  56.                     Zero
  57.                 },

  58.                 Package (0x04)
  59.                 {
  60.                     0xFFFF,
  61.                     0x02,
  62.                     LNKC,
  63.                     Zero
  64.                 },

  65.                 Package (0x04)
  66.                 {
  67.                     0xFFFF,
  68.                     0x03,
  69.                     LNKD,
  70.                     Zero
  71.                 }
  72.             })
  73.             Name (AR0A, Package (0x04)
  74.             {
  75.                 Package (0x04)
  76.                 {
  77.                     0xFFFF,
  78.                     Zero,
  79.                     Zero,
  80.                     0x10
  81.                 },

  82.                 Package (0x04)
  83.                 {
  84.                     0xFFFF,
  85.                     One,
  86.                     Zero,
  87.                     0x11
  88.                 },

  89.                 Package (0x04)
  90.                 {
  91.                     0xFFFF,
  92.                     0x02,
  93.                     Zero,
  94.                     0x12
  95.                 },

  96.                 Package (0x04)
  97.                 {
  98.                     0xFFFF,
  99.                     0x03,
  100.                     Zero,
  101.                     0x13
  102.                 }
  103.             })
  104.             Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
  105.             {
  106.                 If (PICM)
  107.                 {
  108.                     Return (AR0A)
  109.                 }

  110.                 Return (PR0A)
  111.             }

  112.             Device (PEGP)
  113.             {
  114.                 Name (ELCT, Zero)
  115.                 Name (HVID, Zero)
  116.                 Name (HDID, Zero)
  117.                 OperationRegion (SGOP, SystemMemory, 0x9CFBEE18, 0x4B)
  118.                 Field (SGOP, AnyAcc, Lock, Preserve)
  119.                 {
  120.                     EBAS,   32,
  121.                     CPSP,   32,
  122.                     EECP,   32,
  123.                     EVCP,   32,
  124.                     XBAS,   32,
  125.                     SGMD,   8,
  126.                     SGFL,   8,
  127.                     PWOK,   8,
  128.                     HLRS,   8,
  129.                     DSEL,   8,
  130.                     ESEL,   8,
  131.                     PSEL,   8,
  132.                     PWEN,   8,
  133.                     PRST,   8,
  134.                     MXD1,   32,
  135.                     MXD2,   32,
  136.                     MXD3,   32,
  137.                     MXD4,   32,
  138.                     MXD5,   32,
  139.                     MXD6,   32,
  140.                     MXD7,   32,
  141.                     MXD8,   32,
  142.                     GBAS,   16,
  143.                     APDT,   32,
  144.                     AHDT,   32,
  145.                     IHDT,   32
  146.                 }

  147.                 OperationRegion (PCIS, PCI_Config, Zero, 0x0100)
  148.                 Field (PCIS, DWordAcc, Lock, Preserve)
  149.                 {
  150.                     DVID,   16,
  151.                     Offset (0x2C),
  152.                     SVID,   16,
  153.                     SDID,   16,
  154.                     Offset (0x4C),
  155.                     WVID,   16,
  156.                     WDID,   16
  157.                 }

  158.                 OperationRegion (GPIO, SystemIO, GBAS, 0x60)
  159.                 Field (GPIO, ByteAcc, Lock, Preserve)
  160.                 {
  161.                     Offset (0x0C),
  162.                     LVL0,   32,
  163.                     Offset (0x38),
  164.                     LVL1,   32,
  165.                     Offset (0x48),
  166.                     LVL2,   32
  167.                 }

  168.                 OperationRegion (PCAP, PCI_Config, EECP, 0x14)
  169.                 Field (PCAP, DWordAcc, NoLock, Preserve)
  170.                 {
  171.                     Offset (0x10),
  172.                     LCTL,   16
  173.                 }

  174.                 Method (_INI, 0, NotSerialized)  // _INI: Initialize
  175.                 {
  176.                     POFF ()
  177.                     Store (Zero, _ADR)
  178.                 }

  179.                 Method (_OFF, 0, Serialized)  // _OFF: Power Off
  180.                 {
  181.                     Store (LCTL, ELCT)
  182.                     Store (SVID, HVID)
  183.                     Store (SDID, HDID)
  184.                     Store (One, LNKD)
  185.                     While (LNotEqual (LNKS, Zero))
  186.                     {
  187.                         Sleep (One)
  188.                     }

  189.                     Store (Zero, PO35)
  190.                     Store (Zero, PO36)
  191.                     Notify (PEG0, Zero)
  192.                     Return (Zero)
  193.                 }

  194.                 Name (_ADR, Zero)  // _ADR: Address
  195.                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
  196.                 {
  197.                     0x09,
  198.                     0x04
  199.                 })
  200.             }
  201.       }
复制代码
然后找RM现成的亮度补丁、HD3000补丁打上去...... 还有其它的补丁有用的自己选择。
因为篇幅实在有限,我写得也不是教程,只能大致讲下我的一些思路和历程。黑果完善这块没有捷径,都得经过痛苦的学习......  我会把我的原始DSDT,原始SSDT与合并它们两个做好的DSDT一起上传,DSDT打了我认为该有的补丁,不局限于显卡,还包括了USB,IRQ,AUDIO,无线与有线网卡内建等等,有兴趣的朋友可以研究一下,最好把不足的地方补充出来,我也十分很想再进步。  当然我现在用得不是这套DSDT,有兴趣的可以留言,我再分享我用的这套没有屏蔽独显的DSDT与SSDT。
DSDT文件打包.zip (48.03 KB, 下载次数: 5)
注:只适用于HP G4 166E主板的笔记本 1233TX。

Rank: 2Rank: 2

UID
3032578
帖子
60
PB币
16
贡献
0
技术
2
活跃
36
14F
发表于 2018-4-10 13:42:59 IP属地重庆 |只看该作者

谢谢分享,小白看完了

Rank: 1

UID
1765742
帖子
58
PB币
0
贡献
0
技术
3
活跃
153
13F
发表于 2018-4-5 13:04:46 IP属地吉林 |只看该作者
wode25 发表于 2018-3-25 08:38
谢谢分享,小白看完了

加油,我也想知道,也可以多看看

Rank: 1

UID
1765742
帖子
58
PB币
0
贡献
0
技术
3
活跃
153
12F
发表于 2018-4-5 13:04:30 IP属地吉林 |只看该作者
加油,我也想知道,也可以多看看

Rank: 1

UID
4681434
帖子
54
PB币
0
贡献
0
技术
0
活跃
83
11F
发表于 2018-4-4 01:10:45 IP属地未知 |只看该作者
我也有此疑问

Rank: 2Rank: 2

UID
618258
帖子
209
PB币
829
贡献
0
技术
0
活跃
331
10F
发表于 2018-4-1 15:01:59 IP属地内蒙古 |只看该作者
楼主是天才,执着的天才

Rank: 1

UID
1179079
帖子
59
PB币
107
贡献
0
技术
5
活跃
84
9F
发表于 2018-3-28 15:13:10 IP属地北京 来自手机 |只看该作者
landix 发表于 2018-3-27 23:16
写得很好,不过楼主你发错版块了啊,应该发到HighSierra版块的,这里没人看得到的。。。

谢谢。开始搞自己的台式机时莫名其妙的把帖子开这里了,后来把家里的,亲戚的,朋友的各种老爷机,从10.8一路折腾到10.11路子相通也懒得换版块了,干脆把所有东西做个大杂烩放一起分享了。

Rank: 2Rank: 2

UID
4659142
帖子
63
PB币
123
贡献
0
技术
0
活跃
306
8F
发表于 2018-3-27 23:16:53 IP属地广东 |只看该作者
写得很好,不过楼主你发错版块了啊,应该发到HighSierra版块的,这里没人看得到的。。。

Rank: 1

UID
1179079
帖子
59
PB币
107
贡献
0
技术
5
活跃
84
7F
发表于 2018-3-27 14:20:23 IP属地河南 |只看该作者
2018.3.27 补充:   相信第一次成功进入MAC界面后,很少人的机器能完美运行,都要经过一段漫长的折腾,来完善。这里做为初阶小白,一直在摸索,把我折腾HP-1233TX的一些毛燥经验分享给更白的朋友。 进系统第一步,首先肯定确定三卡是否正常(显,声,网),显卡排第一位去驱动,HD3000+ATI 6470M(6750M),我的笔记本关掉集成显卡是不能工作的(意思就是独立显卡的运行依赖HD3000),而MAC不存在双显卡切换这一说,所以只能乖乖的用集显。机型设置MAC BOOK PRO 8,1,可以直接驱动;第二位就是网卡,有线或是无线一定先搞定一个凑合用(我都驱动了),加入RTL 8100.kext  可以用它直接上网做事情;声卡先不去搞(前期宝贵时间去搞更重要的东西!)。我的目的是能上网,不因为显卡问题死机,影响在MAC平台上操作。 准备好了折腾平台,第二步:  电源管理是整个电脑的核心,我要打响优化黑果第一枪! 去系统扩展里查看 appLPC.kext, AppleIntelCPUPowerManagement.kext,AppleIntelCPUPowerManagementClient.kext有没有加载,NO!! 翻看各种帖子,要驱动它们,感觉一劳永逸的方法就是改DSDT!(一些奇葩机型,打动态补丁不能解决的,改dsdt有可能解决),提取了DSDT 与7个SSDT,终端用 iasl -da -dl *.aml 反编译相对应的dsl文件,对它们用MacIASL 软件排错(只是排错,现在还没修改,教程论坛有)保存备用。  目标: 我要加载苹果自带的appleLPC.kext 电源管理。 win下用AIDA64 查看我电脑本身LPC ID 是8086,1c49,  mac系统里打开S\L\E 找到appleLPC.kext显示包内容发现info.plst里没有我的ID,我不想改系统原装的东西,我要仿冒!! 仿冒里面支持的8086,1e44(里面只要支持的都可以),打开DSDT 用WIN键+F键查找LPCB或0x001F0000 ,改成这样
  1. Device (LPCB)
  2. {
  3.     Name (_ADR,0x001F0000)
  4.     Method (_DSM, 4, NotSerialized)
  5.                 {
  6.                     Store (Package (0x06)
  7.                         {
  8.                             "device-id",
  9.                             Buffer (0x04)
  10.                             {
  11.                                  0x44, 0x1E, 0x00, 0x00
  12.                             },
  13.                             "name",
  14.                             Buffer (0x0D)
  15.                             {
  16.                                 "pci8086,1e44"
  17.                             },
  18.                             "IOName",
  19.                             Buffer (0x0D)
  20.                             {
  21.                                 "pci8086,1e44"
  22.                             }
  23.                         }, Local0)
  24.                     DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  25.                     Return (Local0)
  26.                 }
  27. ..........
  28. }
复制代码
点排错会提示少DTGP这个函数,在DSDT表开头最后一个External (...............)下面加上DTGP的定义
  1.     Method (DTGP, 5, NotSerialized)
  2.     {
  3.         If (LEqual (Arg0, Buffer (0x10)
  4.                 {
  5.                     /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
  6.                     /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
  7.                 }))
  8.         {
  9.             If (LEqual (Arg1, One))
  10.             {
  11.                 If (LEqual (Arg2, Zero))
  12.                 {
  13.                     Store (Buffer (One)
  14.                         {
  15.                             0x03
  16.                         }, Arg4)
  17.                     Return (One)
  18.                 }
  19.                  If (LEqual (Arg2, One))
  20.                 {
  21.                     Return (One)
  22.                 }
  23.             }
  24.         }
  25.          Store (Buffer (One)
  26.             {
  27.                 0x00
  28.             }, Arg4)
  29.         Return (Zero)
  30.     }
复制代码
看了有的帖子提供的仿冒代码不全,会导致LPC还是无法正常加载,后来又看了一篇帖子多加了四行代码(name 与IOname 那里)。改完保存一下,iasl DSDT.dsl 得到DSDT.aml 放到变色龙根目录,设置plist,加载DSDT.aml,其它选项不变,进kexts文件夹下把NullCPUPowerManagement.kext   与 各种Powermanagement 之类的kext全删除,开机测试,看到管理员登陆界面我心里踏实多了,继续查看系统扩展,WOW! appLPC.kext, AppleIntelCPUPowerManagement.kext,AppleIntelCPUPowerManagementClient.kext 全部原生加载。 至次,电源管理告一段落。(用变色龙引导的话,路子一样,试过效果刚刚的)
     心脏供电问题解决了,接下我就来搞显卡这一块了,显卡这块工作量很大,涉及了屏蔽独显减少功耗,涉及了休眠/睡眠这一块的功能,今天先到这吧,有时间了我再分享一下第三步折腾显卡这一块的经历!!

Rank: 1

UID
4839538
帖子
6
PB币
0
贡献
0
技术
0
活跃
6
6F
发表于 2018-3-26 23:38:01 IP属地北京 |只看该作者
加油,我也想知道,也可以多看看
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛