当设备和方法都定义时,什么可能导致“AE_NOT_FOUND”?
dmesg 错误:
[ 9.925882] ACPI Error: [WLVD] Namespace lookup failure, AE_NOT_FOUND (20160422/psargs-359)
[ 9.927455] ACPI Error: Method parse/execution failed [\_SB.WLBU._STA] (Node ffff8803ee8b40c8), AE_NOT_FOUND (20160422/psparse-542)
数据传输时间:
// http://h30434.www3.hp.com/t5/Notebook-Hardware-and-Upgrade-Questions/HP-250-G2-Unknown-Device-ACPI-HPQ6001/td-p/5056511
// hp wireless button...
// hp_wmi && hp_wireless are loaded...
//
// [ 0.744110] ACPI Error: [WLVD] Namespace lookup failure, AE_NOT_FOUND (20160422/psargs-359)
// [ 0.744123] ACPI Error: Method parse/execution failed [\_SB.WLBU._STA] (Node ffff8803ee8b40c8), AE_NOT_FOUND (20160422/psparse-542)
//
Device (WLBU)
{
Name (_HID, EisaId ("HPQ6001")) // _HID: Hardware ID
Name (WLDP, 0xFF)
Method (_STA, 0, NotSerialized) // _STA: Status
{
If ((WLDP == 0xFF))
{
Local0 = Zero
OSTP ()
If ((((OSYS == 0x07DC) || (OSYS == 0x07DD)) || (OSYS == 0x07DF)))
{
If (((WLVD != Zero) && (WLVD != 0xFFFF)))
{
Local0 = 0x0F
}
}
WLDP = Local0
}
Return (WLDP) /* \_SB_.WLBU.WLDP */
}
}
答案1
好的,解决了,错误提示找不到:
"\_SB.WLBU._STA"
然而,当我查看 DSDT 时,我发现有两个类似的范围;
"\_SB"
和
"_SB"
我发现该设备是在后面定义的,我将其注释掉并将其移至第一个范围,错误消失了。
我想知道“在错误的范围内”还有什么,或者两者是否在同一范围内......
更新:我发现了;
"\_SB"
是根目录/路径,而;
"_SB"
是相对目录/路径。
有道理......所以我的问题似乎是 dsdt 和 ssdt 之间的不匹配(现已解决)。