mjdrummer 发表于 2014-9-11 16:11

【求助】10.8.5下关机不断电的问题!!!

主机为老联想M8000型,主板型号未知。
试过在DSDT中加关机断电代码,无效。。。
使用OpenHaltRestart.kext驱动,无效。。。

目前故障情况是:关机后,黑屏,无显示信号输入。电源灯亮,不断电。需手动长按关机键,主机断电后,又自动重启一下,大概几秒钟后,自己断电,才算是完全关闭。。。

dsdt中有关代码只有:
    Method (_PTS, 1, NotSerialized)
    {
      Store (Arg0, DEBG)
      If (LEqual (Arg0, 0x05))
      {
            \_SB.PHSR (0x4B)
      }
    }


我将代码改为:
    Method (_PTS, 1, NotSerialized)
    {
      If (LEqual (Arg0, 0x05)){}
      Else
      {
            Store (Arg0, DEBG)
            \_SB.PHSR (0x4B)
      }
    }


没有效果。。。


求高人指点一下,跪谢了!!!

mjdrummer 发表于 2014-9-11 21:47

没人响应么???高手去哪了???

mjdrummer 发表于 2014-9-12 01:05

高手都关注新系统去了么???

mjdrummer 发表于 2014-9-17 17:57

爬帖若干。。。终于解决了!!! 我的方法放上:

dsdt未修改前相关代码如下:
    Method (_PTS, 1, NotSerialized)
    {
      Store (Arg0, DEBG)
      If (LEqual (Arg0, 0x05))
      {
            \_SB.PHSR (0x4B)
      }
    }


做如下修改:
1. 查找_PTS
在Method (_PTS, 1, NotSerialized)前加入如下代码(注意红色部分按2.修改)
    OperationRegion (PMRS, SystemIO, 0x1030, 0x13)
    Field (PMRS, ByteAcc, NoLock, Preserve)
    {
            ,   4,
      SLPE,   1
    }

2. 查找 Scope (_PR)    //之前是这里搞错了。。。坑了我好一阵子。。。
看Processor (CPU0, 0x00, 0x00001010, 0x06)红色部分,我的是1010,最终得到0x1030。
算法为:0x(红色部分4位+20) 。即:0x(1010+20)=0x1030 。


3. 原Method函数内执行语句放入条件判断Else中,新增一些代码,修改如下:
    Method (_PTS, 1, NotSerialized)
    {
      If (LEqual (Arg0, 0x05))
      {
            Store (Zero, SLPE)
            Sleep (0x10)
      }
      Else
      {
            Store (Arg0, DEBG)
            \_SB.PHSR (0x4B)
      }
    }


4. 编译,dsdt.aml替换原档,重启系统,再执行关机,居然成功了。呵呵~~~
页: [1]
查看完整版本: 【求助】10.8.5下关机不断电的问题!!!