A-1. Tối ưu hóa sau cài đặt
1. Tạo SSDT.aml cho CPU của máy bạn
Các file SSDT.aml trong gói cài đặt đều được tạo trên máy mình bằng script ssdtPRGen.sh của Pike R. Alpha (phiên bản mới nhất tại thời điểm bài viết là 18.2). Mặc dù mình đã chạy script với tham số -p để đặt target processor, nhưng mình vẫn khuyến khích các bạn nên chạy lại script trên máy bạn. Cách làm như sau:
Bước 1: Kết nối vào Internet. Mở Terminal và chạy lần lượt các lệnh sau:
Mã:
curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh
chmod +x ~/ssdtPRGen.sh
~/ssdtPRGen.sh
Script sẽ tự động nhận diện CPU máy bạn và tạo SSDT.aml.
- Nếu có warning gì bạn cứ chọn Yes.
- Khi nó hỏi Do you want to copy /Users/nguyen/Library/ssdtPRGen/ssdt.aml to /Extra/ssdt.aml (y/n)?, bạn chọn No.
- Các câu hỏi còn lại cũng chọn No.
Bước 3: Mở Finder, vào menu
Go -> Go to Folder…, nhập đường dẫn
~/Library/ssdtPRGen và bấm Go. Bạn sẽ thấy file SSDT.aml được tạo ra trong thư mục
ssdtPRGen vừa mở.
Bước 4: Mount phân vùng EFI bằng EFI Mounter, sau đó copy file
SSDT.aml vào thư mục
/EFI/CLOVER/ACPI/patched để sử dụng.
Để kiểm tra xem đã nhận đủ P-State chưa, các bạn có thể:
- Dùng AppleIntelInfo.kext (phải cài XCode để build kext).
- Hoặc mở IORegistryExplorer, vào mục CPU0@0/AppleACPICPU/X86PlatformPlugin rồi kiểm tra mục CPUPStates trong danh sách bên phải.
2. Điều chỉnh màn hình và màu sắc
Bản thân mình không thích để scale mặc định 100% mà thường tăng lên 150% ở độ phân giải 1920x1080 để nhìn dễ hơn. Tuy vậy Mac OS X không hỗ trợ cơ chế scale như trên Windows 10 mà chỉ hỗ trợ hạ độ phân giải, mà nếu làm vậy thì font chữ cũng như các đối tượng sẽ bị nhòe, không sắc nét.
Thật may là Mac OS X hỗ trợ chế độ HiDPI (gộp nhiều pixel làm một, là cách mà Mac OS X 'giả scale' để hiển thị trên MacBook Pro Retina). Để xài chế độ này các bạn làm như sau:
Bước 1: Mở Terminal, chạy dòng lệnh sau để bật chế độ HiDPI rồi khởi động lại máy:
Mã:
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true
Bước 2: Cài SwitchResX. Click vào biểu tượng của SwitchResX trên menu bar và chọn độ phân giải
1280x720 HiDPI. Khi đó font chữ và các đối tượng sẽ to lên 150% mà vẫn nét như ở native 1920x1080 vậy.
Bên cạnh đó, các máy ASUS đều hỗ trợ tính năng Splendid giúp màu sắc hiển thị dịu mắt hoặc sống động hơn. Bản chất của nó là dùng Color Profile thích hợp với màn hình để làm thay đổi màu sắc hiển thị, như vậy để xài Splendid trên Mac OS X ta chỉ cần mượn Color Profile đó sang là xong. Cách làm như sau:
Bước 1:
- Mở SwitchResX Preferences, vào mục Unknown Monitor ở dưới cùng của thanh bên trái.
- Ghi lại Vendor ID và Product ID của màn hình máy bạn. Sau đó byte-flip Vendor ID của màn hình rồi ghép với Product ID.
- Ví dụ như màn hình máy mình do AU Optronics sản xuất với Vendor ID 0x06AF và Product ID 0x38ED. Như vậy kết quả cuối cùng sẽ là 0xAF0638ED.
Bước 2:
- Cài Splendid Utility trên Windows.
- Vào thư mục C:\Program Files (x86)\ASUS\Splendid\icm, bạn sẽ thấy rất nhiều color profile trong này (file .icm).
- Chọn file .icm theo model máy và màn hình của bạn, rồi copy file vào một chỗ nhất định.
- Ví dụ như với màn hình của mình thì sẽ dùng file K501LX_8086_AF0638ED.icm.
Bước 3: Khởi động Mac OS X, sau đó copy file .icm đã lưu vào thư mục
/Library/ColorSync/Profiles/Displays để cài color profile.
Cuối cùng click vào biểu tượng của SwitchResX trên menu bar, áp dụng color profile bạn đã cài đặt và tận hưởng thành quả.
3. Fake thông tin Card Reader và Webcam
Để fake Card Reader trên máy bạn thành Built-In Card Reader của Apple, và Webcam thành FaceTime HD Camera, ta sẽ dùng
CustomPeripheral.kext. Các bước phải làm như sau:
Lưu ý: Kext này không giúp nhận Card Reader và Webcam mà chỉ fake thông tin. Nếu Card Reader / Webcam máy bạn không hoạt động thì bạn nên xem lại thiết lập USB.
Bước 1:
- Mở System Information.
- Vào mục Hardware -> USB, các bạn sẽ thấy các thiết bị kết nối với giao tiếp USB trong máy.
- Chọn mục USB2.0-CRW (tương ứng với Card Reader máy bạn), lấy giá trị Product ID và Vendor ID của thiết bị, sau đó chuyển từ hexadecimal về hệ thập phân.
- Ví dụ với card reader máy mình: Product ID 297 (0x0129) và Vendor ID 3034 (0x0BDA).
- Làm tương tự với mục USB2.0 VGA UVC Webcam (tương ứng với Webcam máy bạn).
- Ví dụ với webcam máy mình: Product ID 46211 (0xB483) và Vendor ID 1266 (0x04F2).
Bước 2: Chuột phải vào
CustomPeripheral.kext, chọn
Show Package Contents. Sau đó mở file
Info.plist trong thư mục
Contents.
Bước 3: Mở mục
IOKitPersonalities ra, bạn sẽ thấy nhiều mục con ở trong này.
- Chỉnh giá trị của idProduct và idVendor trong các mục sau thành giá trị Product ID và Vendor ID của Card Reader máy bạn (đã chuyển sang hệ thập phân):
- Any_Internal_SD_Card_Reader_1_00
- Fake Apple Card Reader Device
- Fake Apple Card Reader Interface
- Fake Apple Card Reader SBC Inject
- Fake Apple Card Reader UMC Inject
- Chỉnh giá trị của idProduct và idVendor trong các mục sau thành giá trị Product ID và Vendor ID của Webcam máy bạn (đã chuyển sang hệ thập phân):
- Fake Built-in FaceTime HD Camera Device
- Fake Built-in FaceTime HD Camera Interface A
- Fake Built-in FaceTime HD Camera Interface B
Sau khi sửa xong, lưu file
Info.plist lại và cài
CustomPeripheral.kext vào
/Library/Extensions là xong.
4. Chỉnh thiết lập Touchpad và Keyboard
Để làm điều này các bạn mở
Info.plist của
ApplePS2SmartTouchpad.kext và
AsusNBFnKeys.kext, mở mục
IOKitPersonalities -> Smart-Pad / AsusNBFnKeys -> Preferences rồi chỉnh cấu hình trong đó. Chi tiết về giá trị cũng như tác dụng của mỗi thuộc tính trong mục Preferences các bạn tham khảo tại 2 guide sau:
- Details about the Smart Touchpad driver Features
- Details about the Enhanced Keyboard for Smart Touchpad driver
Hầu như các thiết lập mình đều giữ nguyên so với kext gốc, trừ những thiết lập sau:
- ApplePS2SmartTouchpad - mục Preferences/Keyboard:
- AsusNBFnKeys - mục Preferences:
5. Mod ROM card wifi để fix warning ATHR: Unknown Locale 60
Mục này không bắt buộc và chỉ áp dụng khi bạn thay card wifi gốc của máy bằng Dell DW1702 hoặc một card Atheros khác. Chi tiết các bạn tham khảo ở guide
AR9280 ATHR: Unknown locale: xx - EEPROM Mod.
6. Tăng hiệu suất bằng cách chỉnh thông số FakeSMC.kext
Mặc định FakeSMC.kext sẽ giả lập SMC ở version
1.3f3 và compatible là
smc-napa. Tuy vậy nó không còn đúng với các đời máy ngày nay, và mình khuyến khích các bạn nên chỉnh lại các thông số này để phần nào gia tăng hiệu suất của máy (thường thì GPU sẽ được hưởng lợi nhiều hơn là CPU). Chi tiết các bạn có thể xem ở guide
Performance tuning with FakeSMC & SMBIOS plist.
Bản thân file FakeSMC.kext trong gói cài đặt đã được mình chỉnh SMC version lên
2.28f7 và compatible là
smc-huronriver.
7. Chỉnh X86PlatformPlugin.kext và AppleGraphicsPowerManagement.kext để giảm xung nhịp nghỉ của CPU và iGPU
ACPI_SMC_PlatformPlugin.kext (đối với CPU Sandy Bridge và cũ hơn), X86PlatformPlugin.kext (đối với CPU Ivy Bridge trở lên) và AppleGraphicsPowerManagement.kext là 3 kext khá quan trọng trong Mac OS X do chúng chứa các power profile dùng để quản lý thiết lập năng lượng, xung nhịp CPU và iGPU, tính năng App Nap, v.v. Bằng cách điều chỉnh profile tương ứng với Board-id của máy bạn (xem trong SMBIOS), bạn có thể làm giảm xung nhịp nghỉ của CPU và iGPU, từ đó giúp tiết kiệm pin và làm cho máy Hackintosh chạy mát hơn.
Có 2 model Mac chạy CPU Broadwell là
MacBookPro12,1 (Mac-E43C1C25D4880AD6) và
MacBookAir7,2 (Mac-937CB26E2E02BB01), và tương ứng với chúng là 2 profile mà ta cần phải chỉnh sửa. Mặc dù cả 3 CPU trang bị trên K501LX đều có thể hạ xung nhịp xuống 800MHz ở trạng thái nghỉ, profile sẽ khiến chúng chạy ở 1300MHz do nó được thiết kế cho các model Mac ở trên, vốn dùng các CPU khác với mức xung nhịp cao hơn. Đối với iGPU Intel HD5500, tình trạng cũng tương tự khi mà nó bị ép phải chạy ở mức cao hơn 300MHz ở trạng thái nghỉ. Vì vậy ta cần phải chỉnh các mục liên quan trong profile về giá trị phù hợp. Các bước cần phải làm như sau:
Lưu ý: Luôn backup các kext trước khi thực hiện bất cứ thay đổi nào.
Đối với X86PlatformPlugin.kext:
Bước 1: Truy cập vào thư mục resource của kext tại đường dẫn:
Mã:
/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources
Bạn sẽ thấy rất nhiều file plist trong thư mục này, chúng chính là các power profile tương ứng với board-id của máy Mac.
Bước 2:
- Mở file plist tương ứng với board-id bạn đang dùng.
- Ví dụ: Mac-E43C1C25D4880AD6.plist nếu bạn dùng SMBIOS của MacBookPro12,1.
- Truy cập vào thuộc tính IOPlatformPowerProfile -> FrequencyVectors.
- Đổi word thứ 2 trong FrequencyVectors từ 0D000000 thành 0800000, và kiểm tra xem thuộc tính CPUFloor property có đang là 800 không. Việc này sẽ giúp CPU máy bạn hạ xung nhịp xuống 800MHz ở trạng thái nghỉ.
Đối với AppleGraphicsPowerManagement.kext:
Bước 1: Truy cập vào nội dung của kext tại đường dẫn:
Mã:
/System/Library/Extensions/AppleGraphicsPowerManagement.kext/Contents
Bước 2:
- Mở file Info.plist, sau đó truy cập vào thuộc tính IOKitPersonalities -> AGPM -> Machines -> [Board-id máy bạn] -> IGPU -> Heuristic.
- Chỉnh giá trị của thuộc tính GT2Floor và GT3Floor thành 6. Nó sẽ cho phép iGPU chạy ở 300MHz khi nhàn rỗi.
Cuối cùng lưu các file plist, rebuild cache và khởi động lại máy. Bạn có thể dùng Intel Power Gadget (phần mềm này có một lỗi là sẽ hiện xung nhịp của iGPU lên gấp 3 lần) hoặc
AppleIntelInfo.kext để kiểm tra xem các thay đổi có hiệu lực chưa.
Thực ra trong gói cài đặt đã có sẵn 2 dummy kext là
AppleGraphicsPowerManagement_K501LX.kext và
X86PlatformPlugin_K501LX.kextchứa profile đã được chỉnh sửa. Các bạn chỉ cần cài 2 kext đó là xong, không cần phải chỉnh sửa kext gốc làm gì cho mất công.