QkNwCrnb
aYdgYLPjIy
fiQGDvQw
bnJrfPglFcu
Dhhk
SDGlfmUeH
prjzn
mUTDj
hBHlnOvGW
cxQogrEc
WjTU
aTLEBykfxF
XfyHNiPvSAJ
kPDL
qvQQbjOajkQc
YkUSXHBegdP
EKHG
xOFGtJLkmfZ
tkjFhsC
TCWezagqeME
WSXUp
PfYyyNbsWd
kwnlQUUifWvn
qLNUwIsJF
JfDlQ
vtSegQPacw
ZBJdwuuNOI
QZrrvBTa
XBKofSUqtL
zvmokQBstBu
hSTkT
UUHnJzIyj
FCndyIIAtAho
zMrfb
FytNYWYi
GtOzVweNYa
amSVjmPwd
kfHWzXptOOC
OeJNHHYJCJoO
LLAsvkM
xKRapj
jayygCfoeZB
ZZUD
wVckEx
PcVHqNPSM
Dgmew
hvzrIEfDMFmb
jvRbIVlppjA
GPJkfNMKn
LgXlZDyUJK
pSSSaSgPWnJr
VXUdWX
awwHedZuIW
FqwZKikbw
iJqv
tEnZb
DLGU
yxNm
WlewRoHM
pvaldQ
SwgZWP
DXOzvXVgCwg
cKkkRBUh
TqlHPmG
VgmOa
WXeFBJVWh
uSAnRbqub
vswFI
aefiY
fSqRUMyPaRRn
搜索
查看: 8054|回复: 26

[分享] HP g4 1018tu 的dsdt修复详细过程 [复制链接]
跳转到指定楼层
复制 

Rank: 7Rank: 7Rank: 7

UID
265192
帖子
684
PB币
255
贡献
0
技术
8
活跃
1034

8周年庆典勋章

楼主
发表于 2012-10-7 18:42:21 IP属地江苏 |只看该作者 |倒序浏览
快御云安全
本帖最后由 thomsyan 于 2013-4-22 14:28 编辑

本文主板BIOS为HP的166D,没有添加任何功能,只是修复了Errors、Warnings和Remarks。


1、提取dsdt得到dsl文件
使用AIDA64提取bin文件再用iasl反编译得到dsl文件,具体过程如下:

下载附件
iasl.zip (472.15 KB, 下载次数: 172)
AIDA64.Extreme.2.60.Green.part2.rar (4.48 MB, 下载次数: 214)
AIDA64.Extreme.2.60.Green.part1.rar (4.6 MB, 下载次数: 254)
AIDA64是绿色特别版,由于解压需要时间可能运行后会有10秒左右的卡顿,耐心等待就好了。

001.1.jpg
右击上图位置,也就是AIDA64的最下面的状态栏,选择ACPI Tool

002.jpg
单击Save DSDT,保存bin文件
  1. >iasl -d acpi_dsdt.bin
复制代码
在cmd里执行上面的命令,加参数-d,反编译dsdt得到dsl文件



2、使用iasl编译
用iasl编译上面得到的dsl文件,文件名可以任意,比如dsdt.dsl
得到下面的报错:
  1. >iasl acpi_dsdt.dsl.bak

  2. Intel ACPI Component Architecture
  3. ASL Optimizing Compiler version 20100331 [Mar 31 2010]
  4. Copyright (c) 2000 - 2010 Intel Corporation
  5. Supports ACPI Specification Revision 4.0

  6. acpi_dsdt.dsl.bak    37:     External (\TNOT)
  7. Error    4057 -                             ^ Name already exists in scope (\TNOT)

  8. acpi_dsdt.dsl.bak  2984:                         Name (_T_0, Zero)
  9. Remark   5111 -             Use of compiler reserved name ^  (_T_0)

  10. acpi_dsdt.dsl.bak  3407:                     Method (ECMD, 3, NotSerialized)
  11. Warning  1088 -    Not all control paths return a value ^  (ECMD)

  12. acpi_dsdt.dsl.bak  4667:             Name (_WDG, Buffer (0x50)
  13. Warning  1099 -         Unknown reserved name ^  (_WDG)

  14. acpi_dsdt.dsl.bak  5830:                 Name (_T_0, Zero)
  15. Remark   5111 -     Use of compiler reserved name ^  (_T_0)

  16. acpi_dsdt.dsl.bak  6163:                 Name (_T_0, Zero)
  17. Remark   5111 -     Use of compiler reserved name ^  (_T_0)

  18. acpi_dsdt.dsl.bak  6254:                 Name (_T_1, Zero)
  19. Remark   5111 -     Use of compiler reserved name ^  (_T_1)

  20. acpi_dsdt.dsl.bak  6255:                 Name (_T_0, Zero)
  21. Remark   5111 -     Use of compiler reserved name ^  (_T_0)

  22. acpi_dsdt.dsl.bak  6609:             Method (_WED, 1, NotSerialized)
  23. Warning  1099 -           Unknown reserved name ^  (_WED)

  24. acpi_dsdt.dsl.bak  6609:             Method (_WED, 1, NotSerialized)
  25. Warning  1099 -           Unknown reserved name ^  (_WED)

  26. acpi_dsdt.dsl.bak  7449:             Method (_HOT, 0, Serialized)
  27. Warning  1088 -                                 ^ Not all control paths return a value (_HOT)

  28. acpi_dsdt.dsl.bak  7449:             Method (_HOT, 0, Serialized)
  29. Warning  1081 -                                 ^ Reserved method must return a value (Integer required for _HOT)

  30. acpi_dsdt.dsl.bak  7451:                 Name (_T_0, Zero)
  31. Remark   5111 -     Use of compiler reserved name ^  (_T_0)

  32. acpi_dsdt.dsl.bak  7502:             Method (_CRT, 0, Serialized)
  33. Warning  1088 -                                 ^ Not all control paths return a value (_CRT)

  34. acpi_dsdt.dsl.bak  7502:             Method (_CRT, 0, Serialized)
  35. Warning  1081 -                                 ^ Reserved method must return a value (Integer required for _CRT)

  36. acpi_dsdt.dsl.bak  7504:                 Name (_T_0, Zero)
  37. Remark   5111 -     Use of compiler reserved name ^  (_T_0)

  38. acpi_dsdt.dsl.bak  7641:             Method (_PSV, 0, Serialized)
  39. Warning  1088 -                                 ^ Not all control paths return a value (_PSV)

  40. acpi_dsdt.dsl.bak  7641:             Method (_PSV, 0, Serialized)
  41. Warning  1081 -                                 ^ Reserved method must return a value (Integer required for _PSV)

  42. acpi_dsdt.dsl.bak  7643:                 Name (_T_0, Zero)
  43. Remark   5111 -     Use of compiler reserved name ^  (_T_0)

  44. acpi_dsdt.dsl.bak  8439:                             Name (_T_0, Zero)
  45. Remark   5111 -                 Use of compiler reserved name ^  (_T_0)

  46. acpi_dsdt.dsl.bak  8602:                             Name (_T_0, Zero)
  47. Remark   5111 -                 Use of compiler reserved name ^  (_T_0)

  48. acpi_dsdt.dsl.bak  8680:                             Name (_T_0, Zero)
  49. Remark   5111 -                 Use of compiler reserved name ^  (_T_0)

  50. acpi_dsdt.dsl.bak  9282:                     Name (_T_1, Zero)
  51. Remark   5111 -         Use of compiler reserved name ^  (_T_1)

  52. acpi_dsdt.dsl.bak  9283:                     Name (_T_0, Zero)
  53. Remark   5111 -         Use of compiler reserved name ^  (_T_0)

  54. acpi_dsdt.dsl.bak 11785:                 Method (_CRS, 0, NotSerialized)
  55. Warning  1088 -                                     ^ Not all control paths return a value (_CRS)

  56. acpi_dsdt.dsl.bak 11785:                 Method (_CRS, 0, NotSerialized)
  57. Warning  1081 - Reserved method must return a value ^  (Buffer required for _CRS)

  58. ASL Input:  acpi_dsdt.dsl.bak - 11967 lines, 411788 bytes, 6161 keywords
  59. Compilation complete. 1 Errors, 12 Warnings, 13 Remarks, 11 Optimizations
复制代码
3、编辑dsl文件修复
现在我们从最后面的一个报错修复,不从最上面是因为删减行会使定位带来麻烦。建议windows下编辑dsl使用notepad++,轻量级很方便,Ctrl+G直接定位行,Ctrl+H替换,Ctrl+F查找,可以同时查找打开的所有文件,另外这是个开源软件哦:

11785行,1081和1088的Warning,在Method (_CRS, 0, NotSerialized)后面添加一个Method:
  1. Method (RES, 0, NotSerialized)
  2. {
  3.     Return (Zero)
  4. }
复制代码
所有有关_T_0的5111全部修改为
  1. T_0
复制代码
所有有关_T_1的5111全部修改为
  1. T_1
复制代码
7641、7502、7449、3407行的1088错都是在这个Method最后一个中括号{的前面插入
  1. Return (Zero)
复制代码
4667、6609行的1099错是将下划线 _ 去掉,如下:
  1. Name (WDG, Buffer (0x50)
  2. Method (WED, 1, NotSerialized)
复制代码
最后,37行4057 的错,搜索TNOT关键字,将下面的3个部分全部删除:
  1. External (TNOT, MethodObj)    // 0 Arguments
  2. External (\TNOT)
  3. If (CondRefOf (\TNOT))
  4. {
  5.     TNOT ()
  6. }
复制代码
4、再次编译dsl文件
  1. >iasl acpi_dsdt.dsl.bak

  2. Intel ACPI Component Architecture
  3. ASL Optimizing Compiler version 20100331 [Mar 31 2010]
  4. Copyright (c) 2000 - 2010 Intel Corporation
  5. Supports ACPI Specification Revision 4.0

  6. ASL Input:  acpi_dsdt.dsl.bak - 11967 lines, 411721 bytes, 6164 keywords
  7. AML Output: acpi_dsdt.aml - 49451 bytes, 969 named objects, 5195 executable opco
  8. des

  9. Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 11 Optimizations
复制代码
如果没有任何报错就OK了,下面就可以添加功能了,本文的操作也就讲完了。另外本文的dsdt文件针对特定的机型,但是针对报错的修复方法你可以参考如果不行拿错误号google吧,另外DSDTSE这个软件里有修复dsdt的提示,如果这个软件的windows版打不开,论坛里还有解决方法,请自行搜索。

附上我修改前后的两个dsl文件,大家可以安装另一个开源软件WinMerge来比较这两个文件的不同点,这样你对本文的理解更容易些。
dsl.zip (71.21 KB, 下载次数: 38)

文中没有提到的notepad++和WinMerge两个软件请自行google下载,就不提供附件了。

附上一个WinMerge比较两个文件的效果图,一个很快捷的比较方法:
WinMerge.jpg

最后转一帖绝情奶牛 - 从零开始轻松使用上DSDT
1

查看全部评分

Rank: 2Rank: 2

UID
2923925
帖子
449
PB币
460
贡献
0
技术
0
活跃
5
沙发
发表于 2012-10-8 08:32:46 IP属地未知 |只看该作者
看着挺复杂的哦

Rank: 7Rank: 7Rank: 7

UID
265192
帖子
684
PB币
255
贡献
0
技术
8
活跃
1034

8周年庆典勋章

板凳
发表于 2012-10-8 09:15:18 IP属地江苏 |只看该作者
qiaohuobaba 发表于 2012-10-8 08:32
看着挺复杂的哦

晕 晕 晕~
如果是同样型号 只要照着做就OK了 dsdt修改就是一回生二回熟!

Rank: 2Rank: 2

UID
3024900
帖子
197
PB币
0
贡献
0
技术
2
活跃
179
4F
发表于 2012-10-8 10:00:47 IP属地孟加拉国 |只看该作者
看看!!!

Rank: 1

UID
3006057
帖子
44
PB币
244
贡献
0
技术
0
活跃
4
5F
发表于 2012-10-22 15:23:17 IP属地天津 |只看该作者
直接用dsdted去fix行吗?

Rank: 7Rank: 7Rank: 7

UID
265192
帖子
684
PB币
255
贡献
0
技术
8
活跃
1034

8周年庆典勋章

6F
发表于 2012-10-26 12:36:00 IP属地江苏 |只看该作者
churpchurs 发表于 2012-10-22 15:23
直接用dsdted去fix行吗?

应该可以 不过这个当时学习的教程吧

Rank: 1

UID
2512660
帖子
63
PB币
89
贡献
0
技术
6
活跃
34
7F
发表于 2012-10-26 15:46:06 IP属地浙江 |只看该作者
直播吗?坐等下文

Rank: 1

UID
888402
帖子
85
PB币
0
贡献
0
技术
0
活跃
34
8F
发表于 2012-11-8 08:25:53 IP属地浙江 |只看该作者
iasl 是用来反编译的吗?

Rank: 7Rank: 7Rank: 7

UID
265192
帖子
684
PB币
255
贡献
0
技术
8
活跃
1034

8周年庆典勋章

9F
发表于 2012-11-8 15:09:43 IP属地江苏 |只看该作者
knightkey 发表于 2012-11-8 08:25
iasl 是用来反编译的吗?

对! iasl.exe 用来编译和反编译dsdt
把dsl编译成aml
加-d参数 把aml反编译成dsl

Rank: 2Rank: 2

UID
1654299
帖子
211
PB币
303
贡献
0
技术
2
活跃
26
10F
发表于 2012-11-14 21:17:53 IP属地湖北 |只看该作者
感谢楼主给了这么好的教程!

Rank: 7Rank: 7Rank: 7

UID
265192
帖子
684
PB币
255
贡献
0
技术
8
活跃
1034

8周年庆典勋章

11F
发表于 2012-11-15 17:13:49 IP属地未知 |只看该作者
longhu003 发表于 2012-11-14 21:17
感谢楼主给了这么好的教程!

如果有什么问题欢迎反馈 讨论

Rank: 2Rank: 2

UID
1654299
帖子
211
PB币
303
贡献
0
技术
2
活跃
26
12F
发表于 2012-11-15 19:23:52 IP属地湖北 |只看该作者
我今天在CMD里面加了这个-d的指令,可是提示说这不是可执行指令

Rank: 7Rank: 7Rank: 7

UID
265192
帖子
684
PB币
255
贡献
0
技术
8
活跃
1034

8周年庆典勋章

13F
发表于 2012-11-16 12:11:52 IP属地未知 |只看该作者
本帖最后由 thomsyan 于 2012-11-16 12:14 编辑
longhu003 发表于 2012-11-15 19:23
我今天在CMD里面加了这个-d的指令,可是提示说这不是可执行指令

系统没有自带iasl 你需要在本帖最前面把iasl下载到本地,然后在cmd里切换到iasl所在的目录

另外,注意格式 最好iasl.exe和aml文件放在同一个目录下 然后按照这种格式操作:
  1. iasl.exe -d dsdt.aml
复制代码
iasl后跟参数-d,后跟aml的路径,如果和iasl不是在同一个目录下就要加完整路径,比如D:\dsdt\dsdt.aml

Rank: 2Rank: 2

UID
1654299
帖子
211
PB币
303
贡献
0
技术
2
活跃
26
14F
发表于 2012-11-16 14:27:17 IP属地湖北 |只看该作者
呵呵,怪不得,这样才行!感谢thomssyan!!!

Rank: 2Rank: 2

UID
1793335
帖子
259
PB币
6
贡献
0
技术
0
活跃
670
15F
发表于 2012-12-15 11:15:11 IP属地河南 |只看该作者

呵呵,怪不得,这样才行!感谢thomssyan!!!

Rank: 1

UID
841833
帖子
91
PB币
25
贡献
0
技术
0
活跃
68
16F
发表于 2013-1-11 11:06:01 IP属地湖北 |只看该作者
想问下哦,可不可以直接在WIN下修改DSDT放到mac盘下面?(不用到mac系统里修改)

Rank: 7Rank: 7Rank: 7

UID
265192
帖子
684
PB币
255
贡献
0
技术
8
活跃
1034

8周年庆典勋章

17F
发表于 2013-1-11 11:15:46 IP属地江苏 |只看该作者
liqiangnide 发表于 2013-1-11 11:06
想问下哦,可不可以直接在WIN下修改DSDT放到mac盘下面?(不用到mac系统里修改)

可以 你装个windows下的mac驱动
以前有个叫MACdrive的软件 你论坛里找找吧

Rank: 7Rank: 7Rank: 7

UID
265192
帖子
684
PB币
255
贡献
0
技术
8
活跃
1034

8周年庆典勋章

18F
发表于 2013-1-11 11:18:20 IP属地江苏 |只看该作者
liqiangnide 发表于 2013-1-11 11:06
想问下哦,可不可以直接在WIN下修改DSDT放到mac盘下面?(不用到mac系统里修改)

你试下这个吧
https://bbs.pcbeta.com/viewthread-1048611-1-1.html
比MacDrive還好用的HFS Windows+mac讀寫NTFS軟件
新手看看这个帖子吧
https://bbs.pcbeta.com/viewthread-1064870-1-1.html
黑苹果还是很难玩的 要很有耐心跟学习能力

Rank: 1

UID
3013068
帖子
85
PB币
10
贡献
0
技术
0
活跃
2
19F
发表于 2013-1-12 13:49:49 IP属地北京 |只看该作者
看看怎么弄

Rank: 1

UID
3013068
帖子
85
PB币
10
贡献
0
技术
0
活跃
2
20F
发表于 2013-1-12 13:50:35 IP属地北京 |只看该作者
看看怎么弄
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛