黑苹果笔记本睡眠设置

黑苹果笔记本睡眠设置

首先笔记本的睡眠还是挺麻烦的,因此之前一直没有去试图解决这个问题,这个周末正好没有安排,动手搞起来

主要的参考是 https://github.com/zx0r/HackintoshDevBox/blob/main/PowerManagement/README.md

同时参考了之前黑果小兵分享的 XPS9300 的 EFI 配置中关于睡眠的配置。

  1. BIOS/UEFI 设置

推荐设置:

  • ErP Ready: 禁用
  • Wake on LAN: 禁用
  • Wake on USB: 禁用
  • HPET: 启用高精度事件计时器
  • ACPI S3: 启用挂起到RAM(S3睡眠)
  1. Opencore 替换为 Debug 版本
    同时在 Misc -Debug 中设置如下
    image-20250817215828800

    image-20250817215949649

  2. Kext 中增加 HibernationFixup.kext

  3. config 中 NVRAM 的 boot-args 中增加 hbfx-ahbm=7 hbfx-patch-pci=XHC -hbfxbeta

    image-20250817215457250
    在 Misc-boot 段设置如下

    image-20250817220413096
    image-20250817220516853

  4. Mmio白名单地址,在上述设置完成后,重启清理 NVRAM,使用 opencore debug 版本引导查看 mmio
    image-20250817221605933
    可以看到上述的 mmio 有一个地址,填写到 config 中, 采用 hackintool 计算器转换上述的 16 进制地址到 10 进制
    image-20250817222715011
    image-20250817222928452

  5. 睡眠模式通常有0,25, 3 三种模式,简单的理解为 0 为禁用深度休眠,25 用作笔记本安全睡眠,ram 保持供电,3 一般是台式机使用,ram 也断电。这里直接搬用了 脚本过来。

  6. 设置为 0 command

    #!/bin/sh
    #
    function start()
    {
    #
    echo "";
    cat << XXX
    (一) 恢复默认的电源参数
    (二) 交流电源和电池电源:【禁止休眠】
    (1) 设置hibernatemode=0 
    (2) 设置standby=0
    (3) 设置autopoweroff=0
    (4) 设置womp=0(禁用【网络远程唤醒】)
    (5) 设置proximitywake=0(禁用【同一网络下的相同 iCloud 设备唤醒】)
    (6) 设置powernap=0(禁止【电能小憩】)
    (7) 设置ttyskeepawake=0(禁用【远程用户正在活动时防止Mac进入睡眠】)
    (8) 设置tcpkeepalive=0(禁用【合盖时保持网络连接】)
    (9) 删除休眠文件:/private/var/vm/sleepimage;创建休眠文件夹,防止再次自动生成休眠文件
    
    XXX
    read -p "按回车键执行" logo
    case 
    *** QuickLaTeX cannot compile formula:
    logo in
    #
    *)
    ##恢复默认的电源参数
    sudo pmset restoredefaults
    ##交流电源和电池电源
    sudo pmset -a hibernatemode 0
    sudo pmset -a standby 0  
    sudo pmset -a autopoweroff 0
    sudo pmset -a womp 0
    sudo pmset -a proximitywake 0
    sudo pmset -a powernap 0
    sudo pmset -a ttyskeepawake 0
    sudo pmset -a tcpkeepalive 0
    ##删除休眠文件
    sudo rm -rf /private/var/vm/sleepimage
    sudo mkdir -p /private/var/vm/sleepimage
    echo "执行完毕......";
    exit 0
    ;;
    esac
    }
    #
    start
    #</code></pre>
    </li>
    <li>
    设置为25 的command
    <pre><code class="language-bash">#!/bin/sh
    #
    function start()
    {
    #
    echo "";
    cat << XXX
    (一) 删除之前创建的休眠文件夹
    (二) 恢复默认的电源参数
    (三) 交流电源和电池电源:
    (1) 设置proximitywake=0【禁止同一网络下的相同 iCloud 设备唤醒】
    (2) 设置powernap=0【禁止电能小憩】
    (3) 设置ttyskeepawake=0【禁止远程用户正在活动时防止Mac进入睡眠】
    (4) 设置tcpkeepalive=0【禁止合盖时保持网络连接】
    (5) 设置womp=0【禁止网络远程唤醒】
    (四) 电池电源:【允许休眠】
    (1) 设置hibernatemode=25
    (2) 设置standby=1
    (3) 设置autopoweroff=1
    (五) 交流电源:【禁止休眠】
    (1) 设置hibernatemode=0
    (2) 设置standby=0
    (3) 设置autopoweroff=0
    
    XXX
    read -p "按回车键执行" logo
    case
    
    *** Error message:
    You can't use `macro parameter character #' in math mode.
    leading text: #
    You can't use `macro parameter character #' in math mode.
    leading text: #
    You can't use `macro parameter character #' in math mode.
    leading text: ##
    Unicode character 恢 (U+6062)
    leading text: ##恢
    Unicode character 复 (U+590D)
    leading text: ##恢复
    Unicode character 默 (U+9ED8)
    leading text: ##恢复默
    Unicode character 认 (U+8BA4)
    leading text: ##恢复默认
    Unicode character 的 (U+7684)
    leading text: ##恢复默认的
    Unicode character 电 (U+7535)
    leading text: ##恢复默认的电
    Unicode character 源 (U+6E90)
    leading text: ##恢复默认的电源
    Unicode character 参 (U+53C2)
    leading text: ##恢复默认的电源参
    Unicode character 数 (U+6570)
    
    

    logo in
    #
    *)
    ##删除之前创建的休眠文件夹
    sudo rm -rf /private/var/vm/sleepimage
    ##恢复默认的电源参数
    sudo pmset restoredefaults
    ##交流电源和电池电源
    sudo pmset -a proximitywake 0
    sudo pmset -a powernap 0
    sudo pmset -a ttyskeepawake 0
    sudo pmset -a tcpkeepalive 0
    sudo pmset -a womp 0
    ##电池电源
    sudo pmset -b hibernatemode 25
    sudo pmset -b standby 1
    sudo pmset -b autopoweroff 1
    ##交流电源
    sudo pmset -c hibernatemode 0
    sudo pmset -c standby 0
    sudo pmset -c autopoweroff 0
    echo "执行完毕......";
    exit 0
    ;;
    esac
    }
    #
    start
    #

  7. 可以直接复制上述命令,存储为command 文件,双击,回车输入密码后执行

  8. 我这里执行25.command

发表回复