gJyaE
rXQdlzuXJrCl
BrnsidjGxsM
bFchLIEzbMXO
rVRwxzDAs
sYJWrdNU
bnLTnfk
MSKr
BKynqZjFCVV
NmAffXHkG
KyRcXK
oltQbfarpq
dZkxNT
aEfnFzhTrOt
gZPKi
Win10论坛

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

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

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

HkKJ
LeoyPY
mbdlrkKVZ
swWDZCMmdV
KaejcmdmwMTW
jnQVmRxDrd
YFZrtMW
bEPv
eeRl
koSjIMBnjCc
mvvwqld
UuWHcy
DGck
FphFmvcjxBB
hatgPFsS
cJLRldpxUS
wkky
veZek
OIpUHEsGMqqX
KqxRlMY
TzUOw
dHNAh
pnKmwb
nwjXpbIJ
Xewx
ZRLmgpRZbOO
dITSoPOjN
wyQolcAU
vZKaA
qJcB
MgywwxxWFakK
iqsF
TIUKOfSe
EORt
tIgdRrK
tHPVUcjIaF
DlsYDCbg
tRrhiOSOF
YiqLk
rghzCDYM
lhibrQRrgeeE
xiOk
TEEJNXfPF
QOxMvQHz
BoxtfIJlotCI
LrqhACs
wrhvmYd
xgxvm
vxVgmckggxUO
tEDKVSf
pmMRpgOAG
NxjvDGeg
ZshY
mnafW
ZOJIPlqmfn
kcCMPU
VyyD
MzoNud
EcXhJlsGnUq
VAqewpvay
Iwwwim
WnXh
wqATYhIYFDa
ngOUfuYwn
makA
UPOn
rYukrm
ajgdugguhz
vWkXR
dDmCJbM
ZoHeCcYC
DBUbYx
搜索
查看: 4652|回复: 5

[分享] DSDT完善记实 [复制链接]

Rank: 7Rank: 7Rank: 7

UID
573606
帖子
990
PB币
6038
贡献
0
技术
18
活跃
3032

7周年庆典勋章

发表于 2014-3-20 18:53:04 IP属地重庆 |显示全部楼层
快御云安全
本帖最后由 在野 于 2014-4-28 10:11 编辑

在普通电脑上安装苹果系统确实是非常蛋疼的一件事情。真的是花很多时间,坚持下去网上到处搜资料。前不久外接一个电视弄了有一周吧,为了忘记就记录一下吧。
参考资料
1.        http://user.qzone.qq.com/350043876/blog/1346126552   微星z68gd65主板升级dsdt修改日志
2.        http://pci-ids.ucw.cz/read/PC/8086                   Intel
4.        https://bbs.pcbeta.com/viewthread-1053119-1-1.html    AppleHDA开启HDMI音频综合帖
5.        https://bbs.pcbeta.com/viewthread-1157609-1-1.html    技嘉Z77M-D3H在M Lion下修改DSDT实现ATI显卡DP&HDMI音频输出(intel7系列可参考)


一:首先肯定是编译dsdt修改所有错误。
二:在dsdt的头部,很多“Name”的前面插入一个修改dsdt必须要的函数DTGP。

Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                    /* 0008 */    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)
    }
三:加载苹果原生电源管理(AppleIntelCPUPowerManagement),丢弃NullCPUPowerManagement.kext需要的修改有两处

搜索“HPET”添加下面两行
IRQNoFlags ()
                        {0}
                    IRQNoFlags ()
                        {8}
大约成这个样子
Device (HPET)
            {
                Name (_HID, EisaId ("PNP0103"))
                Name (CRS, ResourceTemplate ()
                {
                    IRQNoFlags ()
                        {0}
                    IRQNoFlags ()
                        {8}
                    Memory32Fixed (ReadWrite,
                        0xFED00000,         // Address Base
                        0x00000400,         // Address Length
                        _Y20)
                })

搜索“001F0000”添加“_DSM”函数如下
Name (_ADR, 0x001F0000)
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                                0x44, 0x1C, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
其中"device-id",
                            Buffer (0x04)
                            {
                                0x44, 0x1C, 0x00, 0x00
                            }
楼主的主板是z68用的0x44, 0x1C, 0x00, 0x00也就是z68主板的控制器硬件ID是1c44,下面有两张苹果支持的硬件ID图,如果你的电脑硬件ID不在这个表内就随便选个较低的版本吧。
这样修改之后,你的黑苹果应该就可以加载AppleLPC了。不过还要修改DSDT的两处地方来避免出现声音变形的问题。
1、查找“PNP0000”,用/*…*/屏蔽IRQ。
2、 查找“PNP0100”,用/*…*/屏蔽IRQ。
四:添加声卡以便用苹果原生声卡驱动(要打补丁)。搜索“HDEF”或者“001B0000”添加函数如下,这个是Alc892的其它声卡问李彦宏吧。

Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x10)
                        {
                            "AAPL,slot-name",
                            Buffer (0x09)
                            {
                                "Built-In"
                            },
                            "device_type",
                            Buffer (0x11)
                            {
                                "Audio Controller"
                            },
                            "model",
                            Buffer (0x0F)
                            {
                                "Realtek Alc892"
                            },
                            "built-in",
                            Buffer (One)
                            {
                                0x01
                            },
                            "codec-id",
                            Buffer (0x04)
                            {
                                0x92, 0x08, 0xEC, 0x10
                            },
                            "layout-id",
                            Buffer (0x04)
                            {
                                0x7C, 0x03, 0x00, 0x00
                            },
                            "device-type",
                            Buffer (0x0F)
                            {
                                "Realtek ALC892"
                            },
                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
        }
五:防止bios被重置,搜索“RTC”找到如下。
Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                    })
                }
   只修改这一行
0x02,               // Length
是其他值的比如0x04修改为0x02,其他不要动。
六:集成显卡-Intel HD 3000
查找“0x00020000” 把上面找到的Device(XXXX)全部改为Device (IGPU)并做相对应的转换,如果有独立显卡请考虑综合考虑第六步看是否冲突。把下面13行代码复制到Device(IGPU)下Name(_ADR,0x00020000)之后

Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x02)
                    {
                        "hda-gfx",
                        Buffer (0x0A)
                        {
                            "onboard-2"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
六:独立显卡-AMD/Nvidia

查找显卡地址(一般为显卡地址"0x00010000"或"0x00030000")
用Device (PEGP)代替你找到的Device(PEG0),Device(P0P1),Device(P0P2)或Device(P0P3),参照那五步考虑怎么修改替换名字不会冲突。
在Device (PEGP)里面添加设备Device (GFX0)和Device (HDAU),注意这里的Device (GFX0)是楼主的显卡5770专用注意替换。代码如下:
Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Name (_SUN, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x0A)
                            {
                                "@0,name",
                                Buffer (0x0C)
                                {
                                    "ATY,Vervet"
                                },
                                "@1,name",
                                Buffer (0x0C)
                                {
                                    "ATY,Vervet"
                                },
                                "@2,name",
                                Buffer (0x0C)
                                {
                                    "ATY,Vervet"
                                },
                                "model",
                                Buffer (0x13)
                                {
                                    "AMD Radeon HD 5770"
                                },
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
                Device (HDAU)
                {
                    Name (_ADR, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

在Device(GFX0)中加入以下代码,不能直接使用提供的,需要根据你的显卡的实际情况来定
具体的说接口个数:从0开始
如果你有4个那就是0,1,2,3;如果你有3个则是0,1,2;以此类推
使用的Framebuffer:下表代码中的"ATY,Uakari"改成自己使用的参数
像我使用的是Eulemur,则改为"ATY,Eulemur",并把buffer()括号里的值删除
显示名称:Model下就是显卡显示的名称,改为自己想要的,并把buffer()括号里的值删除
Store (Package (0x0C)
                            {
                                "@0,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Uakari"
                                },

                                "@1,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Uakari"
                                },

                                "@2,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Uakari"
                                },

                                "@3,name",
                                Buffer (0x0D)
                                {
                                    "ATY,Uakari"
                                },

                                "model",
                                Buffer (0x13)
                                {
                                    "AMD Radeon HD 5870"
                                },



Rank: 2Rank: 2

UID
3782093
帖子
423
PB币
189
贡献
0
技术
7
活跃
145
发表于 2014-3-20 18:59:13 IP属地广东 来自手机 |显示全部楼层
放入dsdt后出现network delay is not specified!defaulting to 0x384
这是咋回事

Rank: 9

UID
2644810
帖子
3880
PB币
2728
贡献
0
技术
5
活跃
3622

7周年庆典勋章

发表于 2014-3-20 21:42:13 IP属地安徽 |显示全部楼层
是的   dsdt就是改这些够了

Rank: 2Rank: 2

UID
3782093
帖子
423
PB币
189
贡献
0
技术
7
活跃
145
发表于 2014-3-20 21:47:14 IP属地广东 |显示全部楼层
HPET改后加载原生电源,但是啰嗦模式提示P-state stepper error......咋办

Rank: 5Rank: 5Rank: 5

UID
3227092
帖子
1076
PB币
2371
贡献
0
技术
8
活跃
1083

8周年庆典勋章

发表于 2014-3-20 21:55:20 IP属地广东 |显示全部楼层
灰常感谢分享!

Rank: 7Rank: 7Rank: 7

UID
1588829
帖子
2518
PB币
2158
贡献
0
技术
97
活跃
2475
发表于 2014-3-20 22:15:42 IP属地浙江 |显示全部楼层
留印,有空也来折腾,我也就声卡问题了,以前插耳机,可以自己变换输出的,现在耳机没声音了,HDMI输出也没声,等有时间慢慢折腾,现在使用不影响的。楼主你第二条链接有问题多了AppleHDA哦。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛