ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
沪ICP备05041459号
About AdvDbg Consult Train Services Products Tools Community Contact   登录 | 注册
Post Print Search
帖子排序:    
帖子发起人: zl000   发起时间: 2008-01-05 12:55 PM   回复: 4
zl000 离线,最后访问时间: 1/10/2008 1:47:16 PM zl000

无等级
注册: 2007-12-31
发 贴: 3
OS不加载自己的AML Code
 2008-01-05, 12:55 PM Reply Quote
初涉ACPI, 在XP SP2上替换了checked acpi.sys(443K, 是不是这个?)后,用asl.exe编译并加载AML到注册表,code只简单实现修改内核的某地址处一个字节,重起,用windbg查看发现根本就未修改成功,哪位老大帮忙解释一下啊~~
IP 地址: 已记录   报告
Raymond 离线,最后访问时间: 12/4/2008 11:10:34 PM Raymond

无等级
注册: 2005-12-19
发 贴: 213
Re: OS不加载自己的AML Code
 2008-01-05, 23:24 PM Reply Quote
使用ACPIDUMP.EXE或者其他可以DUMP ACPI表的工具(AcpiView、WinACPI)在你的系统中做个DUMP,看DUMP下来的是否是改过的。
IP 地址: 已记录   报告
zl000 离线,最后访问时间: 1/10/2008 1:47:16 PM zl000

无等级
注册: 2007-12-31
发 贴: 3
Re: OS不加载自己的AML Code
 2008-01-06, 14:23 PM Reply Quote
找到一个acpiview,竟然提示说不能load driver,晕~
其它工具网上很难找~~我在注册表里看到确实是添加了相应注册表项了,但是reboot后就是不执行我的代码。
还有没有其它什么原因,麻烦raymond解释一下,这方面资料除了ms官方上一些spec,真是少的可怜啊~
另把我的code贴上来,应该是没有问题吧??
DefinitionBlock("test.aml", "DSDT", 0x02, "TEST", "FORTEST", 0x3000)
{
Method(HOOK)
{
OperationRegion(TEST, SystemMemory, 0x4e4c01, 0x2)
Field(TEST, ByteAcc, NoLock, Preserve)
{
IOCD, 0x2
}

Store(Buffer(){0x90, 0x90}, IOCD)

}
}
IP 地址: 已记录   报告
Raymond 离线,最后访问时间: 12/4/2008 11:10:34 PM Raymond

无等级
注册: 2005-12-19
发 贴: 213
Re: OS不加载自己的AML Code
 2008-01-08, 12:19 PM Reply Quote
你在使用WinDBG的!amli调试时,能看到你的这个方法么?按你的设计,谁会调用你的HOOk方法呢?
IP 地址: 已记录   报告
zl000 离线,最后访问时间: 1/10/2008 1:47:16 PM zl000

无等级
注册: 2007-12-31
发 贴: 3
Re: OS不加载自己的AML Code
 2008-01-10, 13:46 PM Reply Quote

看过规范之后有些东西还是不太理解。。。

我又尝试了下面的代码,发现还是不行。不知您能否给出一个可以让人确实看到AML确实被解释执行的代码例子~谢谢!

DefinitionBlock("test.aml", "DSDT", 0x02, "TEST", "FORTEST", 0x3000) 
{
OperationRegion(TEST, SystemMemory, 0x4e4c01, 0x2)
Field(TEST, ByteAcc, NoLock, Preserve)
{
IOCD, 0x2
}

Store(Buffer(){0x90, 0x90}, IOCD)

}

IP 地址: 已记录   报告
高端调试 > 软件调试 > 调试ACPI和BIOS > Re: OS不加载自己的AML Code
 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2005 Advanced Debugging Ltd. All Rights Reserved.