wangdongfreesky 发表于 2023-2-15 19:29

jianghu_y 发表于 2023-2-15 19:13 https://bbs.pcbeta.com/static/image/common/back.gif
麻烦问下! OSX 下关闭电脑 无法通过开机键开机!拔掉电源插头,再次插上才能正常开机!这个是什么问题! WIN下就 ...

你这是关机不断电啊!下一个就是解决关机不断电的问题

Tian羽 发表于 2023-2-15 19:38

问题4搜索dsdt后发现UAR1设备但是没有if判断这两行
Device (UAR1)
                {
                  Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)// _HID: Hardware ID
                  Name (_UID, Zero)// _UID: Unique ID
                  Name (LDN, 0x07)
                  Method (_STA, 0, NotSerialized)// _STA: Status
                  {
                        Return (^^SIO1.DSTA (Zero))
                  }

我不要用户名 发表于 2023-2-15 19:39

不错,楼主分享精神可嘉,很多人都会,但是懒得写。。

wangdongfreesky 发表于 2023-2-15 19:57

问题八:关机不断电!问题原理是DSDT中控制关机状态的_PTS函数出现问题,需要修补
解决办法分两步
步骤一,将_PTS函数重命名使其失效
打开OCC的ACPI选项添加补丁
表名:DSDT
查找:5F505453 01
替换为:5A505453 01
然后我一般会添加一条注释_PTS to ZPTS & SSDT-Shutdown 意思是将_PTS更名为ZPTS并配合SSDT-Shutdown.aml使用,当然这条注释你可以改成你自己能够理解的意思
步骤二,编写SSDT-Shutdown.aml
代码如下:
DefinitionBlock ("", "SSDT", 2, "hack", "ShutDown", 0x00000000)
{
    External (_SB_.PCI0.XHC_.PMEE, FieldUnitObj)
    External (ZPTS, MethodObj)    // 1 Arguments

    Method (_PTS, 1, NotSerialized)// _PTS: Prepare To Sleep
    {
      ZPTS (Arg0)    //如果不是macOS系统仍然执行原来的pts函数,也就是对其他操作系统不影响
      If (_OSI ("Darwin"))
      {
            If ((0x05 == Arg0))
            {
                If (CondRefOf (\_SB.PCI0.XHC.PMEE))
                {
                  \_SB.PCI0.XHC.PMEE = Zero    //关键的方法就是给PMEE一个0参数
                }

                OperationRegion (PMRS, SystemIO, 0x1830, One)
                Field (PMRS, ByteAcc, NoLock, Preserve)
                {
                        ,   4,
                  SLPE,   1
                }

                SLPE = Zero
                Sleep (0x10)
            }
      }
    }
}

然后将ssdt文件拷贝至efi中的acpi目录,并打开配置文件加载

wangdongfreesky 发表于 2023-2-15 20:03

本帖最后由 wangdongfreesky 于 2023-2-15 20:11 编辑

Tian羽 发表于 2023-2-15 19:38 https://bbs.pcbeta.com/static/image/common/back.gif
问题4搜索dsdt后发现UAR1设备但是没有if判断这两行
Device (UAR1)
                {

那你就得看这个函数^^SIO1.DSTA是怎么传递参数的了。或者通过补丁来直接破坏,返回0即可。还可以把这段代码Device (UAR1)范围内的代码原封不动抄下来改成


Device (UAR2)
                {
                  Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)// _HID: Hardware ID
                  Name (_UID, Zero)// _UID: Unique ID
                  Name (LDN, 0x07)
                  Method (_STA, 0, NotSerialized)// _STA: Status
                  {
                        if(_OSI ("Darwin"))
                        {
                              Return(Zero)
                        }
                        else
                        {
                              Return (^^SIO1.DSTA (Zero))
                        }
                  }
然后打补丁搜索PNP0501改成XXXXXX,从而使UAR1的设备定义失效。
总之,方法有很多,你试试

frontways 发表于 2023-2-15 21:19

这个疑难杂症:
手动休眠可以,自动休眠唤醒重启或第一次可以;第二次,屏幕黑屏,但主机电源依旧通电。

wangdongfreesky 发表于 2023-2-15 22:34

frontways 发表于 2023-2-15 21:19 https://bbs.pcbeta.com/static/image/common/back.gif
这个疑难杂症:
手动休眠可以,自动休眠唤醒重启或第一次可以;第二次,屏幕黑屏,但主机电源依旧通电。

睡眠问题涉及到的设备很多需要一一排查,
1.先检查电源管理是否加载,方法是用IOreg查找X86PlatformPlugin,如果没有记载,找ssdt-plug
2.PMCR是否加载,方法是用IOreg查找PMCR,PMCR下存在AppleACPIPMC。
3.PWRB是否加载,方法类似不再多说
4.SLPB是否记载
5.网卡是否内建,用hackintool可以查看是否内建。如果是不使用的网卡或不能驱动的网卡,请屏蔽
6.USB设备,如果存在XHC且接口正常,屏蔽不用的EHCI设备,XHC下的USB各个端口需要定制完善
7.SBUS设备正常加载,方法仍然是使用IOreg,加载后下面会有AppleSMBusPCI
8.IMEI设备加载,核显要驱动,如果不能驱动的核显比如10代以上核显或着AMD平台的APU集成显卡,要使用ssdt或者OC属性将其屏蔽。
请按照如上的顺序去检查你的设备驱动和加载情况,只有设备正常驱动和加载,才能睡眠正常,不能驱动的设备不要放着不管,屏蔽它,否则影响睡眠

wangdongfreesky 发表于 2023-2-15 23:01

Tian羽 发表于 2023-2-15 19:38 https://bbs.pcbeta.com/static/image/common/back.gif
问题4搜索dsdt后发现UAR1设备但是没有if判断这两行
Device (UAR1)
                {


另外你得用IOreg去确认是不是这个设备的问题,如果是,那么它一定加载了,也就是它下面有东西,我另一台设备有UAR1、一直到UAR4,四个串口设备的定义,但是主板上没有实际的电路,因此并不加载,白果上没有的设备但是却加载了,这个需要屏蔽

wangdongfreesky 发表于 2023-2-15 23:02

frontways 发表于 2023-2-15 21:19 https://bbs.pcbeta.com/static/image/common/back.gif
这个疑难杂症:
手动休眠可以,自动休眠唤醒重启或第一次可以;第二次,屏幕黑屏,但主机电源依旧通电。

如果就是你签名的那个电脑的配置,不出意外的话,应该是核显的问题,需要屏蔽

jianghu_y 发表于 2023-2-16 07:37

wangdongfreesky 发表于 2023-2-15 19:29 https://bbs.pcbeta.com/static/image/common/back.gif
你这是关机不断电啊!下一个就是解决关机不断电的问题

非常感谢 终于有救了! 有时间研究下!

wepen 发表于 2023-2-16 08:45

技术好贴,顶楼主。

小白菜就是我 发表于 2023-2-16 09:09

技术大佬,看来要火了。

joridan 发表于 2023-2-16 09:30

收藏一下待用

snear 发表于 2023-2-16 09:34

谢谢分享,收藏

cchcch252 发表于 2023-2-16 10:10

USB口3.0不定不知能不能打上

shbin0713 发表于 2023-2-16 11:35

使用DSDT或SSDT定制USB端口要是有个详细的教程就好了,我的Z690主板上的两个usb2.0插口,在mac下只有一个能用,在win下就是正常的都能用

蛋疼王子 发表于 2023-2-16 11:47

需要你这样的人

shhtea 发表于 2023-2-16 12:10

好贴!学习一下。

wangdongfreesky 发表于 2023-2-16 12:30

本帖最后由 wangdongfreesky 于 2023-2-16 12:37 编辑

shbin0713 发表于 2023-2-16 11:35 https://bbs.pcbeta.com/static/image/common/back.gif
使用DSDT或SSDT定制USB端口要是有个详细的教程就好了,我的Z690主板上的两个usb2.0插口,在mac下只有一个能 ...
看这两个usb2.0插口是原生插口,还是属于一个hub端口插在原生端口上,如果是外接的hub端口,可能无解。外接的hub接口要兼容的才行。而主板上带控制器的usb原生端口基本都能驱动和定制好。有一个很好的例子就是我的小主机AMD平台的hx90G。前面板的usb3和typec就是通过一个via品牌的hub接在原生端口上,也就是说这两个接口不管你接什么,在hackintool里只显示2.0hub和3.0hub。即使定制了该hub所在的原生端口,但是在系统休眠后总提示磁盘没有正常推出,而我的显示器也带了一个usb hub,显示器的usb hub插在主机的后面板,后面板是原生端口(也就是插不同的设备hackintool能显示品牌类型等),后面板的原生端口定制好以后,显示器的usb端口设备可以正常休眠唤醒没有提示磁盘未正常推出。就是因为显示器带的hub是兼容macos的,在系统中显示的也是通用usb hub

shbin0713 发表于 2023-2-16 12:37

wangdongfreesky 发表于 2023-2-16 12:30 https://bbs.pcbeta.com/static/image/common/back.gif
看这两个usb2.0插口是原生插口,还是属于一个hub端口插在原生端口上,如果是外接的hub端口,可能无解。外 ...

蓝牙插在上面的,从蓝牙信息看就是个hub
页: 1 [2] 3 4 5 6 7 8 9 10
查看完整版本: DSDT疑难杂症解决,包括台式机出现电池选项,不能重启,定制USB,屏蔽串口设备等