Fix Sleep

Võ Nguyễn Hoàng Long
2022-01-02
11 min

Xác định phần cần sửa

B1: Nhập code sau vào terminal

pmset -g log | grep -e "Sleep.*due to" -e "Wake.*due to"

B2: Xem bảng sau để biết cần phần cần fix

Wake [CDNVA] due to GLAN: Using ACVào cài đặt firmware tắt mục Wake on LAN đi
Wake [CDNVA] due to HDEF: Using ACVào cài đặt firmware tắt mục Wake on LAN đi
Wake [CDNVA] due to XHC: Using ACVào cài đặt firmware tắt Wake on USB và patch GPRW, xem ở dưới
DarkWake from Normal Sleep [CDNPB] : due to RTC/Maintenance Using ACLỗi này thường gặp do power snaps
Wake reason: RTC (Alarm)Lỗi này thường do 1 ứng dụng, hãy thoát nó trước khi bạn sleep

Chỉnh mục Power Management

Mở Hackintool, vào tab Power

+ Nhấn vào dấu  để sửa các mục trong Power Management thành 0, oặc dùng kext hypernation fixup

Fix GPRW/UPRW/LANC

Thêm SSDT:

B1: Dump DSDT theo hướng dẫn tại đây

B2: Mở file DSDT.dsl bằng Releases · acidanthera/MaciASL · GitHub

B3: Nhấn tổ hợp phím Command+F hoặc nhấn nút lệnh search trên menu bar và search các từ khóa sau

Method (GPRW, 2) và Method (UPRW, 2) hoặc Device (LANC)

B4: Nếu bạn tìm được từ khóa:

B5: Sau khi tải các SSDT về, bỏ vào EFI/OC/ACPI và snapshot config.

B6: Add các patch rename sau vào config/ACPI/Patch:

B7: Save config và reboot thôi.

Cách Add patch

B1: Vào trang copy các dòng code

B2: Tải Sublime Text – Text Editing, Done Right ( thường thì sever down khá chậm nên các bạn hãy tải ở maclife tuy là links fshare nhưng ít nhất cũng đc 100-150kb còn hơn 56kb ở trang chủ nhé links đây nhé Sublime Text 4 – Code Editor mạnh mẽ trên mac – MacLife – Everything for Mac Lovers )

B3: Mở lên và tải các gói mà nó yêu cầu

B4: Dán code vào và lưu file dưới dạng file xml

B5: Tải app plist edit pro theo links sau PlistEdit Pro – Advanced Mac plist and JSON editor (fatcatsoftware.com), hoặc có thể mở bằng propertree sau khi mở lên các bạn sẽ được như hình:

B6: Các bạn add mục vào mục root ⇒ ACPI ⇒ Patch của file config.plist 

Lưu ý đối với máy mình thì chỉ cần fix nhiêu đây thì đã có thể sleep/wake nếu các bạn vẫn chưa sleep/wake được thì có thể tham khảo links sau Fixing Sleep | OpenCore Post-Install (dortania.github.io)

Lưu ý 2 nếu như các bạn đã làm phần chuẩn bị nhưng vẫn bị lổi restart khi sleep thì các bạn có thể thử bỏ kext sau vào mục EFI ⇒ kext Releases · acidanthera/HibernationFixup · GitHub nhớ snaps lại config

Wake Keyboard

Đối với 1 số máy khi wake cần nhấn phím nguồn hoặc nhấn phím nhiều lần, ở đây mình sẽ hướng dẫn cách bạn chỉ cần nhấn phím 1 lần thôi là đã wake lên.

Cách 1

Chuẩn bị:

B1: Tải gfxutil

B2: Tải ProperTree

Tiến hành:

B1: Chạy gfxutil lên nếu các bạn nào bị trường hợp chạy lên và tắt thì các bạn vào setting terminal chỉnh lại theo ảnh

B2: Tìm đến dòng có tên là XHCI (XHC1/XHC)

B3: Thêm 1 dòng vào DeviceProperties với tên và đoạn code vừa xác định

B4: acpi-wake-type | Data | <01> thêm đoạn này vào config dưới dòng vừa thêm

sau khi làm xong sẽ được như hình

Lưu ý: Nếu không được hãy chuyển sang cách 2**

Cách 2:

B1: Tải Keyboard Wake Issues | OpenCore Post-Install (dortania.github.io) và SSDT-USBW.dsl

B2: Bỏ kext vừa tải vào folder kext và snapshot lại config

B3: mở SSDT vừa tải bằng MaciASL

B4: các bạn chuyển đoạn mã vừa lấy ở cách 1 thành /PC00@0/XHCX@14 -> \_SB.PC00.XHCX

thay hoặc bỏ X thành đoạn mã mà bạn thu được

B5: Save lại và bỏ vô EFI ⇒ OC ⇒ ACPI (hoặc EFI ==> Clover ==> ACPI ==> Patched)

B6: Snapshot config và reboot

Lưu ý : Nguồn: Keyboard Wake Issues | OpenCore Post-Install (dortania.github.io)

Lưu ý chung : nếu các bạn có card rời thì phải disable card rời đi

Nguồn tham khảo: Các vấn đề về đánh thức bàn phím | OpenCore Sau cài đặt (dortania.github.io)

DarkWake

Trước hết ta phải biết, darkwake là gì? Darkwake là khi bạn wake máy sau sleep máy chỉ thức dậy 1 phần còn phần còn lại vẫn còn đang ngủ

B1: Xác định những phần cần patch theo bảng sau

B2: Cộng tất cả value của các phần bạn cần patch như ở đây mình cần patch

1,3,512 thì mình sẽ làm như sau 1+3+512 = 516 

B3: Thêm vào boot-arg đoạn code sau: darkwake=XXX (thay XXX bằng value mà bạn thu được)

B4: Save lại và reboot

Lưu ý: Source tham khảo Các vấn đề về đánh thức bàn phím | OpenCore Sau cài đặt (dortania.github.io)

Lưu ý 2: Nếu quá bối rối không biết nên chọn cái nào thì các bạn thêm đoạn code sau vào boot-arg darkwake=0 ( nó sẽ vô hiệu hoá darkwake )