****可以成功多次Sleep / Wakeup,幫你省點電費!****
原文:臉書社團
硬體規格
- M/B Gigabyte Z690 AERO G DDR4
- CPU Intel i7-12700KF
- 記憶體 Team-Elite DDR4-2400 x2 + Crucial DDR4-3200 x2
- DGPU MSI Radeon RX 580 ARMOR 8G OC
- CPUFAN 利民FC-140 白色雙塔散 + 利民 LGA17XX-BCF RED CPU彎曲矯正防彎支架
- FAN PowerMac G5 台達電4線風扇X2
- 電供 曜越Thermaltake Smart DPS G 750W Gold DIGITAL POWER SUPPLY
- SSD WD SN850X 1TB / ADATA SX8200Pro 512G PCI-E NVME / WD 藍標 250G SSD
- HDD TOSHIBA DT01ACA200 2TB x1 / HGST HUS724030ALA640 3TB x1
- NIC Shanghai Gengxun BroadCom BCM94360CD 4天線
- 麥克風 ZJ-M351 3.5mm input
BIOS設定
- Tweaker > System Memory Multiplier > DOR4-2666 (XMP = NON)
- Tweaker > Hyper Threading Technology = Enabled
- Tweaker > CPU Cores Enabling Mode = Selectable Mode
- Tweaker > Enable All Cores (P+E) /HT Enable
- Tweaker > Memory Boat Mode > Enable Fast Boot
- Tweaker > C-States Control > Auto
- Settings > Initial Display Output = PCle 1 Slat
- Settings > Audio Controller = Enable
- Settings > Above 4G Decoding = Enable
- Settings > Above 4GB MID BIOS assignment = Enable
- Settings > Re-Size BAR Support = Disabled
- Settings > Legacy USB Support = Enabled
- Settings > XHCI Hand-off = Enabled
- Settings > Intel Platform Trust Technology = Disabled
- Settings > VT-d = Enabled
- Settings > Super I0 Configuration = Disabled
- Settings > Platform Power Management = Disabled
- Settings > Erp = Disabled
- Settings > Native ASPM = Disabled
- Settings > Intel Platform Trust Technology (PTT) > Disabled
- Boot > CFG-Lock = Disabled
- Boot > Fast Boot = off
- Boot > Windows 10 Features = Ocher OS
- Boot > CSM Support = Enabled (Use AppleROM:113-4E353BU-O4E) + OC 1450/2150,有改VBIOS所以CSM要Enable)
Clover v5157 / OC0.9.8 皆使用相同的KEXTs與 SSDT Patchs
KEXTS
===========
- USBWakeFixup.kext (1.0)
- NVMeFix.kext (1.1.1)
- USBMap.kext
- CPUFriendDataProvider.kext
- Lilu.kext (1.6.7)
- SMCProcessor.kext (1.3.2)
- SMCSuperIO.kext (1.3.2)
- VirtualSMC.kext (1.3.2)
- RestrictEvents.kext (1.1.3)
- CpuTscSync.kext (1.1.0)
- CPUFriend.kext (1.2.7)
SSDT patch
===========
- SSDT-AWAC-DISABLE.aml
- SSDT-BRG0.aml
- SSDT-DMAC.aml
- SSDT-DMAR.aml
- SSDT-EC-USBX.aml
- SSDT-HPET.aml
- SSDT-IMEI-S-pc00.aml
- SSDT-PLUG-ALT.aml
- SSDT-RHUB-Reset.aml
- SSDT-USBW.aml
功率計 量測睡眠/關機功耗W
整機MAC
睡眠 2.12W / 關機 1.55W / 待機 77W (CPU 1.06G/RX588 27W)
整機WIN11
睡眠 2.25W / 關機 1.77W / 待機 73W (CPU 800M/RX588 30W)
SAFARI 播放1080P YOUTUBE (2560X1080 60HZ NO HIDPI)
MAC 100W± 5W / WIN1 73W-114W
以上不含螢幕25-30W
傳統直立式風扇(非變頻)約80W/1000=0.08kW h(每小時用電0.08度)4/1起以平均電價每度電價以3.4518計
0.08x24Hx30天x3.4518=$199X2月=$398
如果不小心Wake up 卡到Bluetooth拉高CPU 頻率到4.8G,或是因求學在外租屋,房東每度電收你$5-6, 就不一樣了
休眠一定要搞定
休眠模式與設定
- standby 0
- Sleep On Power Button 1
- womp 0
- hibernatefile /var/vm/sleepimage
- proximitywake 0
- powernap 0
- gpuswitch 2
- networkoversleep 0
- disksleep 10
- standbydelayhigh 86400
- sleep 25 (sleep prevented by apsd, sharingd, Finder)
- hibernatemode 0
- ttyskeepawake 1
- displaysleep 8
- tcpkeepalive 0
- highstandbythreshold 50
- standbydelaylow 86400
- sudo pmset -c hibernatemode 0 sleep 25 displaysleep 8 standby 0 proximitywake 0 tcpkeepalive 0 快速設定
工作/不工作
多次Sleep/Wake Up OK
- Shutdown/Reboot OK
- Realtek USB2.0 AUDIO Line out背板接耳機OK / MIC-in 接3.5mm麥克風聲音很小聲,要很靠近聲才大 (WIN11調增益後正常,距50公分可錄到聲音)
- Rx580 HDMIx2 / DP x2 皆可輸出訊號至螢幕,2560*1080 60HZ,螢幕3.5mm接耳機有䡰音
- Ethernet / WI-FI OK
- BT 接藍牙耳機 藍牙喇叭 藍牙鍵盤OK
- UBSMap OK HS01,03,05 CaseySJ說有問題不使用,自己使用USB Flash 接HS05 讀取reboot 所以不使用
- iCloud, Continuity, AirDrop, Universal Control, AirPlay OK
- iMessage, FaceTime, Mac AppStore, Apple TV OK
- 增量更新 / CPU名稱 OK
- CPU XCPM / DGPU AGPM 電源管理 OK
macOS 環境說明
- 版本 =Ventura 13.6.4 (non OCLP)
- SMBIOS =MP7,1
- Bootloader = Clover 5157 / Opencore 0.9.8 (皆可成功多次Sleep/Wake Up)
- MSI RX580 Armor 8G OC (SappHire AppleROM:113-4E353BU-O4E) + OC core clock max:1.45GHZ/Memory clock max:2.15GHZ
- Shanghai Gengxun BroadCom BCM94360CD 4天線版 USB連接線為6蕊,需佔用2port USB ,連接PIN見附圖.(Fenvi FV-T919 為4蕊)
BIOS Version = F25
Intel AX201 Wi-Fi NIC 已拔出不用
SSDTimer IRQ conflict Rename/Patch -> HPET _STA to XSTA / HPET _CRS to XCRS / IPIC IRQ 2 / RTC IRQ 8 / TIMR IRQ 0
Rename -> Change ADBG to XDBG (在此Gigabyte Z690 AERO G DDR4 M/B 並未設定 Change MC__ to MCHC 2項,BIOS F25是否已修正,待查)/ HECI to IMEI / MEI to IMEI / AZAL to HDEF / HDAS to HDEF / XHCI to XHC / PEGP to GFX0
Rename XHCI to XHC
如果這個Patch沒設定,那需要確認你的USB Controller XHCI 路徑名稱,我所有的設定base on XHC(檢查XHCI名稱Hackintool -> USB -> USB port type or ioreg -> 搜尋 XHC ->選VIEW_Browser >XHC@14 -> acpi-path = IOACPIPlane:/_SB/PC00@0/XHC@140000),有rename 出現的是XHC,反之就會是XHCI,你的USBmap.kext 及 SSDT-USBW.aml 都必須與USB控制器的名稱相符.
sleep/Wake up 的設定說明
1.在測試多次喚醒功能時建議先以最簡單的硬體組合做測試,把問題簡單化
我的WIFI卡是Shanghai Gengxun BroadCom BCM94360CD 4天線,USB cable 有6蕊(Fenvi T919 為4蕊),PIN腳如附圖,我嘗試只使用4Pin 或把2埠的D+ D-互換都不行,就是要6蕊,佔用2埠(port type 255),
我先把WI-FI卡拔掉 或 BT USB 線不接,同樣的設定Clover /OPENCORE 皆可以多次 Sleep / Wake up,剛開始測試時WI-FI卡忘記裝,無意間發現不裝94360CD可以多次sleep/ wake up,連接於HS12 Hub port會影響喚醒 ,
懷疑可能因為HUB port有睡眠供電的問題,自己做了2條USB 線,直接將BT cable 連接於背板的HS02/HS04(相同設定只改接usb port 多次喚醒正常,port type皆設255),果然相同設定下,不再出現睡眠秒醒/或2次睡眠灯亮風扇大聲死機,
現在使用USB轉接線將BT cable接於HS09/HS10(port type 255),多次Sleep/wake up 正常
2.BT cable接HS09/HS10 sleep/wake up後會拉高CPU頻率至4.8GH(功率計約120-140W),使用Bluesnooze可解決此問題
3.boot-arts =0x2000也必需設定,多次sleep/wake up才會正常(clover/open core皆相同)
XHCI or XHC 影響範圍
影響1_USB埠的對映
產生USBMAP前,如果你選擇的是Use IOPathMatch (選擇IOParentMatch使用驅動名稱,就不用注意設備路徑問題),那需注意XHCI設備路徑需與IOReg XHCI 路徑相符 , USBmap port mapping 符合且正確移動滑鼠會更有滑順感.
- IOPathMatch
- IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/XHC@14/XHC@14000000 (USBMAP.KEXT)
- acpi-path = IOACPIPlane:/_SB/PC00@0/XHC@140000 (IOReg)
影響2_Wake up需按鍵盤2次
CaseySJ 的SSDT-USBW.aml,XHCI設備路徑為XHCI ,請先檢查ioreg acpi-path,二者需相同,如果不同放了也沒效果.(我的版本base on XHC,全部都已修改過)
External (_SB_.PC00.XHCI._PRW, MethodObj) // 0 Arguments If ((CondRefOf (\_OSI, Local0) && _OSI ("Darwin"))) { Device (\_SB.USBW) { Name (_HID, "PNP0D10" /* XHCI USB Controller with debug */) // _HID: Hardware ID Name (_UID, "WAKE") // _UID: Unique ID Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (\_SB.PC00.XHCI._PRW ())
Rename PEGP to GFX0 ,使用Native AGPM(Apple Graphic Power Management),我沒有使用Whatevergreen.KEXT,如果你有使用它,這個Rename 可以不下,WEG 會自動幫你改.
建議RX588 Device_Properties AAPL,slot-name = Slot-1@0,1,0/0,0(待機功耗降的比較快約24W-27W左右), 啟用GPU Native AGPM 電源管理
ioreg 搜尋GFX , acpi-path = IOACPIPlane:/_SB/PC00@0/PEG1@10000/GFX0@0 (這個路徑與SSDT-BRG0.aml 要相同)
Ioreg 搜尋AGPM,會看到CP00 / GFX0 都有AGPM
AGPMcontroller -> slotcontroller=0x1
-> control-id=0x11
使用AAPL,slot-name = Slot-1 ,在Hackintool -> Logs -> System (Kernel Log),搜尋AGPM (要搜完)
AppleGraphicsPowerManagement) [AGPM][INFO ][CONTROLLER ][start ] init fSlotControl, fSlotControl = 1 AppleGraphicsPowerManagement) [AGPM][INFO ][CONTROLLER ][createAGPMClass ] machines_dict->getObject(modelName MacPro7,1) AppleGraphicsPowerManagement) [AGPM][INFO ][CONTROLLER ][createAGPMClass ] gpuDict GFX0 AppleGraphicsPowerManagement) [AGPM][INFO ][CONTROLLER ][createAGPMClass ] build GPUDict by Vendor1002Device67df AppleGraphicsPowerManagement) [AGPM][INFO ][CONTROLLER ][start ] fIsExternalGPU 0 AppleGraphicsPowerManagement) [AGPM][ERROR][BOOST ][setBoost ] 0 fGPUIdleIntervalMS = 0, ControlID = 17 (這部份我不了解,要請先進指導了,
我查了Z390 rx588 imac19,1 (Enable AGPMinjector.kext 內有controlid=17 , 但ioreg 的controlid 還是 0x11)
/ 在Z690 (不含AGPMinjector.kext) APL,slot-name = Internal@0,1,0/0,0 沒有出現這個錯誤,但在ioreg controlid=還是0x11 而不是0x17)
####使用AAPL,slot-name = Slot-1 如果造成2次sleep/wake up秒醒,opencore ClearnNVRAM 2-3次 (Clover F11)重啟進入Z690全新安裝的os,是沒有發生的。
(我的系統是Z390直升Z690的並沒有重新安裝OS,有發生過這種現像,解決方式是清NVRAM 重啟-> Z690安裝的os -> 再切回原Z390直升Z690的系統,就不再發生了)
ioreg 搜尋x86 ,
看到CP00 ( SSDT-PLUGxxx.aml 的Plugin-type=1 在這裡,啟用電源管理)
看到X86platformplugin / X86playformshim (啟用Native CPU XCPM 電源管理)
或
sysctl machdep.xcpm.mode machdep.xcpm.mode: 1 (1: 表示啟動 0:表示未啟動) sysctl machdep.xcpm.ratio_changes_total machdep.xcpm.ratio_changes_total: 6336601 (有數字: 表示啟動 沒有:表示未啟動)
增量更新與CPU名稱 (需要RestrictEvents.kext)
NVRAM 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102的設定 revcpu=1 revcpuname=XXXX XXXX XXXX NVRAM 7C436110-AB2A-4BBB-A880-FE41995C9F82的設定 boot-args revpatch=sbvmm
增量更新出現了,CPU名稱卻變成unknow,甚至在我的這台Mac 出現了8個PCI卡插槽,請改成 revpatch=pci,cpuname,sbvmm ,CPU名稱 / 增量更新都正常了
boot-arg的設定
使用 boot-args 的優先權高於4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102, 但是有些需注意的地方
boot-args revcpu=1 revcpuname=12-Core Intel Core i7 revpatch=pci,cpuname,sbvmm
如果使用boot-arg來設定CPU名稱,直接使用空白鍵會使第1個空白以後的文字被捨棄,所以名稱的空白部份請使用 (字串先在WIN 下做好存檔,以ALT+255取代SPACE鍵)(在MAC下以 option+Space取代SPACE)
(Clover 與 OPENCORE在 boot-args revcpu=1 revcpuname=12-Core Intel Core i7 revpatch=pci,cpuname,sbvmm的設定皆相同)
Clover / OPENCORE 下戴點