Nội dung bài viết
Quản lý năng lượng cho máy laptop chạy hackintosh là điều thực sự cần thiết và nên được ưu tiên hàng đầu khi bạn sử dụng hackintosh lâu dài cho công việc. Nhưng thật sự bạn đã hiểu cpu là gì hay chưa? Tốc độ cpu là gì? Xung nhịp cpu là gì? Vì tất cả các điều này liên quan mật thiết đến việc quản lý năng lượng của máy tính.
Để laptop bạn thật sự biến thành chiếc macbook thật sự, hackintosh phải điều khiển được tốc độ cpu. Hướng dẫn cài hackintosh này chỉ bàn đến quản lý năng lượng cho laptop, giúp nâng cao thời lượng pin, đồng thời giảm nhiệt độ cpu, tốc độ quạt giải nhiệt. Desktop có bật được thì tốt, không thì cũng không cần quan tâm!
CPU là gì?
CPU là chữ viết tắt của Central Processing Unit hay còn gọi là bộ xử lý trung tâm. CPU đóng vai trò như não bộ của một chiếc máy tính. Tại đó, mọi thông tin, dữ liệu sẽ được xử lý kỹ lưỡng trước khi đưa ta quyết định lưu trự hay thực thi 1 lệnh nào đó.
Tốc độ CPU là gì?
Tốc độ CPU là số xung nhịp của CPU thực hiện mỗi giây, được đo bằng GHz (gigahertz). Tốc độ cpu càng lớn cpu xử lý càng nhanh.
Xung nhịp CPU là gì?
Xung nhịp cpu là gì ? Xung nhịp CPU là một chu kì hoạt động của cpu. Một xung nhịp cpu, thông thường, cpu thực hiện 1 lệnh cơ bản ở mức mã máy (assembler), như mov, add, sub…
Quản lý năng lượng có khó không?
Thật may vì sự phát triển của Clover Bootloader với tính năng patch kext & kernel on-the-fly là thế mạnh thì việc cài đặt trở nên dễ thở hơn cho newbie.
Cách thức thực hiện
Disable Hibernation
Việc đầu tiên bạn cần làm là tắt hoàn toàn chết độ hibernate (S4 sleep mode ) không hỗ trợ cho hackintosh bằng cách sử dụng lệnh trên terminal
Luôn chắc chắn rằng đã disable hibernate mode sau mỗi lần update hay upgrade hackintosh bằng cách check lại lệnh dưới
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
Tạo SSDT quản lý năng lượng cho CPU
Chú ý : phương pháp này đã lỗi thời đối với các CPU từ Haswell trở đi khi Scipts của Piker Alpha đã không có hiệu quả nữa và thay vào đó là inject thuộc tính PluginType trong config.plist để kích hoạt PM cho máy hackintosh. Tất cả kho plist của @ReHabMan đều được chỉnh sửa bạn chỉ việc chọn đúng config là được
config.plist/ACPI/SSDT/Generate/PluginType=true

Đối với các CPU đời cũ như Sandy Brigde cần tạo SSDT quản lý CPU theo scripts của Piker Alpha. Mặc định đướng dẫn của file sẽ nằm ở ~/Library/ssdtPRGen/SSDT.aml.
Tick chọn : Gerenates Pstates, Cstates
cd ~
curl -o ./ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh
chmod +x ./ssdtPRGen.sh
Chạy scripts với lệnh : ./ssdtPRGen.sh
Đối với CPU Ivy Brigde có thể sử lệnh thành : ./ssdtPRGen.sh -w 2 hoặc ./ssdtPRGen.sh -w 3
- Chọn SMBIOS phù hợp với cấu hình (config.plist/SMBIOS)
- Tạo SSDT.aml quản lý CPU cho vào đường dẫn EFI/Clover/ACPI/patched (Sandy/Ivy only)
- config.plist/KernelAndKextPatches/AppleIntelCPUPM=true (Haswell trở về trước)
- config.plist/KernelAndKextPatches/KernelPm=true (CPU Haswell trở đi)
- config.plist/KernelAndKextPatches/KernelLapic=true (tích chọn nếu gặp lỗi panic with Local ACPI)
- Không rollbacks AppleACPIPlatform.kext
- Không sử dụng NullCPUPowerManagement.kext
AppleACPIPlatform and EmbeddedControl (EC )
- Đối với CPU Sandy Brigde có thể cần rollback AppleACPIPlatform.kext nhưng không khuyến nghị
- Để hiện thị % pin cũng như quản lý hoạt động điện năng đúng cho pin cần patch DSDT để Battery hoạt động hoàn hảo (chuyển tất cả các trường size 16, 32, 64, 56, 128 hoặc Buffer size bits về 8 bit) và disable các Device BATx không cần thiết)
- Các kho patch DSDT for battery có trong kho patch của Rehabman gần như đã đầy đủ các bạn chỉ việc chọn và Apply. Một số cần patch thủ công theo guide https://www.tonymacx86.com/threads/guide-how-to-patch-dsdt-for-working-battery-status.116102/
- Laptops sủ dụng AMD card : drop MCFG table
- config.plist/ACPI/DropTables

- Đối với laptops sử dụng CPU cũ như Sandy Brigde cần tick thêm như hình

- Chú ý : config.plist/ACPI/SSDT/DropOem=true. đối với các CPU đời mới việc drop các bảng OEM SSDT sẽ phát sinh lỗi nên tuyệt đối không được sử dụng tuỳ chọn này
Skylake/Kaby Lake (and later): Quản lý năng lượng với công nghệ Intel SpeedShift
- Hoạt động với SMBIOS MacBook9,1, MacBookPro13,x (and now MacBookPro14,x, MacBookPro15,x)
- Để kích hoạt cần sử dụng patch kernel on-the-fly trong gói patch của Piker Alpha config.plist/KernelAndKextPatches/KernelToPatch xcpm_idle
- Mặc định đều có trong gói config mẫu của @Rehabman các bạn chỉ cần chọn đúng config là đủ.
Kiểm tra PM với AppleIntelInfo.kext
- Mở hackintool app lên chọn như hình
- Tiến hành stress CPU để kiểm tra các thông số

- Check trên IO Registry Explorer : chắc chắn rằng kext X86PlatformPlugin kext load dứới CPU0 node & kiểm tra CPUPstates
- Chú ý : đối với Sandy Brigde CPU thì là ACPI_SMC_PlatformPlugin kext

- Under voltage hackintosh : https://github.com/sicreative/VoltageShift
- Inject Frequency vectors data : https://github.com/Piker-Alpha/freqVectorsEdit.sh giúp quản lý xung nhịp CPU khi ở trạng thái nghỉ
- Hoặc sử dụng CPUFriend + CPUFriendDataProvider.kext để quản lý xung nhịp CPU ở trang thái nghỉ https://github.com/acidanthera/CPUFriend/blob/master/Instructions.md (khuyến nghị không nên làm)
Một số tips khác :
Quản lý và hiển thị các thông số của CPU, FAN, Temp của máy hackintosh

- Tiến hành sử dụng tất cả các Plugin của fakeSMC kext kèm theo bỏ vào CKO và sử dụng app HWMonitor để xem thông tin như hình
- Để hiện thông tin FAN rpm cũng như Nhiệt độ cần tạo một SSDT hotpatch quản lý FAN cũng như nhiệt độ theo từng dòng máy, một số SSDT các bạn có thể dùng thử được mình sưu tầm, có thể không tương thích với từng dòng máy nhưng hầu hết là chung như vậy.
- ASUS laptops : https://github.com/Halelluja12/Tool/blob/master/SSDT-FANMOD.aml.zip
- Dell laptops : https://github.com/Halelluja12/Tool/blob/master/SSDT-Fans-Dell.dsl.zip
- Thinkpad : https://github.com/Halelluja12/Tool/blob/master/SSDT-Fans%20Thinkpad.zip
- Chú ý : Đọc mô tả trong file SSDT trước khi sử dụng, để ý tới tất cả các địa chỉ ACPI xem rename đã đúng hay chưa nếu không sẽ xảy ra lỗi trong quá trình boot hackintosh, tất cả các SSDT muốn sử dụng cần phải có plugin của FakeSMC kext + ACPIPoller.kext