CgEhbwQL
gqRklrIktPtq
AXjyEApuSYPX
YvhbmfgoX
OTnmFMsQ
cBCSwG
wBpkvEmfn
TLyZX
Wqzd
bHVIps
OqhWAgUT
iChJKKbIX
apAKg
TwDHmiCHJTq
nLrbnePs
nDemqRA
Win10论坛

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

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

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

vcHiTkBdO
MLMeeuHQv
qEADtAjFl
IhbiIumbHh
PfWMWKCW
CCfJG
jFCzPizVh
xhHARUjp
SDWg
rjkCW
LzEeGcFzY
EwDdOh
oADkHVnswYh
bQkCphPPq
DGtFrPTxK
UyuT
zcciffUiCAV
ZXbDBFzg
JjzhOgKJpG
olqfi
gLOBTsUL
uvgnXJaNZ
djSOzIYWgb
TGsTsQIRr
looW
VdtzAwa
nTeJAM
GqBrSFHHGYW
WXSBh
HibIhBSYc
OIVLRe
SBGyLgP
EVpBSkTj
WFBSv
jJRqeR
EBhtBWoZD
HsHIMfmJLJW
VTWjBdvF
BMFDPKSczF
vItURXwZHruw
tLZUDtZKxC
IOYhKPiTb
UHRg
TyeUlCC
ymMF
cezmcdeECEks
Furxoc
TVaZ
tJcqkQgyMXtR
oxdVGWXXBtB
uTGs
FwOprqjf
cjiJTAj
LuqbRG
WkKjishR
DzGbYziH
zdvHjx
搜索
查看: 282555|回复: 1003

[原创内容] 简单教程:看图学DSDT及SSDT制作     [复制链接]
跳转到指定楼层
复制 

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

楼主
发表于 2012-5-10 20:13:01 IP属地浙江 |只看该作者 |倒序浏览
快御云安全
本帖最后由 imura 于 2012-6-21 19:54 编辑

一、适用人群
主板型号在列表清单内的,详见下帖
https://bbs.pcbeta.com/viewthread-948510-1-1.html
以上主板补丁大多可以解决使用原生电源管理的问题,但可能无法睡眠或睡眠不正常。
无睡眠后bios重启补丁
要使用原生电源管理,请删掉NullCPUPowerManagement.kext


二、准备工作
Windows: 
1.aida64(原everest)
2.DSDT Editor For Windows,跟mac版操作一样
Mac:
1.DSDT Editor For mac
2.Chameleon wizzard 4.1

注:DSDT Editor必须有Java Run Time支持,mac下会自动上网安装,windows下请自行下载Java Run Time

三、其他DSDT制作参考资料
1.DSDT(USB内建.HUB修改等...)
2.
DSDT修改(App store登陆问题,网卡内建)


四、操作步骤(以本人的配置为例)
  • Windows下操作
  • aida64导出acpi_dsdt.bin
ACPI_TOOL.jpg

acpi_dsdt.jpg
2.导出acpi_ssdt.bin和acpi_ssdt-1.bin等,Windows请在非超频状态下,开启bios中Intel CPU Speedstep功能
各主板的bios设置可能不一样,基本上就是要Windows能够自己调整cpu频率的情况下导出
如下图,ssdt从上往下依次另存为acpi_ssdt.bin,acpi_ssdt-1.bin,acpi_ssdt-2.bin。。。
有几个存几个,本人只有两个

acpi_SSDTjpg.jpg
3.顺便把显卡的Bios(rom)也导出来
VideoBiosDump.jpg
  • 文件改名
屏幕快照 2012-05-10 下午7.33.15.png
依次改名:效果如下图
屏幕快照 2012-05-10 下午7.34.04.png
  • Mac环境:用DSDT EDITOR给DSDT打补丁

1.打开acpi_dsdt.aml


屏幕快照 2012-05-10 下午7.34.40.png

2.选择主板相应的dsdt补丁
屏幕快照 2012-05-10 下午7.36.27.png
3.应用补丁,选apply

屏幕快照 2012-05-10 下午7.36.36.png

4.按F5编译

屏幕快照 2012-05-10 下午7.37.08.png
5.弹出编译错误信息窗口,先按右下解Fix Errors自动修复错误
一般补丁都可以做到 0 Errors

有Warning和remarks可以暂时忽略

但不能有Errors

本篇暂不提及常见Error的解决方法

屏幕快照 2012-05-10 下午7.37.37.png

6.无Error,另存为aml为 DSDT.aml
屏幕快照 2012-05-10 下午7.40.34.png

  • 用DSDT EDITOR编译SSDT
打开acpi_ssdt.aml,按F5编译为ssdt.aml
无Error则依次存为SSDT.aml,SSDT-1.aml,SSDT-2.aml

  • 变色龙设置:org.chameleon.boot.plist
打开Chameleon Wizzard,选org.chameleon.boot.plist
如图,以下为基本设置
屏幕快照 2012-05-10 下午7.43.07.png

将DSDT.aml,SSDT.aml,显卡rom放到变色龙Extra目录下


屏幕快照 2012-05-10 下午7.36.08.png (86.33 KB, 下载次数: 553)

屏幕快照 2012-05-10 下午7.36.08.png

9

查看全部评分

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

沙发
发表于 2012-5-10 20:13:17 IP属地浙江 |只看该作者
本帖最后由 imura 于 2012-6-14 18:22 编辑

第二篇 准备写网卡内建,USB内建
这里其实基本参考Z大的文章即可,我简单补充一下。此操作在Mac下比较方便
一、准备软件
1.DSDT Editor For mac
2.IORegistryExplorer
二、参考资料
1.[分享]DSDT修改第一季(包括App store登陆问题,自动降频),附上mac下和win下安装Lion教程

三、网卡内建方法
1.最简单的方法是在变色龙参数里设置 Ethernet Built In
用Chameleon Wizzard来管理org.chameleon.boot.plist比较方便,打个勾保存一下。
此方法简单易行,但不是每台机子都支持。不搞DSDT完美的人可试用一下,不行再往下看

2.DSDT里内建,最关键的是在设备描述代码中,加入
  1.                 Method (_DSM, 4, NotSerialized)
  2.                 {
  3. ……代码省略
  4.             }
复制代码
3.网卡内建模板,以及在DSDT中插入的位置,以下为了简便起见,会引用Z大不少图片和文字,在此表示感谢
本模板一方面是为了完成网卡内建,另一方面是为了显示美观,其中有些代码,我也不知道作用,但反正能用。:)
  1. Device (P0P5)
  2.             {
  3.                 Name (_ADR, 0x001C0001)
  4.                 Method (_PRW, 0, NotSerialized)
  5.                 {
  6.                     Return (GPRW (0x09, 0x04))
  7.                 }
  8.                 Method (_PRT, 0, NotSerialized)
  9.                 {
  10.                     If (PICM)
  11.                     {
  12.                         Return (AR05)
  13.                     }
  14.                     Return (PR05)
  15.                 }
  16.                 Device (GIGE)  //网卡代码从这里开始,GIGE只是个命名而已,你想用什么就用什么,但要保持整个DSDT上下文统一
  17.                 {
  18.                     Name (_ADR, Zero) //网卡的地址,必须根据IORegistryExplorer来填写,下文介绍
  19.                     Name (_SUN, one) //网卡所在的插槽,Zero,One,0x02,0x03等均可,填写完了在系统信息中pci卡里会显示 PCI-SLOT1
  20.                     Method (_DSM, 4, NotSerialized)//内建代码开始
  21.                     {
  22.                         Store (Package (0x0A) //下面有5组10个数据,10的16进制代码0x0A
  23.                             {
  24.                                 "model",
  25.                                 Buffer (0x17) //0x17,表示下面描述的字符个数,转16进制,可大于0x17,但不能小于0x17
  26.                                 {
  27.                                     "Realtek RTL8168D/8111D"//根据你自己的型号随便写,最后数一下个数就可以了,下面代码同样也是如此处理
  28.                                 },
  29.                                 "codec-id",
  30.                                 Buffer (0x04)
  31.                                 {
  32.                                     0x68, 0x81, 0x00, 0x00 //这里我也不是太了解。Z大用的是Device id吧,8168网卡就这样写吧。好像写错了照样内建
  33.                                 },
  34.                                 "built-in",
  35.                                 Buffer (One)
  36.                                 {
  37.                                     0x01
  38.                                 },
  39.                                 "device_type",
  40.                                 Buffer (0x09)
  41.                                 {
  42.                                     "Ethernet"
  43.                                 },
  44.                                 "name",
  45.                                 Buffer (0x36)
  46.                                 {
  47.                                     "Realtek RTL8168D/8111D PCI-E Gigabit Ethernet Adapter"
  48.                                 }
  49.                             }, Local0)
  50.                         DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  51.                         Return (Local0)
  52.                     }//网卡内建代码结束
  53.                 }//网卡代码结束
  54.             }
复制代码
3.利用IORegistryExplorer来查找网卡地址及代码插入位置

在网卡已经驱动的情况下,IORegistryExplorer里搜索IOEthernetInterface,找到自己网卡的位置
以上图为例,在PCI0@0-POP5@1C,1设备下
那么在dsdt代码中,打开device(PCI0)找到POP5,在POP5这段代码的大括号内添加网卡信息

上图中GIGE@0,那么Name(_ADR,Zero)或Name(_ADR,0x00000000)
如GIGE@9,那么Name(_ADR,0x00000009)
如果像POP5@1C,1那样的,GIGE@1A,2那么Name(_ADR,0x001A0002)
以此类推

完成后编译无错,保存为aml,重启电脑后,像上图一样查看IORegistryExplorer,IOBuiltin是YES那就代表内建成功



4

查看全部评分

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

板凳
发表于 2012-5-10 20:13:35 IP属地浙江 |只看该作者
占楼备用

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

4F
发表于 2012-5-10 20:13:56 IP属地浙江 |只看该作者
占楼备用

Rank: 7Rank: 7Rank: 7

UID
1021130
帖子
721
PB币
844
贡献
0
技术
124
活跃
2217

7周年庆典勋章

5F
发表于 2012-5-10 20:20:38 IP属地江苏 |只看该作者
好贴子,学习了!一定要顶!

哦哦也也嗷嗷嗷

Rank: 7Rank: 7Rank: 7

UID
1385882
帖子
1297
PB币
1136
贡献
0
技术
27
活跃
264
6F
发表于 2012-5-10 20:24:00 IP属地辽宁 |只看该作者
我来标记一下!!!!!! 慢慢学习!!!!

UID
2409498
帖子
27335
PB币
915
贡献
4
技术
1353
活跃
712
7F
发表于 2012-5-10 20:27:31 IP属地湖北 |只看该作者
来顶龙猫的帖子~~~~

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

8F
发表于 2012-5-10 20:45:35 IP属地浙江 |只看该作者
本帖最后由 imura 于 2012-5-10 20:55 编辑
p.H 发表于 2012-5-10 20:27
来顶龙猫的帖子~~~~

我应该把DSDT紫米大大还有z大的教程也链上去的

最好还做个DSDT常见错误的解决方法帖,需要时间收集啊

Rank: 9

UID
697283
帖子
2199
PB币
4083
贡献
0
技术
151
活跃
1662

7周年庆典勋章

9F
发表于 2012-5-10 21:29:50 IP属地天津 |只看该作者
支持,学习了

♛Hackintosh拾荒者♛

Rank: 7Rank: 7Rank: 7

UID
281520
帖子
2116
PB币
13832
贡献
0
技术
4
活跃
876

7周年庆典勋章

10F
发表于 2012-5-10 23:23:21 IP属地湖北 |只看该作者
辛苦了,后来的同学有福了!

与美人相约,幸会。

Rank: 7Rank: 7Rank: 7

UID
2288409
帖子
2129
PB币
1480
贡献
0
技术
0
活跃
1482

十一周年 7周年庆典勋章

11F
发表于 2012-5-10 23:29:25 IP属地广西 |只看该作者
SSDT有Error怎么修改?我没修改直接放进去的

Rank: 5Rank: 5Rank: 5

UID
44061
帖子
737
PB币
1635
贡献
0
技术
59
活跃
359
12F
发表于 2012-5-10 23:41:36 IP属地河北 |只看该作者
imura 发表于 2012-5-10 20:45
我应该把DSDT紫米大大还有z大的教程也链上去的

最好还做个DSDT常见错误的解决方法帖,需要时间收集啊

acpi_ssdt.aml  好多错误,点了fix还是这m多。。疯了我
怎么解决啊
未命名.jpg

Rank: 5Rank: 5Rank: 5

UID
2603785
帖子
759
PB币
1426
贡献
0
技术
11
活跃
15
13F
发表于 2012-5-10 23:49:11 IP属地广东 |只看该作者
这个必需顶!。。。imura

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

14F
发表于 2012-5-11 06:45:45 IP属地浙江 |只看该作者
aksoft 发表于 2012-5-10 23:41
acpi_ssdt.aml  好多错误,点了fix还是这m多。。疯了我
怎么解决啊

Requires Package
把Return (Zero)改成 Return (Package(Zero){})

not all control Paths Return a Value(_CST)
应该添加一个访回值,一般是Return (Zero)
在函数(方法?)最后面, 这一大段代码大括号} 之前添加
但同样因为后面又有must Return a Values(Package Required for _CST)
所以这里访回值应该是一个Package,故不是Return(Zero)
而是
Return (Package(Zero){})

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

15F
发表于 2012-5-11 07:24:52 IP属地浙江 |只看该作者
lizuyang 发表于 2012-5-10 23:29
SSDT有Error怎么修改?我没修改直接放进去的

SSDT其实跟DSDT一样的语法
Error一样要修改,不同板子SSDT都不一样

Rank: 5Rank: 5Rank: 5

UID
933479
帖子
778
PB币
1795
贡献
0
技术
14
活跃
200
16F
发表于 2012-5-11 08:35:14 IP属地山东 |只看该作者
有个问题要请教龙猫兄,变色龙里那个c-state generate不需要勾么?我开这个的时候,启动日志里就有C-State Generated with SSDT,如果不加的话,就没有。那么,不加的时候,SSDT到底启用了没有,该怎么验证?

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

17F
发表于 2012-5-11 08:46:30 IP属地浙江 |只看该作者
lsls01 发表于 2012-5-11 08:35
有个问题要请教龙猫兄,变色龙里那个c-state generate不需要勾么?我开这个的时候,启动日志里就有C-State  ...

用了SSDT.aml,就Drop SSDT可以了。如果不用SSDT.aml,那么你把c-state p-state选上吧,让变色龙帮你管理电源

至少到底启用了没有。温度监控软件来看呗
或者SMC Monito,搜索一下吧。挺长一段

Rank: 1

UID
1594920
帖子
109
PB币
87
贡献
0
技术
0
活跃
0
18F
发表于 2012-5-11 10:41:43 IP属地江苏 |只看该作者
y460路过,帮顶!!!!谢谢!!!

Rank: 5Rank: 5Rank: 5

UID
44061
帖子
737
PB币
1635
贡献
0
技术
59
活跃
359
19F
发表于 2012-5-11 10:49:46 IP属地河北 |只看该作者
imura 发表于 2012-5-11 06:45
Requires Package
把Return (Zero)改成 Return (Package(Zero){})

无error了,哈哈,编译成功,中午 试试
安装 10.7.4,都dsdt,应该没啥问题吧

家有麦宝

Rank: 9

UID
1557992
帖子
2204
PB币
2586
贡献
0
技术
332
活跃
79

7周年庆典勋章

20F
发表于 2012-5-11 10:59:56 IP属地浙江 |只看该作者
本帖最后由 imura 于 2012-5-11 11:01 编辑
aksoft 发表于 2012-5-11 10:49
无error了,哈哈,编译成功,中午 试试
安装 10.7.4,都dsdt,应该没啥问题吧

显卡,声卡,网卡内建应该都还没做吧

安装应该没问题了

找个U盘做变色龙引导,extra目录下放dsdt,

用U盘引导安装原版。mbr的需要替换osinstall.mpkg


回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛