Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 1871|回复: 18

[分享] DSDT简易教程 [复制链接]

Rank: 1

UID
4823005
帖子
15
PB币
63
贡献
0
技术
2
活跃
20
发表于 2017-7-26 11:53:37 |显示全部楼层
上次只是发了一系列工具,后来发现没有贴上附件,已经在后续附上这次来发一个简易的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, 下载次数: 42)





Rank: 1

UID
2523254
帖子
21
PB币
36
贡献
0
技术
1
活跃
22
发表于 2017-7-28 15:19:54 |显示全部楼层
复制网上的资料图片都没有!

Rank: 1

UID
962287
帖子
94
PB币
0
贡献
0
技术
0
活跃
133
发表于 2017-7-29 20:57:27 |显示全部楼层
这资料是复制的啊 !

Rank: 2Rank: 2

UID
4811734
帖子
57
PB币
82
贡献
0
技术
0
活跃
58
发表于 2017-8-8 09:30:34 |显示全部楼层
是够简略的!

Rank: 1

UID
3760143
帖子
56
PB币
12
贡献
0
技术
0
活跃
51
发表于 2017-8-26 09:05:32 来自手机 |显示全部楼层
还是看不懂

Rank: 2Rank: 2

UID
4301603
帖子
106
PB币
6
贡献
0
技术
0
活跃
136
发表于 2017-8-26 11:11:49 |显示全部楼层
感谢楼主分享

Rank: 2Rank: 2

UID
2303345
帖子
129
PB币
0
贡献
0
技术
0
活跃
160
发表于 2017-9-3 11:17:50 |显示全部楼层
一劳永逸是啥东西

Rank: 1

UID
4811625
帖子
70
PB币
1
贡献
0
技术
0
活跃
36
发表于 2017-9-12 02:06:40 |显示全部楼层
感谢楼主分享。。。

Rank: 2Rank: 2

UID
2303345
帖子
129
PB币
0
贡献
0
技术
0
活跃
160
发表于 2017-9-18 00:13:49 |显示全部楼层
一劳永逸是什么鬼

Rank: 2Rank: 2

UID
4009119
帖子
163
PB币
1
贡献
0
技术
0
活跃
174
发表于 2017-9-18 11:59:37 |显示全部楼层
感谢 好好学习  

Rank: 2Rank: 2

UID
262003
帖子
65
PB币
6
贡献
0
技术
0
活跃
116
发表于 2017-10-5 21:07:59 |显示全部楼层
dsdt editor good

Rank: 1

UID
824759
帖子
78
PB币
68
贡献
0
技术
0
活跃
77
发表于 2017-10-8 14:22:25 |显示全部楼层
好东西,收藏了

Rank: 2Rank: 2

UID
4812243
帖子
381
PB币
114
贡献
0
技术
0
活跃
117
发表于 2017-10-8 15:44:40 |显示全部楼层
谢谢楼主分享,学习了。

Rank: 1

UID
4212444
帖子
48
PB币
0
贡献
0
技术
0
活跃
23
发表于 2017-10-9 20:38:58 |显示全部楼层
我还是不知道怎么编辑啊

Rank: 1

UID
4212444
帖子
48
PB币
0
贡献
0
技术
0
活跃
23
发表于 2017-10-9 20:39:16 |显示全部楼层
需要用工具吗

Rank: 2Rank: 2

UID
619014
帖子
226
PB币
0
贡献
0
技术
0
活跃
116
发表于 2017-10-9 22:26:30 |显示全部楼层
学习了吗,试试看

Rank: 1

UID
3460840
帖子
14
PB币
27
贡献
0
技术
0
活跃
7
发表于 2017-11-7 00:09:52 |显示全部楼层
折腾啊 继续啊!

Rank: 1

UID
4804785
帖子
11
PB币
39
贡献
0
技术
0
活跃
27
发表于 2017-11-17 09:50:26 |显示全部楼层
为学习而来   

Rank: 1

UID
1022915
帖子
105
PB币
4
贡献
0
技术
14
活跃
95
发表于 2017-11-17 13:05:19 |显示全部楼层
感谢楼主分享
关闭

站长推荐

近期很多账号被盗,请加强密码保护!!
请注意保护自身账号安全
回顶部
Copyright (C) 2005-2017 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件