Guide support for OpenCore ver 0.6.2
Giới thiệu sơ lược về OpenCore Bootloader
OpenCore Bootloader là 1 mã nguồn mở được phát triển nhằm thay thế cho Clover Bootloader, về tính năng thì OpenCore sẽ rút gọn đi nhằm tối ưu hiệu suất hơn Clover.
Các thay đổi chính của OpenCore Bootloader:
- Hỗ trợ nhiều macOS hơn các bootloader cũ (e.i macOS Big Sur,..., Mac OS X Tiger)
- Tăng tốc độ khởi động bằng cách giảm bớt các bản vá được thực hiện
- Hỗ trợ tốt hơn cho FileVault, không cần phải tắt SIP, hỗ trợ khởi động an toàn qua Vaulting và Secure Boot của Apple
- Mang lại trải nghiệm giống real Mac hơn với sự hỗ trợ Startup Disk của BootCamp và các phím tắt lúc khới động: giữ
Option
hoặc ESC
để chọn thiết bị khởi động, Cmd+R
để vào Recovery hay Command+Option+P+R
để reset NVRAM - OpenCore vẫn giữ trọn vẹn hệ thống khi tải các phần mở rộng kernel của bên thứ 3
Chú ý:
- Sự phát triển của AMD OSX sẽ được gắn chặt với OpenCore cho nên các máy dùng CPU AMD khuyến khích sử dụng OpenCore
- Các kexts sẽ được load theo sự điều chỉnh của bạn trong config.plist vì vậy các kext cần thiết cần được ở vị trí ưu tiên. VD: Lilu phải được tải trước WhateverGreen hoặc VirtualSMC.
- Các bản vá ACPI và thông tin SMBIOS sẽ được thay đổi cho tất cả các hệ điều hành(macOS, Windows,...) được khởi động qua OpenCore
- Một số hệ thống yêu cầu chế độ Windows 8.1/10 UEFI Mode để khởi động
- Thiết bị NVME cần được thiếp lập đúng trong BIOS
Dự định phát triển của OpenCore:
- 2019: Năm bắt đầu thử nghiệm
- 2020: Hỗ trợ Secure Boot
- 2021: Hoàn thiện trình khởi động
Cài đặt OpenCore Bootloader EFI
Bước đầu bạn cần bộ khởi động OpenCore (hãy tải bản RELEASE) từ tổ chức Acidanthera hoặc phiên bản OpenCore-Bootloader-EFI đã được xào nấu do lzhoang2601
- Chỉ với bộ khời động từ Acidenthera bạn cần làm thêm:
+ Cần tự tải thêm những SSDT và kexts cần thiết (hướng dẫn ở dưới)
+ Copy Sample.plist từ /OpenCore-0.x.x-RELEASE/Docs/ sang /OpenCore-0.x.x-RELEASE/EFI/OC/ và rename Sample.plist thành config.plist
EFI ban đầu cơ bản
Nếu bạn đã xài trước Clover, các bạn hãy backup Clover EFI hiện tại rồi tải rồi mở script này, nhập password chờ quá trình kết thúc. Sau đó, bạn copy folder EFI chuẩn bị trên vào EFI của USB/ổ cứng tuỳ bạn thích
Cấu trúc cơ bản của OpenCore Bootloader
Mình sẽ nêu tác dụng các từng folder/file cho các bạn
Thư mục EFI | Chứa tất tần tật các boot của các hệ điều hành: OpenCore, Clover, Microsoft cho Windows, Grub cho linux,… |
Thư mục BOOT | Nơi chứa BOOTX64.EFI nhằm giúp các hệ thống máy tính uEFI nhận diện và tải thực thi nó đầu tiên |
ACPI | Chứ các file .aml đã patch phù hợp với macOS |
Bootstrap | Nơi chứa Bootstrap.efi nhằm thêm OpenCore vào menu khởi động của mainboard giúp ngăn chặn các sự cố khi Windows Update hoặc bất kì OS khác cố ghi đè lên tệp BOOTx64.efi làm xoá đi khởi động OpenCore |
Config.plist | File chứa cấu hình giúp OpenCore Bootloader có thể tải hệ thống hackintosh một cách đúng nhất |
Drivers | Chứa các drivers giúp bootloader nhận diện và điều khiển các phần cứng BIOS/UEFI của máy tính |
Kexts | Nơi chứa các trình điều khiển của macOS |
OpenCore.efi | File boot của OpenCore Bootloader |
Resources | Nơi giúp các bạn thêm GUI cho OpenCore kèm những âm thanh khởi động tương tự realmac |
Tools | Nơi chứa các công cụ CleanNvram, HdaCodecDump,.... |
Hoàn thành OpenCore Bootloader
Kexts
Phần này các bạn không cần thay đổi gì khi chuyển từ Clover sang OpenCore, bạn chỉ cần copy hết từ CLOVER/kexts/Other sang OC/Kexts là được
Còn với những bạn mới chơi và build lại từ đầu thì mình sẽ nêu tên vài kext cần thiết cũng như bắt buộc cơ bản cho các bạn biết
Kexts | Platform | Function |
AppleALC | Desktop&Laptop | Kích hoạt âm thanh |
Lilu | Desktop&Laptop | Vá mềm on-the-fly cho nhiều kexts khác mà không cần động tới kexts gốc |
VirtualSMC | Desktop&Laptop | Giúp giả lập hệ thống cảm biến của realmac |
USBInjectAll | Desktop&Laptop | Nhằm fix các cổng USB |
WhateverGreen | Desktop&Laptop | Giải quyết vấn đề cho các ATI/AMD/Intel/Nvidia GPUs |
VoodooPS2Controller | Laptop | Fix Touchpad, Mouse, Keyboard PS2 cho đa số Laptop cũng như 1 vài máy Desktop ngày xưa |
NVMeFix | Desktop&Laptop | Tránh việc panic khi dùng SSD NVMe PM981,... và kích hoạt quản lí năng lượng |
ACPI
Với patch của OpenCore thì việc load patch khá là phiền, bạn hãy chắc chắn rằng patch của bạn đúng để được OpenCore load. Về sự thay đổi thì patch của OpenCore sẽ đơn giản hơn, patch cũng như rename sẽ ít hơn Clover nhiều
Và yêu cầu cần có khi dùng hotpatch đó là ở mỗi Scope patch sẽ cần có một Method _STA như dưới
......
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (_OSI ("Darwin"))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
......
Mình sẽ giới thiệu cho các bạn một vài patch cơ bản cho OpenCore, các bạn có thể lấy dùng mà không cần chỉnh sửa gì
Patchs | Platform | Function |
SSDT-PLUG | Desktop&Laptop | Kích hoạt CPU Management (Bắt buộc cần có với mọi phần cứng) |
SSDT-EC-USBX | Desktop&Laptop | Fake device EC(bắt buộc có khi dùng macOS Catalina+ và nên thêm khi máy chưa có device này) và USBX(chỉ cần với CPU Skylake+) |
SSDT-PMC | Desktop&Laptop | Fix NVRAM cho CPU CoffeeLake+ |
SSDT-AWAC | Desktop&Laptop | Fix AWAC(Time and Alarm) cho CPU CoffeeLake+ |
SSDT-RTC0 | Desktop&Laptop | Fix RTC0 cho CPU CoffeeLake+ (không dùng kèm với SSDT-AWAC) |
SSDT-RHUB | Desktop&Laptop | Sửa lỗi các cổng USB cho 400 series motherboards |
SSDT-PNLF | Laptop | Giúp kích hoạt tuỳ chỉnh độ sáng màn hình cho laptop |
SSDT-Disable_DGPU | Laptop | Nhằm disable card đồ hoạ rời vô dụng khi dùng macOS với đa số laptop |
SSDT-XOSI | Laptop | Đánh lừa phần cứng là bạn đang khởi động Windows nhằm fix Touchpad I2C,...(cần rename _OSI to XOSI) |
Ở bảng trên mình đã nói rất rõ chức năng cũng như cần có với phần cứng như nào? Mong rằng các bạn sẽ dễ dàng bước qua bước này để đến với bước tiếp theo
Với những bạn cần hoàn thiện hơn cho laptop, hãy tham khảo thêm tại đây (hướng dẫn bằng vá bằng tiếng Việt sẽ được cập nhật tại đây)
Config
Bước cuối cùng luôn luôn là bước khó nhất, thời gian khó khăn cũng như mất nhiều thời gian nhất của các bạn đã tới nhưng đừng ngần ngại. Bắt đầu thôi!
- Đây chỉ là guide chỉnh config cơ bản nhất, không phù hợp cho các pro muốn tìm hiểu sâu. Nếu cần bạn hãy đọc Configuration.pdf từ repo OpenCorePkg
Bước đầu, bạn cần tải PlistEdit Pro hoặc Xcode để chỉnh sửa file .plist hoặc là dùng chính app cơ bản như TextEdit hay Wordpad để chỉnh cũng được
Sau khi mở config.plist chưa chỉnh sửa thì bạn sẽ được như sau
Bước đầu tiên thì bạn hãy xoá hết các dòng #WARNING - * đi nhé!
Chúng ta sẽ đi từ trên xuống, đến với ACPI, mình đã chỉnh sửa chút ít cho các bạn dễ hình dung như dưới
ACPI
Add
Ở đây từng Item sẽ dành cho một SSDT được load:
Enable có tác dụng kiểm soát việc load SSDT
Path sẽ là tên đầy đủ của patch
Delete
Các bạn chỉ chuyển Enable thành YES ở 2 Item khi bạn dùng CPU Ivy Bridge hoặc cũ hơn
Patch
Từng Item sẽ tương ứng với từng patch giống như ACPI/DSDT/Patches trong config.plist của Clover
Trong từng Item các bạn sẽ cần quan tâm tới Find và Replace mà thôi, Comment thì không ảnh hưởng đến việc rename nha
Vậy cách Find và Replace là như nào? Mình sẽ hướng dẫn cho các bạn ngay
VD: mình cần rename _OSI to XOSI
Vậy lần lượt mình cần chuyển _OSI và XOSI thành HEX bằng bất kì 1 công cụ chuyển đổi nào
Như vậy Find là 5f4f5349 còn Replace là 584f5349
Với PC thì chả cần rename để dùng patch gì hết nhé các bạn(trong phạm vi bài viết này)
Booter
Quirks
AvoidRuntimeDefrag | Boolean | sửa lỗi ngày giờ, NVRAM, điều khiển nguồn,... bắt buộc với mọi phần cứng, hãy bật nó |
DevirtualiseMmio | Boolean | chọn YES để sửa lỗi Memory Allocation dành cho Z390 và Z490 series mainboards, yêu cầu bật ProtectUefiServices |
EnableSafeModeSlide | Boolean | bật nó khi chế độ safemode không thể khởi động, yêu cầu bật ProvideCustomSlide |
EnableWriteUnprotector | Boolean | cho phép quyền ghi vào UEFI runtime services, mắc định là bật, yêu cầu bật RebuildAppleMemoryMap nếu phần cứng của bạn có bảng MAT |
ProtectUefiServices | Boolean | bảo vệ các dịch vụ UEFI khỏi phần mềm bị ghi đè chỉ dàng cho Z390 và Z490 series mainboards |
ProvideCustomSlide | Boolean | có tác dụng tương tự bootarg slide bên Clover nhằm sửa lỗi "Only N/256 slide values are usable!" |
RebuildAppleMemoryMap | Boolean | tạo Memory Map thích hợp cho macOS, nếu bạn gặp lỗi restart ngay lúc vào macOS thì hãy tắt nó |
SetupVirtualMap | Boolean | sửa lỗi SetVirtualAddresses dành cho CPU Broadwell trở về trước hoặc những mainboard Gigabyte có thể sẽ cần bật cái này khi gặp kernel panic. Với những mainboard ASUS, Gigabyte, ASRock Z490 sẽ không cần lựa chọn này |
SyncRuntimePermissions | Boolean | sửa lỗi bảng MAT để khởi động Windows, Linux,... Chỉ cần với các CPU Skylake hoặc mới hơn |
DeviceProperties
Tương tự Devices/Properties trong config.plist của Clover
Add
Ở phần này sẽ giúp các bạn kích hoạt Intel GPU (tìm hiểu thêm tại đây) và âm thanh (tìm hiều thêm tại đây)
Kernel
Add
Với OpenCore thì việc load kext sẽ dựa vào sự sắp xếp thứ tự của bạn cho nên các bạn có thể tham khảo qua thứ tự kext sau hoặc là tự sắp xếp tuỳ thích nhưng bắt buộc cần Lilu.kext đứng đầu nhé!
Lilu.kext -> VirtualSMC/FakeSMC -> WhateverGreen -> AppleALC/VoodooHDA -> WiFi/Ethernet -> VoodooPS2+(VoodooI2C) -> USB -> SSD -> .....
BundlePath | String | Tên kext ví dụ như (Lilu.kext,...) |
Comment | String | Bỏ trống |
Enabled | Boolean | Cho phép load kext hoặc vô hiệu hoá kext |
ExecutablePath | String | Phần này có kext có có kext không, để check thì các bạn nhấp chuột phải vào kext chọn Show Package Contents kiểm tra xem có Contents/MacOS/ không là được nếu có thì áp dụng công thức Contents/MacOS/<tên kext không kèm đuôi .kext> còn không thì bỏ trống |
MaxKernel | String | Bỏ trống |
MinKernel | String | Bỏ trống |
PlistPath | String | Contents/Info.plist |
Emulate
Cần thêm các giá trị sau với các CPU Pentiums and Celerons
CpuidData: A9060300 00000000 00000000 00000000
CpuidMask: FFFFFFFF 00000000 00000000 00000000
Patch
Với những CPU AMD với các patch tại đây
Còn với các CPUs Pentiums and Celerons thì cần thêm 2 trong 3 patchs sau
Với tất cả macOS
Base: [EMPTY]
Comment: Haswell+ low-end Celeron/Pentium cpuid_set_info_rdmsr (c) vit9696
Count: 1
Enabled: YES
Find: B9A00100000F32
Identifier: kernel
Limit: 0
Mask: [EMPTY]
MatchKernel: [EMPTY]
Replace: B9A001000031C0
ReplaceMask: [EMPTY]
Skip: 0
còn với macOS 10.12
Base: _xcpm_bootstrap
Comment: _xcpm_bootstrap (Haswell+ low-end Celeron/Pentium) 10.12
Count: 1
Enabled: YES
Find: C4830022
Identifier: kernel
Limit: 0
Mask: FFFF00FF
MatchKernel: 16.
Replace: C6830022
ReplaceMask: FFFF00FF
Skip: 0
hoặc macOS 10.13 trở đi
Base: _xcpm_bootstrap
Comment: _xcpm_bootstrap (Haswell+ low-end Celeron/Pentium) 10.13+
Count: 1
Enabled: YES
Find: 00C43C22
Identifier: kernel
Limit: 0
Mask: 00FFFFFF
MatchKernel: 16.
Replace: 00C63C22
ReplaceMask: 00FFFFFF
Skip: 0
Quirks
AppleCpuPmCfgLock | Cần thiết nếu BIOS không cho tắt CFG-Lock |
AppleXcpmCfgLock | Cần thiết nếu BIOS không cho tắt CFG-Lock |
AppleXcpmExtraMsrs | Tắt nhiều quyền truy cập MSR quan trọng đối với một số CPU như Haswell-E, Broadwell-E, Skylake-SP và các CPU tương tự không hỗ trợ XCPM (không thích hợp với các CPUs Pentium hoặc Ivy Bridge, Sandy Bridge) |
AppleXcpmForceBoost | Bắt buộc chạy hiệu suất tối đa ở chế độ XCPM nhưng chỉ phù hợp với số ít CPU Xeon |
CustomSMBIOSGuid | Vá GUID cho UpdateSMBIOSMode: Custom. Khuyến khích bật với các phần cứng của Dell |
DisableIoMapper | Hãy bật nếu bạn không dùng tới VT-D |
DisableRtcChecksum | Vô hiệu hóa tổng kiểm tra chính (0x58-0x59) bằng AppleRTC. Khuyến khích dùng RTCMemoryFixup để hoạt động tốt nhất |
DummyPowerManagement | Tác dụng tương tự với NullCPUPowerManagement.kext |
ExternalDiskIcons | Áp dụng biểu tượng ổ cứng bên trong cho tất cả các ổ cứng AHCI |
IncreasePciBarSize | Tăng kích thước thanh PCI 32 bit trong IOPCIF Family từ 1 đến 4 GB. Hay tính toán trước khi dùng tránh việc hỏng phần cứng. |
LapicKernelPanic | Vô hiệu hóa nhân hoảng loạn trên các ngắt LAPIC. Khuyến khích bật với các phần cứng của HP |
PanicNoKextDump | Cho phép đọc nhật ký kernel panic từ macOS 10.13 trở đi |
PowerTimeoutKernelPanic | Giúp khắc phục kernel panic liên quan đến thay đổi năng lượng với trình điều khiển Apple và âm thanh kỹ thuật số. |
ThirdPartyDrives | Áp dụng các bản vá nhằm kích hoạt cách tính năng có sẳn ở SSD ví dụ như TRIM, hibernation,... từ macOS 10.15 trở đi |
XhciPortLimit | Vá USB kexts để loại bỏ giới hạn 15 cổng USB |
Misc
Boot
ConsoleAttributes | Number | Đặt các thuộc tính cụ thể cho bảng điều khiển. Để mắc định |
HibernateMode | String | • None — Không ngủ đông • Auto — Sử dụng RTC hoặc NVRAM ngẫu nhiên • RTC — Sử dụng RTC • NVRAM — Sử dụng NVRAM |
HideAuxiliary | Boolean | Nếu bạn cần chỉ cần lựa chọn khởi động macOS, Windows,... mà bỏ đi macOS recovery, Reset NVRAM,... thì hãy YES |
PickerAttributes | Number | Đặt thuộc tính cụ thể cho bộ chọn |
PickerAudioAssist | Boolean | Nếu thấy việc lựa chọn khởi động quá nhàm chán thì hãy chọn YES để có thêm 1 giọng nói đọc tên option boot cho bạn. Để hoạt động cần làm thêm bước này |
PickerMode | String | Nếu bạn thấy nhàm chán với giao diện lựa chọn khởi động toàn text thì hãy làm thêm bước này |
PollAppleHotKeys | Boolean | Hãy chọn YES nếu bạn cần dùng các phím tắt sau • CMD+C+MINUS — Vô hiệu hóa kiểm tra tương thích • CMD+K — Khởi động release kernel • CMD+S — Khởi động với chế độ single user • CMD+S+MINUS — Vô hiệu hoá KASLR slide • CMD+V — Khởi động với 1 đống chữ rườm rà (-v) • Shift — Khởi động với chế độ an toàn |
ShowPicker | Boolean | Nếu bạn cần trải nghiệm mở máy như realmac thì hãy chọn NO |
TakeoffDelay | Number | Đặt thời gian delay (ms) trước khi thực hiện các phím tắt hoặc lựa chọn khởi động |
Timeout | Number | Thay đổi thời gian suy nghĩ để lựa chọn OS của bạn tại đây |
Debug
AppleDebug | Boolean | Ghi nhật ký boot.efi, hữu ích để gỡ lỗi. Chỉ hỗ trợ với 10.15.4+ |
ApplePanic | Boolean | Ghi lại nhật ký kernel panic |
DisableWatchDog | Boolean | Tắt giám sát UEFI, có thể giúp tránh việc gặp panic ngay khi khởi động |
DisplayDelay | Number | Độ trễ tính bằng ms được thực hiện sau mỗi dòng in trên màn hình |
DisplayLevel | Number | Hiển thị nhiều thông tin gỡ lỗi hơn với 2147483650 |
SerialInit | Boolean | Cần thiết để thiết lập output với OpenCore |
SysReport | Boolean | Cần thiết cho việc gỡ lỗi xuất phát SSDT |
Target | Number | Nếu cần bạn cần xem lại quá trình khởi động, hãy chuyển 3 thành 67 |
Entries
Giúp OpenCore biết được thêm những đường dẫn khởi động khác người từ nhiều OS khác
Security
AllowNvramReset | Boolean | Chọn YES để dùng hotkey CMD+OPT+P+R để Reset NVRAM hoặc hiển thị tool Reset NVRAM trong bộ khởi động |
AllowSetDefault | Boolean | Chọn YES để dùng hotkeys CTRL+Enter và CTRL+Index nhằm thiết lập lựa chọn khởi động mắc định trong bộ khởi động |
AuthRestart | Boolean | Cho phép khởi động lại xác thực tương thích VirtualSMC nhằm kích hoạt FileVault |
BootProtect | String | Yêu cầu là Bootstrap để khởi động OpenCore cũng như giúp OpenCore hoạt động tốt nhất |
DmgLoading | String | |
ExposeSensitiveData | Number | Bitmask tổng hợp dữ liệu cho hệ điều hành, để nguyên |
HaltLevel | Number | Giữ nguyên giá trị 2147483648 |
ScanPolicy | Number | Hãy đặt từ 17760515 thành 0 để OpenCore hiển thị đầy đủ các trình khởi động từ ổ cứng lẫn USB |
Vault | String | Hãy chỉnh Secure thành Optional |
Tools
Hãy thêm công cụ vào nếu bạn cần dùng 1 trong số các công cụ sẳn trong /EFI/OC/Tools/
NVRAM
Add
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
DefaultBackgroundColor | Data | 00000000 (Black) hoặc BFBFBF00 (Light) |
UIScale | Data | 01 (Standard) hoặc 02 (HiDPI) |
7C436110-AB2A-4BBB-A880-FE41995C9F82
SystemAudioVolume | Data | Tìm hiểu thêm tại đây |
boot-args | String | -v debug=0x100 keepsyms=1 alcid=3 agdpmod=pikera |
csr-active-config | Data | FF0F0000 (Big Sur), FF070000(Catalina + Mojave), FF030000(High Sierra) |
run-efi-updater | String | No |
prev-lang:kbd | Data | Bỏ trống hoặc để 76692D566965746E616D6573653A30 |
Giải thích bootargs:
– Verbose (-v) | Giúp hiển thị các dòng lệnh khi boot để dễ dàng xác định lỗi và sửa |
– debug=0x100 và keepsyms=1 | giúp chặn máy restart khi gặp panic |
– alcid=3 | kích hoạt âm thanh với layout id 3, tìm hiểu thêm tại |
– agdpmod=pikera | cần thiết với GPU RX 5000 series nhằm fix lỗi black screen |
- nvda_drv_vrl=1 | tác dụng tương tự như nvda_drv=1 để kích hoạt NVIDIA GPU ở macOS 10.13- |
LegacyEnable
Cho phép lưu trữ NVRAM vào nvram.plist, hãy bật nếu máy bạn không có NVRAM gốc
LegacyOverwrite
Cho phép ghi đè giá trị từ nvram.plist, hãy bật nếu máy bạn không có NVRAM gốc
LegacySchema
Sẽ được áp dụng khi LegacyEnable được bật
WriteFlash
Hãy bật nó để cho phép việc ghi giá trị vào bộ nhớ
PlatformInfo
Automatic | Boolean | Nếu chọn YES thì PlatformInfo sẽ được tạo từ Generic còn không thì sẽ được lấy dữ liệu từ SMBIOS, DataHub, và NVRAM |
UpdateDataHub | Boolean | Cập nhật DataHub từ Generic hoặc DataHub tùy thuộc vào giá trị tự động |
UpdateNVRAM | Boolean | Cập nhật NVRAM liên quan đến thông tin SMBIOS |
UpdateSMBIOS | Boolean | Cập nhật SMBIOS từ Generic hoặc SMBIOS tùy thuộc vào giá trị tự động |
UpdateSMBIOSMode | String | Hãy giữ nguyên còn nếu với phần cứng Dell thì bạn hãy chuyển từ Create thành Custom |
Generic
AdviseWindows | Boolean | Buộc Windows hỗ trợ trong FirmwareFeatures nhằm khắc phục những vấn đề xoay quanh phân vùng EFI khi xài dualboot |
MLB | String | Hướng dẫn ở dưới |
ROM | Data | Các bạn lấy địa chỉ MAC từ đây rồi xoá đi dấu 2 chấm để vào là được macOS: System Preferences -> Network -> Ethernet -> Advanced -> MAC Address Windows: Settings -> Network & Internet -> Ethernet -> Ethernet -> Physical MAC Address |
SpoofVendor | Boolean | Đặt thông tin hãng cung cấp SMBIOS thành Acidanthera |
SystemProductName | String | Sandy Bridge: iMac12,2(Desktop), MacBookPro8,1(Laptop) Ivy Bridge: iMac13,2(Desktop), MacBookPro9,2(Laptop) Haswell: iMac14.2(Desktop), MacBookPro11,1(Laptop), MacBookAir6,2(Laptop) Broadwell: MacBookPro12,1(Laptop), MacBook8,1(Laptop), MacBookAir7,1(Laptop) Skylake: iMac17,1(Desktop), MacBookPro13,1(Laptop) Kabylake: iMac17,1(Desktop), MacBookPro14,1(Laptop) Coffeelake: iMac18,3(Desktop), MacBookPro15,2(Laptop) Coffeelake-r: Macmini8,1(only iGPU), iMac19,2(iGPU + dGPU), MacBookPro15,2(Laptop) CPU dòng F: iMacPro1,1 |
SystemSerialNumber | String | Hướng dẫn ở dưới |
SystemUUID | String | Hướng dẫn ở dưới |
Để có được thông tin điền vào MLB, SystemSerialNumber và SystemUUID, hãy tải repo GenSMBIOS rồi chạy GenSMBIOS.bat với Windows còn GenSMBIOS.command với macOS sau đó gõ 3 rồi copy SMBIOS phù hợp với cấu hình của bạn ở trên vào nhấn Enter, ngay lập tức những thông tin cần thiết sẽ hiện ra cho bạn
UEFI
Audio
Tìm hiểu thêm tại đây
ConnectDrivers
Nếu tắt đi thì bootloader sẽ tự load đa số các trình điều khiển uEFI có trong /EFI/OC/Drivers/ và sẽ làm tăng tốc độ khởi động lên chút ít
Drivers
Hãy thêm tên các trình điều khiển mà máy bạn cần vào đây, với 2 drivers sau sẽ cần dùng với mọi máy:
- OpenRuntime.efi: driver thay thế cho FwRuntimeServices.efi, AptioMemoryFix, OSXAptioFixDrv,...
- HFSBox.efi: bạn có thể dùng driver từ Clover sang hoặc tải từ đây rồi copy vào /EFI/OC/Drivers/
và 1 số drivers khác: (đa số không cần quan tâm)
- AudioDxe.efi: hỗ trợ âm thanh cho uEFI
- CrScreenshotDxe.efi: để chụp ảnh màn hình
- HiiDatabase.efi: sửa lỗi GUI cho dòng CPU Sandy Bridge và cũ hơn
- NvmExpressDxe.efi: dùng khi không có driver NVMe tích hợp sẵn ở dùng CPU Haswell hoặc cũ hơn
- OpenCanopy.efi: đây là tuỳ chọn GUI của OpenCore (mình hướng dẫn ở dưới)
- AppleUsbKbDxe.efi + UsbMouseDxe.efi: chỉ dùng với CPU Sandy Bridge và cũ hơn khi hệ thống chạy DuetPkg
- Ps2KeyboardDxe.efi + Ps2MouseDxe.efi: cần thêm với những Desktop dùng Keyboard&Mouse PS2
- XhciDxe.efi: dùng khi không có driver XHCI tích hợp sẵn ở CPU Sandy Bridge hoặc cũ hơn
Quirks
DeduplicateBootOrder
| Nhằm kiểm soát menu khởi động, loại bỏ các mục khởi động dư thừa, không phù hợp dành cho macOS. Với việc OpenCore Bootloader làm chủ sẽ giúp tăng cường bảo mật, đảm bảo cập nhật và chế độ ngủ đông cho macOS. Không khuyến khích dùng với BIOS APTIO IV của ASUS còn nếu dùng thì cần khởi động qua Bootstrap.efi |
ExitBootServicesDelay
| Việc thực thi mã song song giữa FileVault 2 và EXIT_BOOT_SERVICE làm bộ điều khiển SATA không thể truy cập được từ macOS nên cần delay 3 đến 5s để giải quyết vấn đề với các BIOS APTIO IV (cụ thể với ASUS Z87-Pro) |
IgnoreInvalidFlexRatio
| Các giá trị không hợp lệ trong thanh ghi MSR_FLEX_RATIO (0x194) MSR (cụ thể với BIOS APTIO IV) có thể gây ra lỗi khởi động macOS trên nền tảng Intel. Không nên sử dụng nếu không được yêu cầu |
ReleaseUsbOwnership
| Cố gắng tách quyền sở hữu bộ điều khiển USB khỏi trình điều khiển. Nếu stuck ở apfs_module_start:1683 thì hãy bật |
RequestBootVarRouting
| Bật tính năng này để ngăn tùy chọn Startup Disk trong những firmware không tương thích với các mục khởi động của macOS |
TscSyncTimeout
| Đồng bộ hóa TSC sớm trên một số máy tính xách tay khi chạy hạt nhân XNU gỡ lỗi. Đây chỉ là giải pháp tạm thời, khuyến khích dùng VoodooTSCSync.kext |
UnblockFsConnect
| Chủ yếu bật với phần cứng HP khi không có ổ cứng nào được liệt kê bởi chế độ By Driver |
Khởi động OpenCore bằng Bootstrap.efi
Việc sử dụng Bootstrap.efi nhằm giúp giải quyết vấn đề khi cài đặt thêm các OS hoặc đơn giản là việc update Windows làm thay đổi file BOOTX64.efi và sẽ hoàn hảo hơn nữa khi cùng lúc UEFI/Quirks/DeduplicateBootOrder được bật
Với config.plist thì việc khởi động qua Bootstrap.efi đã được kích hoạt, nếu bạn vô tình thay đổi 2 thiết lập dưới đây rồi thì hãy chỉnh lại nhé
Tinh chỉnh GUI của OpenCore và thêm Boot-chime
Đây là phần không bắt buộc nhưng nếu bạn muốn máy bạn giống realmac thêm nữa thì hãy làm nhé!
GUI
Bước đầu bạn cần tải OcBinaryData về và giải nén nó sau đó các bạn ghi đè các folder Font, Image và Label từ OcBinaryData-master/Resources sau khi giải nén vào /EFI/OC/Resources/ (do quá nhiều file con nên mình không chụp rõ cho các bạn được)
Tiếp theo bạn cần có driver OpenCanopy.efi trong /EFI/OC/Drivers/ và bạn cần chỉnh trong config.plist 1 số thứ như những phần mình tạo điểm nhấn sau
Restart và tận hưởng thành quả. Nếu bị lỗi, bạn hãy kiểm tra lại các bước làm của bạn nhé!
Boot-chime
Bước đầu các bạn cần ghi đè folder Audio từ OcBinaryData-master/Resources sau khi giải nén vào /EFI/OC/Resources/ (do quá nhiều file con nên mình không chụp rõ cho các bạn được)
Tiếp theo bạn cần chỉnh trong config.plist/NVRAM như dưới
Để nhập 0x46 vào các bạn hãy gõ <46> nhé!
Tiếp theo các bạn cần thêm driver AudioDxe.efi vào /EFI/OC/Drivers/ cũng như thêm AudioDxe.efi vào config.plist/UEFI/Drivers như sau
Sau đó các bạn lần lượt tìm kiếm như mình qua app IORegistryExplorer
Vậy AudioCodec là 0
Các bạn tìm đến PCIe -> IOReg Name -> "HDEF" để biết AudioDevice
Vậy AudioDevice là PciRoot(0x0)/Pci(0x1F,0x3)
Với AudioOut, các bạn chỉ việc kiểm tra xem có bao nhiêu đầu ra âm thanh trên máy bạn là được. VD với máy mình sẽ là 2
Với MinimumVolume bạn cần chỉnh nó thấp hơn SystemAudioVolume trong NVRAM đã chỉnh trên, mình sẽ chọn 50
Đến thông số cuối cùng là VolumeAmplifier, các bạn chỉ việc theo công thức là xong: VolumeAmplifier= (100 * Raw Volume)/SystemAudioVolume
VD: ở đây SystemAudioVolume là 0x46(HEX) chuyển thành DEC được 70 và Raw Volume sẽ không được vượt quá 100 nên mình sẽ chọn 90
Vậy áp dụng công thức ta được (100 * 90) / 70 = 128.5 (mình sẽ làm tròn nó lên 129)
Sau khi đã có đầy đủ thông tin cần thiết, bây giờ chỉ việc cho vào config.plist/UEFI/Audio thôi
Ở AudioSupport và PlayChime thì bạn cứ chọn YES nhé!
Vậy là mình đã hướng dẫn xong, các bạn restart kiểm tra lại xem nhé
Cập nhật lên macOS Big Sur Beta 10
Update to macOS Big Sur from macOS Catalina or older
Yêu cầu bắt buộc: bạn cần sử dụng OpenCore ver 0.6.0 trở lên, những kexts mình nhắc đến ở trên với phiên bản mới nhất, đặc biệt với các kexts: Lilu, VirtualSMC, WhateverGreen và có sẳn bộ cài đặt macOS Big Sur Beta
Để có thông báo update lên macOS Big Sur Beta bạn cần cài macOSPublicBetaAccessUtility.pkg được tải từ đây
Sau khi tải xong, bạn chỉ việc update lên macOS Big Sur bình thường như bao bản macOS khác