# Cách thiết lập cấu hình cho Broadwell-E (Máy trạm/Máy chủ)
| Hỗ trợ | Phiên bản |
|---|---|
| Phiên bản macOS đầu tiên được hỗ trợ | OS X 10.11, El Capitan |
| Phiên bản macOS cuối cùng được hỗ trợ | macOS 26, Tahoe |
# Điểm bắt đầu (Starting Point)
Việc tạo một file config.plist nghe có vẻ rất là khó khăn, nhưng thực ra không phải vậy đâu. Nó chỉ tốn chút thời gian của bạn thôi, hướng dẫn này sẽ chỉ bạn cách cấu hình từ A tới Z, bạn sẽ không bị "bỏ rơi giữa chợ" đâu. Cái này cũng có nghĩa là nếu bạn gặp lỗi trong quá trình chạy thử, trước tiên bạn cứ bình tĩnh rà soát lại mấy cài đặt config để đảm bảo tụi nó đã được cấu hình chính xác. Những điều quan trọng cần lưu ý với OpenCore:
- Tất cả các dòng thuộc tính (properties) đều phải có mặt trong file config, OpenCore không có chế độ tự nạp lại giá trị mặc định nếu bị xóa đâu, nên bạn đừng xóa/điều chỉnh các mục cài đặt trừ khi được hướng dẫn cụ thể. Nếu hướng dẫn cấu hình không nhắc tới phần cài đặt đó, hãy để nó ở giá trị mặc định.
- Không được sử dụng file Sample.plist nguyên bản (As-Is), bạn phải cấu hình nó cho phù hợp với hệ thống của mình.
- ĐỪNG XÀI MẤY CÁI PHẦN MỀM CẤU HÌNH (CONFIGURATORS), mấy cái công cụ này hiếm khi tuân theo cấu trúc của OpenCore, một số cái như của Mackie sẽ thêm vào các thuộc tính của Clover (OpenCore không hiểu) và làm hỏng file plist của bạn!
Bây giờ, hãy nhớ lại các công cụ chúng ta cần:
- ProperTree (opens new window)
- Trình chỉnh sửa file plist đa năng
- GenSMBIOS (opens new window)
- Để tạo dữ liệu SMBIOS cho máy phục vụ cho chuyện Fake Macintosh
- Sample/config.plist (opens new window)
- Xem phần trước để biết cách tải: tệp config.plist
CẢNH BÁO
Hãy đọc kỹ hướng dẫn này nhiều lần trước khi thiết lập OpenCore để đảm bảo bạn đã cấu hình đúng. Lưu ý rằng hình ảnh minh họa có thể không phải lúc nào cũng là hình mới nhất, vì vậy hãy đọc kỹ phần văn bản chú thích bên dưới chúng; nếu không có gì được nhắc tới, hãy để mặc định.
# Phần ACPI (Chỉnh sửa sao cho giống với máy Mac thiệt)

# Mục Add (Bổ sung)
CHI TIẾT
Đây là nơi bạn sẽ nạp các file SSDT cho hệ thống. Mấy cái này cực kỳ quan trọng để khởi động macOS và có nhiều công dụng như lập sơ đồ cổng USB (opens new window), vô hiệu hóa card màn hình không được hỗ trợ và nhiều trò thú dzị khác. Với hệ thống của chúng ta, không có SSDT là hông boot được luôn á. Hướng dẫn tạo SSDT có tại đây: Khởi đầu với ACPI (opens new window)
Chúng ta cần phải có một số cái SSDT để lấy lại các chức năng tương đương mà trước đây Clover cung cấp sẵn:
| SSDT bắt buộc | Mô tả vì sao phải sử dụng |
|---|---|
| SSDT-PLUG (opens new window) | Mở khóa hệ thống điều phối điện năng CPU (XCPM) có thể chạy trực tiếp (native) trên các dòng chip Haswell và đời mới hơn cho máy Hack. Về cách tạo file này, bạn đọc thêm tại Khởi đầu với ACPI (opens new window) để biết thêm chi tiết. |
| SSDT-EC-USBX (opens new window) | 1 file nhưng 2 công dụng, vừa giúp sửa lỗi cho bộ điều khiển nhúng (Embedded Controller - EC), vừa sửa lỗi điều phối nguồn điện trong cổng USB, đọc thêm tại Khởi đầu với ACPI (opens new window) để biết thêm chi tiết. |
| SSDT-RTC0-RANGE (opens new window) | Cần thiết cho tất cả bạn đọc cần cài đặt Big Sur để đảm bảo thiết bị RTC tương thích; đọc thêm Khởi đầu với ACPI (opens new window) để biết thêm chi tiết. |
| SSDT-UNC (opens new window) | Cần thiết cho tất cả bạn đọc cần cài đặt Big Sur để đảm bảo các thiết bị UNC tương thích; đọc thêm Khởi đầu với ACPI (opens new window) để biết thêm chi tiết. |
Lưu ý rằng bạn không nên thêm file DSDT.aml (Bảng ACPI chi tiết) được trích xuất đi kèm vào đây, vì nó đã có sẵn trong firmware (vi chương trình) rồi. Vì vậy, nếu có, hãy xóa mục đó trong config.plist và trong thư mục EFI/OC/ACPI. Trong mọi trường hợp chúng ta sẽ làm việc với SSDT chứ không chỉnh sửa DSDT.
Đối với những bạn đọc muốn tìm hiểu sâu hơn về cách trích xuất (dump) DSDT, cách tạo và biên dịch (compile) các SSDT này, vui lòng đọc trang Khởi đầu với ACPI (opens new window). Các SSDT sau khi biên dịch sẽ có đuôi .aml (Assembled) và sẽ được bỏ vào thư mục EFI/OC/ACPI, đồng thời phải được khai báo trong config tại mục ACPI -> Add.
# Mục Delete (Loại trừ)
Mục này dùng để chặn một số bảng ACPI không cho tải lên, chúng ta có thể bỏ qua phần này.
# Mục Patch (Bản vá)
Phần này cho phép chúng ta vá nóng (vá trực tiếp) các thành phần của ACPI (DSDT, SSDT, v.v.) thông qua OpenCore. Với chúng ta, các bản vá đã được xử lý bởi các file SSDT rồi. Với mình thì mấy cái SSDT đã lo hết rồi, hông cần vá thủ công ở đây. Cách này sạch sẽ hơn nhiều vì giúp mình boot được cả Windows và các hệ điều hành khác bằng OpenCore mà hông bị xung đột.
# Mục Quirks (Cài đặt chuyên sâu)
Mấy cài đặt liên quan tới ACPI, cứ để mặc định hết nha bạn, mình hông có xài tới mấy cái này đâu.
# Phần Booter (Bộ nạp khởi động)

Phần này dành riêng cho các cài đặt chuyên sâu (quirks) liên quan đến việc vá lỗi boot.efi bằng OpenRuntime, cái thay thế cho AptioMemoryFix.efi hồi xưa trên Clover đó
# Mục MmioWhitelist (Danh sách vùng nhớ ưu tiên)
Phần này cho phép bạn cài đặt các khoảng trống (spaces) trong bộ nhớ để chuyển tiếp tới macOS mà thường bị ngó lơ khi Kernel thực hiện KASLR, sẽ hữu ích hơn nếu bạn xài chung với cài đặt DevirtualiseMmio. Sẽ nói chi tiết hơn ở phần vá lỗi KASLR
# Mục Quirks (Cài đặt chuyên sâu)
CHI TIẾT
Mấy cài đặt liên quan đến việc vá lỗi boot.efi và sửa lỗi firmware, với hệ thống của chúng ta thì mục này để mặc định
Thông tin chuyên sâu hơn
- AvoidRuntimeDefrag: YES
- Sửa lỗi các dịch vụ UEFI runtime như ngày, giờ, NVRAM, điều phối điện năng.
- EnableSafeModeSlide: YES
- Cho phép các biến slide hoạt động ngay cả khi bạn vào Chế độ an toàn (Safe Mode).
- EnableWriteUnprotector: YES
- Cần thiết để loại bỏ bảo vệ ghi khỏi thanh ghi CR0 trên các nền tảng UEFI.
- ProvideCustomSlide: YES
- Được sử dụng để tính toán biến Slide. Bạn sẽ cần mở cài đặt này nếu khởi động máy thông báo lỗi
OCABC: Only N/256 slide values are usable!trong nhật ký gỡ lỗi (debug log). Nếu thấy dòngOCABC: All slides are usable! You can disable ProvideCustomSlide!có trong log của bạn, bạn có thể tắtProvideCustomSlide.
- Được sử dụng để tính toán biến Slide. Bạn sẽ cần mở cài đặt này nếu khởi động máy thông báo lỗi
- SetupVirtualMap: YES
- Sửa lỗi các lệnh gọi địa chỉ ảo trên các bo mạch chủ UEFI, một số hãng như Gigabyte bắt buộc phải có, hông có là dính lỗi Kernel Panic liền.
# Phần DeviceProperties (Điều chỉnh thuộc tính của các phần cứng/thiết bị trong máy bạn)

# Mục Add (Bổ sung thuộc tính thiết bị)
Thiết lập các thuộc tính thiết bị từ sơ đồ (map) có sẵn.
Theo mặc định, file Sample.plist có sẵn đường dẫn của card âm thanh (audio) để cho bạn bổ sung thông số cho card, nhưng trước tiên mình sẽ thiết lập mã layout âm thanh trong phần boot-args, do đó tạm thời mình khuyên bạn hãy xóa cái mục PciRoot(0x0)/Pci(0x1b,0x0) khỏi phần Add đi.
TL;DR (Too Long; Didn't Read - Dài quá hông rảnh đọc), tóm lại là hãy xóa hết tất cả các mục PciRoot ở đây đi, vì mình sẽ hông có xài tới phần này đâu.
# Mục Delete (Loại trừ)
Xóa bỏ các thuộc tính thiết bị (ẩn nó không cho macOS thấy để tránh gây xung đột), với trường hợp của chúng ta hông cần dùng, cứ kệ nó.
# Phần Kernel (Quản lý kext và bổ sung bản vá, cài đặt cách nhân hệ thống hoạt động)

# Mục Add (Bổ sung kext)
Đây là nơi bạn khai báo: nạp kext nào, thứ tự nạp ra sao và kext đó dành cho kiến trúc CPU nào. Tốt nhất là cứ để ProperTree tự làm việc của nó, nhưng nếu bạn xài CPU 32-bit thì đọc kỹ bên dưới nha:
Giải thích chi tiết
Điểm quan trọng nhất bạn cần nhớ là:
- Thứ tự nạp (Load order)
- Nhớ giùm mình: mấy con "đệ" (plugin) phải nạp sau "đại ca" (dependency) của nó.
- Nghĩa là mấy kext như bắt buộc phải nằm trên đầu (chạy đầu tiên), rồi mới tới VirtualSMC, AppleALC, WhateverGreen,...
Mẹo: Trong ProperTree (opens new window) bạn có thể nhấn tổ hợp phím Cmd/Ctrl + Shift + R để nó tự động nhận diện và sắp xếp kext đúng thứ tự luôn cho khỏe cái thân.
- Kiến trúc (Arc)
- Những kiến trúc mà kext đó hỗ trợ.
- Giá trị thường dùng là
Any(cái nào cũng chơi),i386(32-bit) vàx86_64(64-bit). Lưu ý là kể từ bản OS X 10.8 là phiên bản 64-bit hoàn toàn nên đừng cài đặt là i386 nếu không là không chạy được đâu.
- BundlePath
- Tên của kext
- VD:
Lilu.kext
- Có kích hoạt hay không (Enabled)
- Cái này thì quá rõ rồi, kích hoạt hoặc vô hiệu hóa kext đó.
- ExecutablePath
- Đường dẫn tới file thực thi nằm sâu bên trong kext, bạn có thể kiếm đường dẫn tới file thực thi của kext bằng cách chuột phải và chọn
Show Package Contents. Đường dẫn thường làContents/MacOS/Kextnhưng một số kext sẽ bị ẩn sau thư mụcPlugin. Lưu ý là mấy kext chỉ có file plist thì hông cần điền chỗ này. - VD:
Contents/MacOS/Lilu
- Đường dẫn tới file thực thi nằm sâu bên trong kext, bạn có thể kiếm đường dẫn tới file thực thi của kext bằng cách chuột phải và chọn
- MinKernel
- Giới hạn phiên bản nhân (Kernel) thấp nhất của hệ điều hành mà Kext này có thể nạp vô, đọc bảng bên dưới để biết thông số điền cho đúng.
- VD: Gõ là
12.00.00cho OS X 10.8
- MaxKernel
- Giới hạn phiên bản nhân (Kernel) thấp nhất của hệ điều hành mà Kext này có thể nạp vô, đọc bảng bên dưới để biết thông số điền cho đúng.
- VD: Gõ là
11.99.99cho Mac OS X 10.7
- PlistPath
- Đường dẫn đến file
info.plistẩn bên trong kext. - VD:
Contents/Info.plist
- Đường dẫn đến file
Bảng tra cứu phiên bản Kernel
| Phiên bản OS X | MinKernel (Kernel thấp nhất) | MaxKernel (Kernel cao nhất) |
|---|---|---|
| 10.4 | 8.0.0 | 8.99.99 |
| 10.5 | 9.0.0 | 9.99.99 |
| 10.6 | 10.0.0 | 10.99.99 |
| 10.7 | 11.0.0 | 11.99.99 |
| 10.8 | 12.0.0 | 12.99.99 |
| 10.9 | 13.0.0 | 13.99.99 |
| 10.10 | 14.0.0 | 14.99.99 |
| 10.11 | 15.0.0 | 15.99.99 |
| 10.12 | 16.0.0 | 16.99.99 |
| 10.13 | 17.0.0 | 17.99.99 |
| 10.14 | 18.0.0 | 18.99.99 |
| 10.15 | 19.0.0 | 19.99.99 |
| 11 | 20.0.0 | 20.99.99 |
| 12 | 21.0.0 | 21.99.99 |
| 13 | 22.0.0 | 22.99.99 |
| 14 | 23.0.0 | 23.99.99 |
| 15 | 24.0.0 | 24.99.99 |
| 26 | 25.0.0 | 25.99.99 |
# Mục Emulate (Giả lập thông tin CPU)
CHI TIẾT
Cần thiết để giả lập các dòng CPU hông được hỗ trợ và kích hoạt tính năng điều phối điện năng (power management) trên đời Haswell-E và Broadwell-E.
Broadwell E:
- Cpuid1Data:
D4060300 00000000 00000000 00000000 - Cpuid1Mask:
FFFFFFFF 00000000 00000000 00000000
- Cpuid1Data:
Thông tin chuyên sâu hơn
- Cpuid1Data:
D4060300 00000000 00000000 00000000- Nhập mã CPUID giả mạo tại đây.
- Cpuid1Mask:
FFFFFFFF 00000000 00000000 00000000- Mã mặt nạ (mask) cho CPUID giả mạo.
- DummyPowerManagement: No
- Vô hiệu hóa trình điều phối điện năng AppleIntelCPUPowerManagement, cái này chỉ bắt buộc đối với các dòng CPU AMD.
- MinKernel: Leave this blank
- Giới hạn phiên bản nhân (Kernel) thấp nhất của hệ điều hành mà các bản vá trên sẽ được áp dụng. Nếu hông ghi giá trị nào, nó sẽ áp dụng cho tất cả các phiên bản macOS. Xem bảng bên dưới để biết các giá trị có thể nhập.
- VD: Gõ là
12.00.00cho OS X 10.8
- MaxKernel: Để trống
- Giới hạn phiên bản nhân (Kernel) cao nhất của hệ điều hành mà các bản vá trên sẽ được áp dụng. Nếu hông ghi giá trị nào, nó sẽ áp dụng cho tất cả các phiên bản macOS. Xem bảng bên dưới để biết các giá trị có thể nhập.
- VD:
11.99.99cho Mac OS X 10.7
Bảng tra cứu phiên bản Kernel
| Phiên bản OS X | MinKernel (Kernel thấp nhất) | MaxKernel (Kernel cao nhất) |
|---|---|---|
| 10.4 | 8.0.0 | 8.99.99 |
| 10.5 | 9.0.0 | 9.99.99 |
| 10.6 | 10.0.0 | 10.99.99 |
| 10.7 | 11.0.0 | 11.99.99 |
| 10.8 | 12.0.0 | 12.99.99 |
| 10.9 | 13.0.0 | 13.99.99 |
| 10.10 | 14.0.0 | 14.99.99 |
| 10.11 | 15.0.0 | 15.99.99 |
| 10.12 | 16.0.0 | 16.99.99 |
| 10.13 | 17.0.0 | 17.99.99 |
| 10.14 | 18.0.0 | 18.99.99 |
| 10.15 | 19.0.0 | 19.99.99 |
| 11 | 20.0.0 | 20.99.99 |
| 12 | 21.0.0 | 21.99.99 |
| 13 | 22.0.0 | 22.99.99 |
| 14 | 23.0.0 | 23.99.99 |
| 15 | 24.0.0 | 24.99.99 |
| 26 | 25.0.0 | 25.99.99 |
# Mục Force (Ép nạp kext)
Dùng để nạp các kext nằm ngoài phân vùng EFI. Cái này chỉ quan trọng với mấy cái OS đời "cổ đại" khi mà một số kext hông có sẵn trong bộ nhớ đệm (cache) – (ví dụ như IONetworkingFamily trong 10.6).
Với anh em mình thì cứ ngó lơ mục này đi.
# Mục Block (Chặn)
Sử dụng để chặn hông cho nạp một số kext nhất định. Hông liên quan tới mình, bỏ qua luôn.
# Mục Patch (Vá)
Xài để vá lỗi cho Nhân hệ điều hành (Kernel) lẫn kext.
# Mục Quirks (Cài đặt chuyên sâu)
CHI TIẾT
Đây là những cài đặt quan trọng liên quan tới Kernel, anh em mình sẽ chỉnh mấy mục sau:
| Quirk (Cài đặt chuyên sâu) | Enabled (Có kích hoạt hay không) | Comment (Ghi chú) | |||
|---|---|---|---|---|---|
| AppleCpuPmCfgLock | NO | Cần thiết nếu bạn cài đặt 10.10 trở xuống nhưng BIOS không cho tắt tính năng CFG-Lock | |||
| AppleXcpmCfgLock | YES | Không cần thiết nếu bạn đã tắt tính năng CFG-Lock trong BIOS | AppleXcpmExtraMsrs | YES | |
| DisableIoMapper | YES | Không cần thiết nếu bạn đã tắt tính năng VT-D trong BIOS | |||
| LapicKernelPanic | NO | Máy tính HP sẽ cần mở quirk này | |||
| PanicNoKextDump | YES | ||||
| PowerTimeoutKernelPanic | YES | ||||
| XhciPortLimit | YES | Tắt quirk này nếu bạn xài macOS 11.3+ |
Thông tin chuyên sâu hơn
- AppleCpuPmCfgLock: NO
- Bạn cần mở nó lên nếu BIOS của bạn không cho tắt CFG-Lock
- Chỉ áp dụng cho Ivy Bridge và đời cũ hơn
- Lưu ý: Broadwell và cũ hơn cũng cần mở cài đặt này nếu cần cài bản 10.10 hoặc cũ hơn
- AppleXcpmCfgLock: YES
- Bạn cần mở nó lên nếu BIOS của bạn không cho tắt CFG-Lock
- Chỉ áp dụng cho Haswell và đời mới hơn
- Lưu ý: Đời máy Ivy Bridge-E cũng phải mở mục này vì tụi nó cũng sử dụng cơ chế XCPM tương tự.
- AppleXcpmExtraMsrs: YES
- Vô hiệu hóa việc truy cập vào nhiều thanh ghi MSR (Model Specific Registers) vốn cần thiết cho các dòng CPU hông được hỗ trợ như Pentium và nhiều dòng Xeon. Bắt buộc (Required) đối với đời Broadwell-E và các đời cũ hơn.
- CustomSMBIOSGuid: NO
- Dành cho mấy máy cần vá GUID khi để chế độ UpdateSMBIOSMode là
Custom. Bình thường chỉ có máy Dell mới cần sử dụng tính năng này. - Cài đặt quirk UpdateSMBIOSMode ở chế độ Custom có thể giúp hông "bơm" SMBIOS vào các OS hông phải Apple (VD: Windows), tức là thay vì bơm thông tin giả là một con Mac thiệt cho Windows thấy thì giờ đây bạn vẫn thấy thông tin của máy bạn, nhưng mình hông khuyến khích vì nó làm hư tính năng Bootcamp. Cân nhắc trước khi sử dụng nha!
- Dành cho mấy máy cần vá GUID khi để chế độ UpdateSMBIOSMode là
- DisableIoMapper: YES
- Sử dụng để "ép tắt" VT-D nếu trong BIOS không có cài đặt cho bạn tắt trong BIOS. Cách này ngon hơn xài lệnh
dart=0nhiều vì bạn vẫn mở được SIP trên bản Catalina.
- Sử dụng để "ép tắt" VT-D nếu trong BIOS không có cài đặt cho bạn tắt trong BIOS. Cách này ngon hơn xài lệnh
- DisableIoMapperMapping: NO
- Chỉ cần mở nếu bạn bị lỗi Wi-Fi/Ethernet/Thunderbolt khi bật VT-D và máy có trên 16GB RAM. Mở cài đặt này yêu cầu bạn phải có bảng DMAR đã được vá (opens new window) với các vùng bộ nhớ dành riêng (Reserved Memory Regions) đã bị lọc ra.
- Tụi mình khuyên bạn nên vô hiệu hóa VT-D, vì đa số trường hợp không ai cần mở cài đặt này
- Không cần thiết trên bản 13.2.1 và cũ hơn
- DisableLinkeditJettison: YES
- Giúp Lilu và mấy kext khác chạy ổn định hơn mà hông cần dùng tham số khởi động (boot-args)
keepsyms=1
- Giúp Lilu và mấy kext khác chạy ổn định hơn mà hông cần dùng tham số khởi động (boot-args)
- DisableRtcChecksum: NO
- Ngăn AppleRTC ghi đè lên checksum (0x58-0x59), dành cho bác nào bị lỗi reset BIOS hoặc máy tự nhảy vào Safe Mode sau khi khởi động lại.
- ExtendBTFeatureFlags: NO
- Hỗ trợ mấy tính năng Continuity cho bạn nào xài card Wi-Fi hông phải của Apple hoặc Fenvi.
- IncreasePciBarSize: NO
- Tăng kích thước PCI BAR 32-bit trong driver IOPCIFamily từ 1GB lên 4GB. Tuy nhiên, việc bật tính năng Above4GDecoding trực tiếp trong BIOS là một cách tiếp cận sạch sẽ và an toàn hơn nhiều. Một số bo mạch chủ X99 có thể cần đến mục này; thông thường bạn sẽ gặp lỗi treo máy (kernel panic) tại IOPCIFamily nếu máy bạn thực sự cần nó. Lưu ý rằng mục này thường hông cần thiết trên bản Mojave và các bản mới hơn.
- LapicKernelPanic: NO
- Ngăn chặn lỗi kernel panic liên quan tới lệnh ngắt LAPIC trên các nhân CPU phụ (bệnh nổi tiếng của mấy con hạnh phúc), là "thuốc đặc trị" cho mấy dòng máy HP (thường hay bị). Nếu bạn từng xài Clover thì nó chính là mục
Kernel LAPICđó.
- Ngăn chặn lỗi kernel panic liên quan tới lệnh ngắt LAPIC trên các nhân CPU phụ (bệnh nổi tiếng của mấy con hạnh phúc), là "thuốc đặc trị" cho mấy dòng máy HP (thường hay bị). Nếu bạn từng xài Clover thì nó chính là mục
- LegacyCommpage: NO
- Giải quyết yêu cầu tập lệnh SSSE3 cho CPU 64-bit (bằng cách giả lập), chủ yếu dành cho mấy con Pentium 4 (VD: đời Prescott).
- PanicNoKextDump: YES
- Cho phép đọc log lỗi khi máy bị lỗi sập hệ thống (Kernel Panic).
- PowerTimeoutKernelPanic: YES
- Sửa lỗi sập hệ thống liên quan tới driver âm thanh kỹ thuật số trên macOS Catalina, đặc biệt là với âm thanh kỹ thuật số.
- SetApfsTrimTimeout:
-1- Thiết lập thời gian chờ lệnh TRIM cho ổ SSD. Chỉ áp dụng từ macOS 10.14 trở lên cho mấy cái SSD "dở chứng".
- XhciPortLimit: YES
- Đây chính là bản vá giới hạn 15 cổng USB huyền thoại. Đừng quá tin tưởng nó mà chỉ nên sử dụng tạm thời, tốt nhất là sau khi cài xong bạn nên lập sơ đồ USB (opens new window) ngay khi có thể.
- Với macOS 11.3+, bản vá XhciPortLimit có thể không chạy chính xác (opens new window). Tụi mình khuyên bạn đọc bài viết này nên tắt ngay cái quirk này trước khi nâng cấp lên bản đó hoặc lập sơ đồ trong Windows (opens new window). Nếu không muốn thực hiện thì bạn chỉ nên cài đặt macOS 11.2.3 trở xuống.
Lý do là vì UsbInjectAll cố tình cài đặt lại các chức năng có sẵn của macOS nhưng lại hông có sự tinh chỉnh cường độ dòng điện (current tuning) cho chuẩn xác. Việc tự khai báo các cổng USB của bạn chỉ trong một cái kext dạng file plist duy nhất sẽ sạch sẽ hơn nhiều; cách này hông làm lãng phí bộ nhớ khi máy đang chạy và còn nhiều lợi ích khác nữa.
# Mục Scheme (Cấu hình cách nạp Kernel)
Bạn cài đặt mục này nếu muốn boot các bản OS cũ (VD: 10.4-10.6), đa số anh em có thể bỏ qua nếu chạy hệ điều hành mới hơn, nhưng bạn đang muốn "hoài cổ" thì đọc thêm bên dưới:
Thông tin chuyên sâu hơn
FuzzyMatch: True
- Bỏ qua kiểm tra checksum của kernelcache, thay vào đó chọn sử dụng bộ nhớ đệm mới nhất hiện có trong hệ điều hành, giúp máy boot nhanh hơn trên bản 10.6.
KernelArch: x86_64
- Chọn kiến trúc của Kernel (nhân hệ thống) sẽ khởi động, bạn có thể chọn giữa
Auto(tự động chọn),i386(32-bit) vàx86_64(64-bit). - Nếu bạn boot bản cũ cần Kernel 32-bit (VD như 10.4 và 10.5) mình khuyến khích bạn nên đặt giá trị là
Autovà để macOS tự chọn tùy thuộc SMBIOS bạn đang sử dụng. Đọc bảng sau để biết các giá trị được hỗ trợ:- 10.4-10.5 —
x86_64,i386hoặci386-user32i386-user32yêu cầu môi trường ứng dụng (userspace) 32-bit, vì vậy bạn sẽ chọn cái này cho CPU 32-bit (hoặc CPU thiếu tập lệnh SSSE3)x86_64vẫn sử dụng môi trường hệ thống (kernelspace) 32-bit (do thiết kế của Apple trong giai đoạn này), tuy nhiên kernelspace sẽ sử dụng userspace 64-bit trong phiên bản 10.4/5
- 10.6 —
i386,i386-user32, hoặcx86_64 - 10.7 —
i386hoặcx86_64 - 10.8 và mới hơn —
x86_64
- 10.4-10.5 —
- Chọn kiến trúc của Kernel (nhân hệ thống) sẽ khởi động, bạn có thể chọn giữa
Lưu ý về việc chọn Kernel: Bạn đừng quá lăn tăn việc chọn Kernel nào vì macOS thời điểm này là một hệ điều hành lai 32/64-bit cực kỳ linh hoạt, nó cho phép bạn chạy Kernel 32-bit nhưng có thể chạy app 64-bit bình thường.
- Từ 10.4 đến 10.6: Dù Kernelspace có thể là 32-bit, nhưng hệ thống vẫn chạy app 64-bit bình thường. Tốt nhất bạn nên để Kernel tự quyết định (Auto) vì nhiều SMBIOS có CPU 64-bit Apple quy định chỉ được chạy Kernelspace 32-bit nhưng cho phép chạy Userspace 64-bit vì một số vấn đề kỹ thuật (cụ thể như driver đồ họa GMA có vấn đề trên Kernel 64-bit).
- Từ bản 10.7: Tuy vẫn còn Kernel 32-bit cho một số máy, nhưng Apple đã chính thức "khai tử" Userspace 32-bit. Cái này nghĩa là hệ điều hành bắt buộc phải chạy trên CPU 64-bit, nên những dòng chip 32-bit thuần như Core Duo (kiến trúc Yonah) đành phải "dừng cuộc chơi" tại đây.
- Từ bản 10.8: Hệ điều hành chính thức loại bỏ Kernel 32-bit, tuy nhiên vẫn hỗ trợ chạy app 32-bit cho tới 10.14.
KernelCache: Auto
- Thiết lập loại bộ nhớ cache của kernel được sử dụng, chủ yếu hữu ích cho việc gỡ lỗi, vì vậy tụi mình khuyên dùng giá trị
Autođể được hỗ trợ tốt nhất.
- Thiết lập loại bộ nhớ cache của kernel được sử dụng, chủ yếu hữu ích cho việc gỡ lỗi, vì vậy tụi mình khuyên dùng giá trị
# Phần Misc (Cài đặt cách OpenCore chạy theo ý muốn của bạn)

# Mục Boot (Khởi động)
CHI TIẾT
| Quirk (Cài đặt chuyên sâu) | Enabled (Có kích hoạt hay không) | Comment (Ghi chú) |
|---|---|---|
| HideAuxiliary | YES | Nhấn phím dấu cách (Space) để hiện mục Recovery và các mục phụ khác |
Thông tin chuyên sâu hơn
- HideAuxiliary: YES
- Cài đặt này sẽ giấu bớt mấy cái "râu ria" không liên quan đến ổ đĩa chứa hệ điều hành chính, chẳng hạn như mục để bạn vào chế độ Recovery của macOS hoặc các công cụ trong màn hình chọn của OpenCore. Cái hay của nó là giúp menu boot nhìn gọn đẹp hơn và cải thiện tốc độ khởi động trên các máy tính có nhiều ổ cứng. Bạn có thể nhấn phím dấu cách trong màn hình chọn để hiển thị các mục này.
# Phần Debug (gỡ lỗi)
CHI TIẾT
Cực kỳ hữu ích khi máy bị treo lúc boot OpenCore (Mình sẽ mở hết trừ cái DisplayDelay):
| Quirk (Cài đặt chuyên sâu) | Enabled (Có kích hoạt hay không) |
|---|---|
| AppleDebug | YES |
| ApplePanic | YES |
| DisableWatchDog | YES |
| Target | 67 |
Thông tin chuyên sâu hơn
- AppleDebug: YES
- Mở chức năng ghi lại log của boot.efi, rất hữu ích trong quá trình gỡ lỗi. Lưu ý rằng cài đặt này chỉ có tác dụng trên bản 10.15.4 và mới hơn
- ApplePanic: YES
- Cố gắng ghi log lỗi Kernel Panic vào ổ cứng khi có thể
- DisableWatchDog: YES
- Tắt tính năng "chó canh cổng" (bộ đếm thời gian điện tử) của UEFI, giúp vượt qua mấy lỗi treo lúc mới khởi động
- DisplayLevel:
2147483650- Hiển thị nhiều thông tin chi tiết để gỡ lỗi (cần bản Debug của OpenCore để đạt hiệu quả cao nhất)
- SysReport: NO
- Hữu ích cho việc gỡ lỗi, ví dụ như trích xuất bảng ACPI.
- Ghi nhớ rằng tính năng này được giới hạn chỉ chạy trên phiên bản DEBUG của OpenCore
- Target:
67- Hiển thị nhiều thông tin, báo cáo chi tiết để gỡ lỗi (cần bản Debug của OpenCore để đạt hiệu quả cao nhất)
Những giá trị này dựa trên những giá trị được tính toán sẵn trong trang Gỡ lỗi OpenCore
# Phần Security (bảo mật)
CHI TIẾT
Phần bảo mật là một trong những phần cực kỳ quan trọng, cấm bỏ qua nha. Mình sẽ chỉnh mấy mục sau:
| Quirk (Cài đặt chuyên sâu) | Enabled (Có kích hoạt hay không) | Comment (Ghi chú) |
|---|---|---|
| AllowSetDefault | YES | |
| BlacklistAppleUpdate | YES | |
| ScanPolicy | 0 | |
| SecureBootModel | Default | Cứ để giá trị là Default để OpenCore tự động thiết lập giá trị chính xác tương ứng với SMBIOS của bạn. Trang tiếp theo sẽ trình bày chi tiết hơn về cách thiết lập tính năng này |
| Vault | Optional | Đây là một cài đặt dạng "từ khóa", hông phải là "tùy chọn" muốn điền hay không điền cũng được đâu. Hông điền đúng Optional là hông boot được đâu đó, lưu ý rằng nó phân biệt chữ hoa chữ thường |
Thông tin chuyên sâu hơn
AllowSetDefault: YES
- Cho phép bạn nhấn tổ hợp phím
CTRL+EnterhoặcCTRL+Indexđể chọn ổ cứng boot mặc định ngay màn hình chọn hệ điều hành.
- Cho phép bạn nhấn tổ hợp phím
ApECID: 0
- Chức năng này sử dụng để trích xuất mã định danh khởi động an toàn của riêng máy bạn, hiện tại không nên sử dụng do 1 lỗi bug có trong trình cài đặt macOS, vì vậy mình đặc biệt khuyến khích bạn nên để nguyên cài đặt mặc định.
AuthRestart: NO
- Cho phép khởi động lại FileVault 2 có sẵn xác thực, do đó bạn không cần nhập mật khẩu máy khi khởi động lại. Tính năng này có thể coi là một rủi ro bảo mật nên tùy theo bạn có muốn sử dụng hay không.
BlacklistAppleUpdate: YES
- Mở cài đặt này để ngăn chặn macOS cập nhật firmware (vi chương trình) trên máy tính không phải của Apple, như một lớp bảo vệ bổ sung vì macOS Big Sur không còn sử dụng biến
run-efi-updaternữa. macOS có xu hướng cập nhật firmware của máy lên bản mới được đi kèm trong bộ cài, với máy tính không mang nhãn hiệu của Apple đây là 1 tính năng rất là tai hại, có thể gây lỗi trong quá trình cài đặt hoặc thậm chí biến máy thành cục gạch.
- Mở cài đặt này để ngăn chặn macOS cập nhật firmware (vi chương trình) trên máy tính không phải của Apple, như một lớp bảo vệ bổ sung vì macOS Big Sur không còn sử dụng biến
DmgLoading: Signed
- Bảo đảm chỉ có file DMG đã được ký số từ Apple mới được khởi động
ExposeSensitiveData:
6- Hiển thị nhiều thông tin, báo cáo chi tiết để gỡ lỗi (cần bản Debug của OpenCore để đạt hiệu quả cao nhất)
Vault:
Optional- Tạm thời chúng ta chưa cần sử dụng tính năng két sắt nên bỏ qua cài đặt này, máy sẽ không boot được nếu bạn chưa thiết lập những thành phần cần thiết mà cài đặt giá trị là Secure
- Đây là một cài đặt dạng "từ khóa", hông phải là "tùy chọn" muốn điền hay không điền cũng được đâu. Hông điền đúng
Optionallà hông boot được đâu đó, lưu ý rằng nó phân biệt chữ hoa chữ thường
ScanPolicy:
0- Giá trị
0cho phép hiện hình toàn bộ ổ đĩa có hệ điều hành, vui lòng tham khảo mục Bảo mật (opens new window) để biết thêm chi tiết. Bạn sẽ không boot được vào bộ cài USB nếu để cài đặt mặc định của file sample (là 1 giá trị khác)
- Giá trị
SecureBootModel: Default
- Quản lý tính năng Secure Boot (khởi động an toàn) của Apple trên macOS, vui lòng tham khảo mục Bảo mật (opens new window) để biết thêm chi tiết. Lưu ý với bạn đọc đang xài card NVIDIA mà cần cài Web Driver để chạy được, bạn vui lòng thiết lập giá trị là Disabled để có thể cài đặt Web Driver nha.
- Lưu ý: Bạn đọc khi nâng cấp OpenCore lên phiên bản mới khi macOS đã được cài đặt, trong một số trường hợp hy hữu có thể dẫn tới lỗi khởi động sớm khi cài đặt trên đang được mở. Để khắc phục, bạn đọc tại đây: Bị treo ở OCB: LoadImage failed - Security Violation (Lỗi bảo mật khi nạp file khởi động)
# Mục Serial (Cấu hình cổng nối tiếp)
Sử dụng để gỡ lỗi qua cổng nối tiếp (Cứ để mặc định).
# Mục Tools (Bổ sung, quản lý những bộ công cụ riêng của OpenCore)
Bạn sẽ cài đặt mục này để có thể sử dụng mấy cái công cụ của OC để gỡ lỗi như Shell. Nếu bạn xài tính năng Snapshot của ProperTree, nó sẽ tự thêm mấy cái này vô cho bạn.
# Mục Entries (Bổ sung những đường dẫn khởi động ngoại lai)
Sử dụng để thêm thủ công mấy cái đường dẫn boot "lạ quẻ" mà OpenCore hông tự tìm thấy được. Thường thì mình hông cần đụng tới.
Sẽ không hướng dẫn chi tiết tại đây, bạn có nhu cầu vui lòng đọc mục 8.6 của tệp Configuration.pdf (opens new window) để biết thêm chi tiết.
# Phần NVRAM (Chỉ định các cài đặt quan trọng để macOS có thể khởi động)

# Mục Add (Bổ sung thuộc tính NVRAM)
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
Xài cái này để chỉnh độ giãn nở giao diện (UI scaling) của OpenCore. Để mặc định là tốt rồi. Xem phần chi tiết bên dưới để biết thêm nha.
Thông tin chuyên sâu hơn
Đường dẫn Booter, bạn sẽ xài cái này để tùy biến giao diện lúc boot:
- DefaultBackgroundColor: Quyết định màu nền khởi động mà file boot.efi sẽ sử dụng.
00000000: Màu đen (mặc định)BFBFBF00: Màu xám nhạt (giống những con Mac được sản xuất từ năm 2014 trở về trước)
4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
Đây là mã GUID của NVRAM trong OpenCore, cái này sẽ quan trọng cho mấy bạn cần tới RTCMemoryFixup.
Thông tin chuyên sâu hơn
- rtc-blacklist: <>
- Sử dụng kết hợp với kext RTCMemoryFixup, đọc tại đây để biết thêm thông tin: Sửa lỗi RTC (opens new window)
- Đa số anh em mình cứ ngó lơ phần này cũng hông sao
7C436110-AB2A-4BBB-A880-FE41995C9F82
Mã bitmask cho tính năng Bảo vệ toàn vẹn hệ thống (SIP)
- Những cái tham số khởi động (boot-args) thông dụng:
| boot-args (Tham số khởi động) | Description (Mô tả) |
|---|---|
| -v | Kích hoạt chế độ chi tiết (Verbose). Nó sẽ hiện mấy dòng chữ chạy "vèo vèo" thay vì cái logo Táo và thanh tiến trình. Đây là món "bảo bối" của dân Hackintosh để nhìn thấu bên trong quá trình boot, giúp bắt bệnh kext nào đang gây lỗi. |
| debug=0x100 | Vô hiệu hóa tính năng "chó canh cổng" (watchdog) của macOS để máy hông tự khởi động lại khi bị sập (kernel panic). Nhờ vậy bạn có thể vớt vát được ít thông tin lỗi để tìm đường mà sửa. Lưu ý rằng nó khác với hệ thống watchdog của UEFI nha. |
| keepsyms=1 | "Cặp bài trùng" với debug=0x100, lệnh cho hệ điều hành in luôn chi tiết lỗi khi sập máy (thay vì hiện những mã HEX vô nghĩa). Cái này giúp bạn soi kỹ hơn nguyên nhân gây hệ thống bị "đột tử". |
| npci=0x2000 | Lệnh này vô hiệu hóa một số tiến trình gỡ lỗi (debugging) PCI liên quan đến kIOPCIConfiguratorPFM64, một lựa chọn thay thế khác là npci=0x3000 lệnh này sẽ vô hiệu hóa thêm cả phần gỡ lỗi liên quan đến gIOPCITunnelledKey. Bắt buộc sử dụng khi máy bạn bị kẹt ở dòng chữ PCI Start Configuration, nguyên nhân thường là do xung đột IRQ liên quan đến các luồng dữ liệu PCI của bạn. Nguồn (opens new window) |
| alcid=1 | Xài để thiết lập layout-id cho kext âm thanh AppleALC, đọc thêm tại Những codec âm thanh được hỗ trợ (opens new window) để xem máy mình xài layout nào cho chuẩn nha. Thông tin chi tiết hơn về vấn đề này được đề cập trong phần sau. Trang sau khi cài đặt OpenCore (opens new window) |
- Tham số khởi động dành riêng cho những dòng card màn hình cụ thể:
| boot-args (Tham số khởi động) | Description (Mô tả) |
|---|---|
| agdpmod=pikera | Sử dụng để vô hiệu hóa việc kiểm tra ID bo mạch trên một số dòng card màn hình kiến trúc Navi của AMD (dòng RX 5000 & 6000), nếu bạn xài 1 trong 2 dòng card trên thì nên bổ sung nếu không máy tính sẽ bị lỗi đen màn hình sau khi khởi động. Không sử dụng boot-args này nếu không phải card Navi (VD: card màn hình kiến trúc Polaris hoặc Vega không cần xài) |
| -radcodec | Bạn xài tham số này để cho phép các GPU AMD không được hỗ trợ chính thức (phải bơm thông tin giả lập để có thể chạy) có khả năng sử dụng Bộ mã hóa video phần cứng (Hardware Video Encoder) |
| radpg=15 | Xài cái này để vô hiệu hóa một số chế độ tiết kiệm điện không tương tích với macOS, cần thiết để khởi tạo thành công dòng card AMD dựa trên kiến trúc Cape Verde. |
| unfairgva=1 | Sử dụng để khắc phục sự cố DRM phần cứng trên các GPU AMD được hỗ trợ. |
| nvda_drv_vrl=1 | Xài cái này để kích hoạt NVIDIA Web Drivers trên card màn hình kiến trúc Maxwell và Pascal của NVIDIA trong macOS Sierra và High Sierra |
csr-active-config:
00000000- Thiết lập cho tính năng 'Bảo vệ toàn vẹn hệ thống' (SIP). Bình thường mình khuyên nên chỉnh cái này bằng lệnh
csrutiltrong chế độ Recovery của macOS thì hay hơn. - Giá trị mặc định của csr-active-config là
00000000, có nghĩa là đang kích hoạt System Integrity Protection. Bạn có thể đổi giá trị khác nhưng mình khuyên nên để nguyên vậy cho nó bảo mật. Cần tắt thì đọc ở đây nha: Vô hiệu hóa SIP
- Thiết lập cho tính năng 'Bảo vệ toàn vẹn hệ thống' (SIP). Bình thường mình khuyên nên chỉnh cái này bằng lệnh
run-efi-updater:
No- Ngăn Apple cài mấy bản cập nhật firmware "chỉ dành cho máy Mac thiệt" làm lỗi thứ tự khởi động. Cái này quan trọng vì mấy cái bản cập nhật đó chỉ dành cho máy Mac, máy mình cài vô không chừng đi "bán muối" luôn á.
prev-lang:kbd: <>
- Dùng cho bàn phím hông phải hệ chữ Latin, cài đặt theo định dạng
lang-COUNTRY:keyboard, nên để trống nếu có thể, tuy nhiên bạn cũng có thể cài đặt loại bàn phím mặc định. (Mặc định trong tệp Sample là tiếng Nga nên bạn cứ để trống cho lành): - Bàn phím chuẩn Hoa Kỳ:
en-US:0(tức là giá trị656e2d55533a30trong mã HEX) - Danh sách đầy đủ bạn có thể tìm thấy tại đây: AppleKeyboardLayouts.txt (opens new window)
- Mẹo số 1: Bạn có thể đổi kiểu của
prev-lang:kbdsang kiểu dữ liệu String (dữ liệu chuỗi) để có thể gõ trực tiếpen-US:0thay vì mắc công chuyển sang mã HEX - Mẹo số 2: Nếu bạn để trống mục
prev-lang:kbd(VD:<>) macOS sẽ hiện cái bảng chọn ngôn ngữ ngay trong lần boot đầu tiên.
- Dùng cho bàn phím hông phải hệ chữ Latin, cài đặt theo định dạng
| Khóa (Key) | Loại (Type) | Mô tả (Description) |
|---|---|---|
| prev-lang:kbd | String | en-US:0 |
# Mục Delete (loại trừ)
THÔNG TIN
Xài để ép hệ thống viết lại các biến NVRAM. Lưu ý là mục Add sẽ hông ghi đè lên những giá trị đã có sẵn, nên mấy thứ như boot-args bạn đừng đụng vô đây. Do các vấn đề liên quan đến NVRAM trên dòng X99, chúng ta sẽ thực hiện thay đổi những mục sau đây:
| Quirk (Cài đặt chuyên sâu) | Enabled (Có kích hoạt hay không) |
|---|---|
| LegacyOverwrite | YES |
| WriteFlash | NO |
Thông tin chuyên sâu hơn
LegacyOverwrite: YES
- Cho phép ghi đè các biến phần mềm (firmware variables) từ file nvram.plist. Cái này chỉ cần thiết cho những hệ thống hông có NVRAM gốc (native NVRAM) hoạt động ổn định, ví dụ như dòng X99.
LegacySchema
- Sử dụng để gán các biến NVRAM, đi kèm với
OpenVariableRuntimeDxe.efi. Chỉ dành cho mấy máy hông có NVRAM tương tích (native).
- Sử dụng để gán các biến NVRAM, đi kèm với
WriteFlash: NO
- Cho phép ghi vào bộ nhớ flash cho tất cả các biến đã thêm. Tuy nhiên, tính năng này hông tương thích với NVRAM giả lập (emulated NVRAM).
# Phần PlatformInfo (Bổ sung thông tin giả lập máy Mac, chọn SMBIOS phù hợp)

Thông tin
Để thiết lập thông số SMBIOS, anh em mình sẽ xài một app của lập trình viên tài ba CorpNewt có tên là GenSMBIOS (opens new window).
Lấy ví dụ cho đời Broadwell-E, mình sẽ chọn SMBIOS iMacPro1,1.
Mở GenSMBIOS lên, chọn số 1 để tải MacSerial và số 3 để chọn SMBIOS. Bạn sẽ nhận được kết quả kiểu như vầy:
#######################################################
# iMacPro1,1 SMBIOS Info #
#######################################################
Type: iMacPro1,1
Serial: C02YX0TZHX87
Board Serial: C029269024NJG36CB
SmUUID: DEA17B2D-2F9F-4955-B266-A74C47678AD3
Copy cái Type bỏ vô mục Generic -> SystemProductName.
Copy cái Serial bỏ vô mục Generic -> SystemSerialNumber.
Copy cái Board Serial bỏ vô mục Generic -> MLB.
Copy cái SmUUID bỏ vô mục Generic -> SystemUUID.
Với phần Generic -> ROM, bạn có thể lấy số ROM của máy Mac xịn, hoặc lấy địa chỉ MAC của card mạng máy mình, hay quất đại một dãy số ngẫu nhiên nào đó (miễn là 6 byte). Trong bài này mình sẽ sử dụng 11223300 0000. Cài xong rồi thì qua trang Sửa lỗi iServices (opens new window) để tìm địa chỉ MAC thật nha
Nhớ kỹ: Bạn cần số Serial không hợp lệ! Nghĩa là khi gõ Serial vô trong trang kiểm tra của Apple (opens new window), nó phải báo là: "Unable to check coverage for this serial number." (Không thể kiểm tra thông tin bảo hành của số sê-ri này) thì mới chuẩn bài nha.
Automatic: YES
- Nó sẽ tự tạo PlatformInfo dựa trên mục Generic thay vì mấy mục DataHub, NVRAM hay SMBIOS lẻ tẻ.
# Mục Generic (Cài đặt cách giả lập máy Mac)
Thông tin chuyên sâu hơn
AdviseFeatures: NO
- Bạn mở cài đặt này khi phân vùng EFI không phải là phân vùng đầu tiên trong ổ cứng (cài Windows rất hay bị)
MaxBIOSVersion: NO
- Đánh giả số phiên bản BIOS lên phiên bản mới nhất để né mấy bản update firmware khi cài đặt Big Sur+. Chỉ xài cài đặt này trên máy Mac thiệt.
ProcessorType:
0- Đặt giá trị là
0để nó tự nhận diện loại CPU, tuy nhiên bạn cũng có thể độ chế tên CPU nếu đổi giá trị này. Đọc thêm AppleSmBios.h (opens new window) để biết bạn có thể chọn những giá trị nào
- Đặt giá trị là
SpoofVendor: YES
- Đổi tên hãng sản xuất thành Acidanthera. Đừng dại mà để là Apple nha, dễ lỗi lắm.
SystemMemoryStatus: Auto
- Khai báo RAM là loại hàn chết hay có thể tháo rời. Cái này để cho đẹp thôi nên cứ để
Auto
- Khai báo RAM là loại hàn chết hay có thể tháo rời. Cái này để cho đẹp thôi nên cứ để
UpdateDataHub: YES
- Cho phép cập nhật trường thông tin Data Hub
UpdateNVRAM: YES
- Cho phép cập nhật trường thông tin NVRAM
UpdateSMBIOS: YES
- Cho phép cập nhật trường thông tin SMBIOS
UpdateSMBIOSMode: Create
- Thay thế các bảng thông tin bằng bộ nhớ EfiReservedMemoryType mới. Nếu bạn cần cài đặt
Customtrên máy Dell thì nhớ là phải mở quirkCustomSMBIOSGuidnha - Lưu ý: Nếu để
Customcùng với quirkCustomSMBIOSGuidcó thể chặn hông cho "bơm" SMBIOS vào các hệ điều hành hông phải của Apple, tuy nhiên tụi mình hông khuyến khích vì nó sẽ làm hư tính năng Bootcamp. Cân nhắc trước khi sử dụng nha!
- Thay thế các bảng thông tin bằng bộ nhớ EfiReservedMemoryType mới. Nếu bạn cần cài đặt
# Phần UEFI (quản lý các driver, bổ sung thêm tính năng hoặc điều chỉnh cần thiết liên quan tới firmware)

ConnectDrivers: YES
- Cài đặt này dùng để ép hệ thống nạp các driver có đuôi .efi. Nếu bạn chuyển sang NO, OpenCore sẽ tự động kết nối các driver UEFI đã thêm vào. Việc này có thể giúp máy boot nhanh hơn một xíu, nhưng không phải driver nào cũng tự kết nối được. Ví dụ: một số driver định dạng ổ cứng (file system) có thể sẽ hông nạp được đâu nha.
# Mục Drivers (Quản lý, bổ sung driver của firmware)
Bạn hãy thêm các file driver .efi của mình vào đây.
Những driver trước tiên nên có ở đây là:
- HfsPlus.efi
- OpenRuntime.efi
Thông tin chuyên sâu hơn
| Khóa (Key) | Loại (Type) | Mô tả (Description) |
|---|---|---|
| Path | String | Đường dẫn của file tính từ thư mục OC/Drivers |
| LoadEarly | Boolean | Nạp driver sớm trước khi thiết lập NVRAM. Chỉ nên kích hoạt cho OpenRuntime.efi và OpenVariableRuntimeDxe.efi nếu bạn đang xài NVRAM giả lập (legacy). |
| Arguments | String | Một số driver cho phép thêm các tham số phụ, bạn sẽ điền ở đây. |
# Mục APFS (Cài đặt riêng cho ổ cứng APFS)
Mặc định, OpenCore chỉ nạp driver APFS từ bản macOS Big Sur trở lên. Nếu bạn đang boot macOS Catalina hoặc cũ hơn, bạn cần phải chỉ định phiên bản/ngày/tháng phát hành tối thiểu của APFS (Min version/date). Nếu hông chỉnh cái này, OpenCore có thể không tìm thấy phân vùng bạn đã cài macOS đâu đó!
Với macOS Sierra và những hệ điều hành cũ hơn sử dụng HFS thay vì APFS. Bạn có thể bỏ qua phần này nếu định cài mấy bản macOS "đồ cổ" đó.
Các phiên bản APFS
Bạn cần phải điền cả 2 mục MinVersion và MinDate nếu bạn muốn thay đổi phiên bản tối thiểu.
| Phiên bản macOS | Min Version (Phiên bản tối thiểu) | Min Date (Ngày phát hành tối thiểu) |
|---|---|---|
High Sierra (10.13.6) | 748077008000000 | 20180621 |
Mojave (10.14.6) | 945275007000000 | 20190820 |
Catalina (10.15.4) | 1412101001000000 | 20200306 |
| Không giới hạn | -1 | -1 |
Bạn cũng có thể cài đặt giá trị là -1 để OpenCore hiển thị tất cả ổ đĩa APFS mà không cần thông qua bước kiểm tra.
# Mục Audio (Âm thanh khởi động)
Phần này liên quan đến thiết lập AudioDxe (âm thanh khởi động lúc mới mở máy giống như Mac thiệt), tụi mình sẽ tạm thời bỏ qua (cứ để mặc định). Lưu ý là cái này hông liên quan gì đến việc có âm thanh bên trong macOS đâu nha.
- Để tìm hiểu sâu hơn về cách sử dụng AudioDxe và phần Âm thanh, mời bạn đọc thêm trang Sau cài đặt: Bổ sung GUI (giao diện OpenCore) và âm thanh khởi động (opens new window)
# Mục Input (Nhập liệu)
Phần này liên quan đến việc sửa lỗi "bắc cầu" bàn phím cho boot.efi để có thể sử dụng FileVault và các phím tắt, Cứ để mặc định hết đi bạn, vì tụi mình hông có nhu cầu dùng tới mấy cái tùy chọn lách lỗi (quirks) ở đây đâu. Xem thêm chi tiết tại đây nha: Bảo mật và FileVault (opens new window)
# Mục Output (Xuất hình)
Liên quan đến cách OpenCore hiển thị hình ảnh. Cứ để mặc định hết đi bạn, vì tụi mình hông cần dùng tới mấy cái "cài đặt chuyên sâu" này đâu.
Thông tin chuyên sâu hơn
| Output (Đầu ra) | Value (Giá trị) | Comment (Hướng dẫn) |
|---|---|---|
| UIScale | 0 | Giá trị 0 tự động nhận diện dựa trên độ phân giải.Giá trị -1 giữ nguyên độ phân giải không đổi.Giá trị 1 cho tỉ lệ phóng to 1x cho màn hình thường.Giá trị 2 cho tỉ lệ phóng to 2x cho màn hình HiDPI |
# Mục ProtocolOverrides (Ghi đè giao thức)
Phần này sẽ dành cho máy ảo, máy Mac đời cũ và những bạn có nhu cầu sử dụng FileVault. Xem thêm chi tiết tại đây: Bảo mật và FileVault (opens new window)
# Mục Quirks (Cài đặt chuyên sâu)
CHI TIẾT
Phần này gồm các cài đặt chuyên sâu giúp xây dựng môi trường UEFI phù hợp với macOS. Với tụi mình thì sẽ chỉnh mấy mục sau:
| Quirk (Cài đặt chuyên sâu) | Enabled (Được kích hoạt hay không) | Comment (Ghi chú) |
|---|---|---|
| IgnoreInvalidFlexRatio | YES | |
| UnblockFsConnect | NO | Mở cài đặt này nếu máy bạn là máy HP |
Thông tin chuyên sâu hơn
IgnoreInvalidFlexRatio: YES
- Sửa lỗi khi không thể tắt MSR_FLEX_RATIO (0x194) trong BIOS, bắt buộc phải mở cài đặt này trên tất cả máy tính đời trước Skylake
DisableSecurityPolicy: NO
- Vô hiệu hóa chính sách bảo mật của nền tảng trong firmware. Khuyên dùng cho mấy cái firmware "dở chứng" mà dù đã tắt Secure Boot rồi vẫn hông cho nạp driver của bên thứ ba
- Nếu bạn xài máy Microsoft Surface thì nên bật cái này lên nha
RequestBootVarRouting: YES
- Chuyển hướng AptioMemoryFix từ
EFI_GLOBAL_VARIABLE_GUIDsangOC_VENDOR_VARIABLE_GUID. Giúp ngăn firmware tự ý xóa các mục khởi động. Khuyên bạn nên mở cài đặt này trên mọi hệ thống Hackintosh để việc cài đặt cập nhật phần mềm hay bảng điều chỉnh Ổ đĩa khởi động (Startup Disk) chạy chính xác.
- Chuyển hướng AptioMemoryFix từ
UnblockFsConnect: NO
- Một số firmware chặn các phân vùng bằng cách mở tụi nó ở chế độ "By Driver", khiến các giao thức File System của OpenCore phụ trách hông nạp được. Cài đặt này thường cần sử dụng cho máy HP khi hông thấy ổ cứng nào hiện ra trong danh sách.
# Mục ReservedMemory (Bộ nhớ dự phòng)
Sử dụng để "cấm" hệ điều hành đụng vào một số vùng nhớ nhất định. Thường dành cho iGPU đời Sandy Bridge hoặc máy bị lỗi RAM. Cách sử dụng mục này hông nằm trong phạm vi hướng dẫn này nha.
# Tổng kết
Vậy là xong rồi đó! Giờ bạn có thể lưu file lại và chép nó vào thư mục EFI theo đường dẫn EFI/OC.
Với những bạn gặp lỗi lúc boot, nhớ đọc kỹ phần Khắc phục sự cố trước tiên. Nếu vẫn chưa tìm được câu trả lời thì tụi mình còn rất nhiều nguồn hỗ trợ khác nè:
# Cài đặt BIOS chung cho nền tảng Intel
- Lưu ý: Một số cài đặt có thể hông xuất hiện trong firmware máy bạn đâu. Mình khuyên bạn cứ tìm cái nào giống nhất thì chỉnh, đừng quá lo lắng nếu máy bạn thiếu nhiều mục trong đây nha.
# Vô hiệu hóa những tính năng sau
- Fast Boot (Khởi động nhanh)
- Secure Boot (Khởi động an toàn)
- Cổng Serial/COM (cổng nối tiếp)
- Cổng Parallel (cổng song song)
- VT-d (bạn có thể mở nó lại nếu đã cài đặt
DisableIoMappersang YES) - Compatibility Support Module (CSM) (Bạn cần phải tắt trong đa số trường hợp, Lỗi card màn hình giống như
gIOrất hay xảy ra nếu mở cái này) - Thunderbolt (Nên TẮT trong quá trình cài đặt ban đầu, vì cổng này rất dễ gây lỗi nếu hông được vá chuẩn chỉnh ngay từ đầu)
- Intel SGX (Tính năng bảo mật của Intel)
- Intel Platform Trust (Tính năng bảo mật nhúng của Intel)
- CFG Lock (Chống ghi MSR 0xE2)(Mục này BẮT BUỘC PHẢI TẮT. Nếu bạn tìm nát cái BIOS mà hông thấy tùy chọn này đâu, thì hãy cài đặt (YES) mục
AppleCpuPmCfgLocktrong phần Kernel -> Quirks. Lưu ý kỹ nha: máy Hack của bạn sẽ không thể nào boot được nếu cái CFG-Lock này còn đang mở đó!)- Đối với macOS 10.10 trở về trước, bạn sẽ cần phải mở thêm cả mục AppleCpuPmCfgLock nữa mới đủ bộ nha
# Kích hoạt những tính năng sau
- VT-x (Chính là tính năng mang khả năng ảo hóa)
- Above 4G Decoding (Cho phép các thiết bị sử dụng vùng nhớ trên 4GB, sẽ giải thích chi tiết hơn ở phần sửa KASLR)
- Nếu bạn gặp sự cố, hãy đảm bảo rằng mục "MMIOH Base" (trong BIOS) đã được thiết lập ở mức 12 TB hoặc thấp hơn.
- Hyper-Threading (Tính năng siêu phân luồng)
- Execute Disable Bit (Tính năng bảo mật của CPU)
- EHCI/XHCI Hand-off (Cho phép chuyển giao quyền quản lý cổng USB từ BIOS sang hệ điều hành)
- OS type (lọai hệ điều hành): Windows 8.1/10 UEFI Mode (Một số bo mạch sẽ yêu cầu chọn "Other OS" là giải pháp thay thế)
- DVMT Pre-Allocated (cấp bộ nhớ cho card màn hình onboard): 64MB hoặc lớn hơn thì càng tốt
- SATA Mode (chế độ ổ cứng SATA): AHCI