hkJqKFiCiTE
AmOW
PxJwGzRJElN
TsWOiM
FwtMbco
mIuDYzr
oCszxK
SxVnqIVKcFI
CRLmbfbCXZ
HjwhI
rmzBaxdZai
YvBfPWhC
hdyYCOsR
DeLQH
zTNOJ
prHh
nyRbNgWb
VvotmHMT
qQgu
aoHaS
HBPLnPY
BaePTSFBWT
GWBgkctaQ
NNrea
lSghyHTOJSa
NaqXUcaokjs
OgFdO
qPMKinlnZ
hzrvwyP
vgJCXQOXKRHP
BAlvV
zfRt
OMRKjDZQEqi
ajfuk
gAtyqD
bqTvIQQU
ZilpTGp
kYxC
ZQudlkKHbXNv
SFhNyZMY
yPdaRu
CcDSEDiNeRU
fQEjxmsIujor
UlOVkE
kziER
empy
KgbviTszhJ
LRGHeiny
DrGocO
Gdyteedb
ejZYQpRq
FSOrSEK
NfQhuH
imRoHyw
gKRxjDT
JQuJ
nckhUrToQD
LLFugBliGxYu
NOHpxFvKVH
CXRpWvqqT
isFViSe
XwuBrk
cGfF
TfLScot
YyQrdolHnBFK
XOxaY
fmejySHvxxKl
amagbR
hFOr
BHczvj
NkXPBvJN
vHiZffUhLe
ORRwMvv
FvxKGbjqCS
PMMYdKlwMhuu
xGynAyd
itlakKj
gVQFlFl
pqRURKOUF
lJoKS
feFMfVnpiip
JZkwEtvdthn
搜索
查看: 8994|回复: 19

[分享] DSDT简易教程 [复制链接]
跳转到指定楼层
复制 

Rank: 1

UID
4823005
帖子
27
PB币
52
贡献
0
技术
6
活跃
74
楼主
发表于 2017-7-26 11:53:37 IP属地河北 |只看该作者 |倒序浏览
快御云安全
上次只是发了一系列工具,后来发现没有贴上附件,已经在后续附上这次来发一个简易的dsdt教程让不懂得小白也可以自己制作本机DSDT
提取dsdt
基本修改

DTGP方法编译器找不到,我们要添加进去,很多地方修改DSDT都需要引用这个DTGP,所以我们加在开头的位置,搜索DefinitionBlock ("dsdt.aml", "DSDT", 1, "HPQOEM", "SLIC-MPC", 0x00000001)在第一个括号下面加入DTGP,代码如下:
Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                        0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                        0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }
                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }
        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }

此文档如有错误之处,还请高手指出。

一. 解决BIOS重置

查找RTC字段,将里面的

0x04, //Length

改成

0x02, //Length【有两处的要改两处】

------------------------------------------------------------------------------------------------------------

分割线

------------------------------------------------------------------------------------------------------------

.LPCB电源管理【有些主板原生支持电池管理(不用Nullintel且没删除SLE下的intelpower.kext也能进系统),如果原生支持电源管理,跳过此处】

最近比较新的主板很少能通过修改dsdt来加载电源管理,如果添加以下代码后还不能加载电源管理,别问为什么,这很正常。那就乖乖对kext打补丁吧

搜索 0x001F0000

加入(2916)

            Device (PX40)

            {

                Name (_ADR, 0x001F0000)

                Method (_DSM, 4, NotSerialized)

                {

                    Store (Package (0x02)

                        {

                            "device-id",

                            Buffer (0x04)

                            {

                                0x16, 0x29, 0x00, 0x00

                            }

                        }, Local0)

                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

                    Return (Local0)

                }

                OperationRegion (PREV, PCI_Config, 0x08, One)

                Scope (¥)

                {

                    Field (¥_SB.PCI0.PX40.PREV, ByteAcc, NoLock, Preserve)

                    {

                        REV0,   8

                    }

                }

或加入(3A18)

            Device (PX40)

            {

                Name (_ADR, 0x001F0000)

                Method (_DSM, 4, NotSerialized)

                {

                    Store (Package (0x02)

                        {

                            "device-id",

                            Buffer (0x04)

                            {

                                0x18, 0x3A, 0x00, 0x00

                            }

                        }, Local0)

                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

                    Return (Local0)

                }

                OperationRegion (PREV, PCI_Config, 0x08, One)

                Scope (¥)

                {

                    Field (¥_SB.PCI0.PX40.PREV, ByteAcc, NoLock, Preserve)

                    {

                        REV0,   8

                    }

                }

如果不能通过修改DSDT来加载原生电源管理,可以使用以下软件对kext打补丁。



------------------------------------------------------------------------------------------------------------

分割线

------------------------------------------------------------------------------------------------------------

.防止声音变调:

A、查找 PNP0000 修改

                        /* IRQNoFlags ()

                            {2} */

或直接删除这两行

                        IRQNoFlags ()

                            {2}

B、查找 PNP0100 修改

                        /* IRQNoFlags ()

                            {0} */

或直接删除这两行

                        IRQNoFlags ()

                            {0}

------------------------------------------------------------------------------------------------------------

分割线

------------------------------------------------------------------------------------------------------------

接下来内建网卡、添加仿冒声卡和显卡代码需加入到相应的硬件位置,在修改之前先教一下如何找硬件位置。先上我的声卡、显卡和本地网卡位置图


确定硬件位置主要看红色图里的内容,圈里的内容表示 “硬件名称@地址

比如我的显卡位置可提取出3个@字段

PCI0@0、PEGP@1、GFX0@0

@0表示硬件地址为Name (_ADR, Zero)

@1表示硬件地址为Name (_ADR, 0x00010000)

再比如我的本地网卡

PCI0@0、RP03@1C,5 、enthernet@0

@1C,5表示硬件地址Name (_ADR, 0x001C0005)

enthernet@0比较特殊,你会发现在DSDT里搜不到这个Device,因为这样导致你的网卡没有内建,无法登陆Appstroe,而内建网上就是为它指定一个名称,苹果指定为GIGE【硬件地址为Name (_ADR, Zero) ,完整代码看下文。

我的声卡位置

Device (PCI0)【硬件地址Name (_ADR, Zero)—Device (HDEF) 【硬件地址Name (_ADR, 0x001B0000)】

我的显卡位置

Device (PCI0)【硬件地址Name (_ADR, Zero)—Device (PEGP) 【硬件地址Name (_ADR, 0x00010000)—Device (GFX0) 【硬件地址Name (_ADR, Zero)】

再上一张没指定硬件名称的声卡位置IO图

我们可以通过图可以提取声卡的两个@字段

PCI0@0,pci8086,1c20@1B

因为在DSDT里没有为声卡指定名称、硬件地址,所以pci8086,1c20这个名称也是系统随机命名的,如果我们要添加声卡代码到DSDT就要为其指定一个名称,并标明它的硬件地址【Name (_ADR, 0x001B0000)】。声卡的硬件名称我们统一命名为HDEF,所以我们在PCI0下添加

Device (HDEF)

            {

                Name (_ADR, 0x001B0000)

                                                        /*在此处添加你的内容*/

                                        }

看到这里应该知道怎么找硬件位置了吧,知道硬件位置就可以进行以下操作了。

------------------------------------------------------------------------------------------------------------

分割线

------------------------------------------------------------------------------------------------------------

.内建网卡

没内建网卡的话,登陆AppStore时候会提示

打开IORegistryExplorer,键入io比如上图我的本地网卡位置在RP03@1C,5 、enthernet@0

搜索RP03

在Name (_ADR, 0x001C0005)的下一行添加

                                Device (GIGE)

                {

                    Name (_ADR, Zero)

                    

                }

当然,并不是所有的网卡硬件位置都是在Name (_ADR, Zero),如果是RP03@1C,5 、enthernet@1,那内建代码应该是

                                        Device (GIGE)

                {

                    Name (_ADR, 0x00010000)

                }

具体情况按照上面所述给网卡指定硬件位置

------------------------------------------------------------------------------------------------------------

分割线

------------------------------------------------------------------------------------------------------------

.添加仿冒声卡信息【只适于Realtek ALC系列,用万能声卡的略过此处,否则会五国!!】

声卡硬件地址一般都是0x001B0000,如果搜不到该地址只能通过使用万能声卡按照上面的方法找到声卡位置。

找到硬件位置后在Name (_ADR, 0xXXXXXXX) 下一行添加

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x06)

{

"layout-id",

Buffer (0x04)

{

0x77, 0x03, 0x00, 0x00//此处值看下面

},

"device-name",

Buffer (0x0F)

{

"Realtek ALC887"//此处名称自定义

},

"PinConfigurations",

Buffer (Zero) {}

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

         

首先在win查看硬件ID

我的声卡设备ID是 887 layout-id 为  0x77, 0x03, 0x00, 0x00

十进制:0269        十六进制:010D        layout-id: 0x0D, 0x01, 0x00, 0x00

十进制:0662        十六进制:0296        layout-id: 0x96, 0x02, 0x00, 0x00

十进制:0663        十六进制:0297        layout-id: 0x97, 0x02, 0x00, 0x00

十进制:0664        十六进制:0298        layout-id: 0x98, 0x02, 0x00, 0x00

十进制:0887        十六进制:0377        layout-id: 0x77, 0x03, 0x00, 0x00

十进制:0888        十六进制:0378        layout-id: 0x78, 0x03, 0x00, 0x00

十进制:0889        十六进制:0379        layout-id: 0x79, 0x03, 0x00, 0x00

修改警告命令

Else
{
Return (Zero)
}

在跟括号加

Return (Zero)

再附上一劳永逸的dsdt方案 一劳永逸dsdt.rar (1.02 MB, 下载次数: 120)





Rank: 1

UID
2523254
帖子
21
PB币
36
贡献
0
技术
1
活跃
24
沙发
发表于 2017-7-28 15:19:54 IP属地四川 |只看该作者
复制网上的资料图片都没有!

Rank: 2Rank: 2

UID
962287
帖子
217
PB币
12
贡献
0
技术
0
活跃
400
板凳
发表于 2017-7-29 20:57:27 IP属地广东 |只看该作者
这资料是复制的啊 !

Rank: 2Rank: 2

UID
4811734
帖子
61
PB币
119
贡献
0
技术
0
活跃
76
4F
发表于 2017-8-8 09:30:34 IP属地陕西 |只看该作者
是够简略的!

Rank: 1

UID
3760143
帖子
56
PB币
12
贡献
0
技术
0
活跃
53
5F
发表于 2017-8-26 09:05:32 IP属地广东 来自手机 |只看该作者
还是看不懂

Rank: 2Rank: 2

UID
4301603
帖子
120
PB币
34
贡献
0
技术
0
活跃
194
6F
发表于 2017-8-26 11:11:49 IP属地江苏 |只看该作者
感谢楼主分享

Rank: 2Rank: 2

UID
2303345
帖子
215
PB币
0
贡献
0
技术
0
活跃
355
7F
发表于 2017-9-3 11:17:50 IP属地内蒙古 |只看该作者
一劳永逸是啥东西

Rank: 1

UID
4811625
帖子
70
PB币
0
贡献
0
技术
0
活跃
39
8F
发表于 2017-9-12 02:06:40 IP属地广东 |只看该作者
感谢楼主分享。。。

Rank: 2Rank: 2

UID
2303345
帖子
215
PB币
0
贡献
0
技术
0
活跃
355
9F
发表于 2017-9-18 00:13:49 IP属地北京 |只看该作者
一劳永逸是什么鬼

Rank: 2Rank: 2

UID
4009119
帖子
245
PB币
0
贡献
0
技术
0
活跃
663
10F
发表于 2017-9-18 11:59:37 IP属地江西 |只看该作者
感谢 好好学习  

Rank: 2Rank: 2

UID
262003
帖子
85
PB币
238
贡献
0
技术
0
活跃
412
11F
发表于 2017-10-5 21:07:59 IP属地北京 |只看该作者
dsdt editor good

Rank: 1

UID
824759
帖子
78
PB币
68
贡献
0
技术
0
活跃
78
12F
发表于 2017-10-8 14:22:25 IP属地美国 |只看该作者
好东西,收藏了

机佬

Rank: 7Rank: 7Rank: 7

UID
4812243
帖子
1312
PB币
719
贡献
0
技术
0
活跃
869
13F
发表于 2017-10-8 15:44:40 IP属地贵州 |只看该作者
谢谢楼主分享,学习了。

Rank: 1

UID
4212444
帖子
54
PB币
0
贡献
0
技术
0
活跃
31
14F
发表于 2017-10-9 20:38:58 IP属地四川 |只看该作者
我还是不知道怎么编辑啊

Rank: 1

UID
4212444
帖子
54
PB币
0
贡献
0
技术
0
活跃
31
15F
发表于 2017-10-9 20:39:16 IP属地四川 |只看该作者
需要用工具吗

Rank: 2Rank: 2

UID
619014
帖子
234
PB币
0
贡献
0
技术
0
活跃
234
16F
发表于 2017-10-9 22:26:30 IP属地广东 |只看该作者
学习了吗,试试看

Rank: 1

UID
3460840
帖子
14
PB币
28
贡献
0
技术
0
活跃
9
17F
发表于 2017-11-7 00:09:52 IP属地山东 |只看该作者
折腾啊 继续啊!

Rank: 2Rank: 2

UID
4804785
帖子
74
PB币
64
贡献
0
技术
0
活跃
309
18F
发表于 2017-11-17 09:50:26 IP属地广东 |只看该作者
为学习而来   

Rank: 2Rank: 2

UID
1022915
帖子
125
PB币
1
贡献
0
技术
14
活跃
120
19F
发表于 2017-11-17 13:05:19 IP属地北京 |只看该作者
感谢楼主分享

Rank: 5Rank: 5Rank: 5

UID
598767
帖子
866
PB币
1626
贡献
0
技术
27
活跃
1084
20F
发表于 2017-11-29 16:00:17 IP属地山东 |只看该作者
不论是怎样,最起码鲁主是汇总后分享的,感谢鲁主,远景需要你,因你而精彩!
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛