Cách tạo EFI Opencore

Võ Nguyễn Hoàng Long
2021-11-23
14 min

Chuẩn bị

B1: Tải xuống OpenCorePkg tại đây

B2: Chọn thư mục IA32 hoặc X64

  • < 4GB RAM chọn bản 32bit (IA32)
  • 4GB RAM chọn bản 64 bit (X64)

B3: các bạn cần loại bỏ 1 số mục và chỉ giữ lại những mục sau đây

  • Driver :
    • OpenRuntime
    • HFSPlus
    • ResetNvramEntry
    • OpenCanopy (nếu dùng gui thì thêm driver này không dùng có thể xoá đi)
  • Tool
    • Xóa tất cả hoặc chừa lại OpenShell
  • OpenCore.efi
  • ACPI
  • Kext
  • Boot

B4: Vào file docs và copy file sample.plist sau đó đổi tên nó thành config.plist

Thêm các kext

Thêm các kext sau vào EFI ==> OC ==> Kexts

Các kext bắt buộc

  • Lilu : đây là mục kext vô cùng quan trọng nếu không có nó bạn sẽ không thể boot được
  • WhateverGreen : đây là kext giúp patch đồ họa
  • VirtualSMC : dùng để mô phỏng SMC, không có nó bạn sẽ không thể boot được

Kext không bắt buộc

Các plugin của VirtualSMC

  • SMCProcessor.kext : Dùng để theo dõi nhiệu độ CPU (Không áp dụng cho các CPU AMD)

  • SMCSuperIO.kext : Dùng để theo dõi tốc độ quạt (Không áp dụng cho các CPU AMD)

  • SMCLightSensor.kext : Dùng để fix cảm biến ánh sáng

  • SMCBatteryManager.kext : Dùng để hiển thị phần trăm pin

  • SMCDellSensors.kext : Dùng để theo dõi tốc độ quạt trên các máy Dell

AppleALC : dùng để patch âm thanh

Các Kext về Ethernet xem chi tiết ở bài này

Các Kext về WiFi và Bluetooth xem chi tiết ở bài này

USBInjectAll: Dùng để inject usb

XHCI-unsupported: Cần trên các chipset

  • H370
  • B360
  • H310
  • Z390 (Không cần thiết trên Mojave và mới hơn)
  • X79
  • X99
  • Mainboard AsRock (Trên bo mạch chủ Intel cụ thể, bảng B460 / Z490+ không cần nó tuy nhiên)

XLNCUSBFIX : Inject USB trên các máy sử dụng CPU AMD

VoodooHDA : Fix âm thanh trên các máy sử dụng CPU AMD

AppleMCEReporterDisabler : Dùng để vô hiệu hóa AppleMCEReporter trên các máy AMD, yêu cầu macOS 10.15+

CpuTscSync : Cần thiết để đồng bộ hóa TSC trên một số bo mạch chủ HEDT và máy chủ của Intel, nếu không có macOS này có thể cực kỳ chậm hoặc thậm chí không thể vào được.

VoodooPS2 : Dùng để patch bàn phím và trackpad

VoodooRMI : Dùng cho các trackpad Synaptics

VoodooSMBus : Dùng cho cho các trackpad Elan SMBus

VoodooI2C: Dùng cho các trackpad có giao thức I2C

ECEnabler : Dùng để Enable EC (patch pin là chính)

BrightnessKeys : Dùng để patch hotkeys chỉnh độ sáng

SATA-RAID-unsupported.kext : Cho phép chuẩn Raid hoạt động trên mac thay vì ahci

  • Dùng cho trường hợp bios không có tuỳ chọn ahci

Mình khuyến khích bạn thêm 5 kext cơ bản sau đây

  • Lilu
  • VirtualSMC
  • WhateverGreen
  • Voodoops2 controller
  • Usb injectall

1 số máy có thể sẽ cần thêm CpuTscSync

Thêm các file SSDT

Các bạn chỉ cần mỗi SSDT-EC để boot. nhưng để hoạt động tốt bạn cần nhiều hơn thế nữa, xem chi tiết về SSDT tại đây

Chỉnh sửa config

  • Mở file config.plist bằng ProperTree
  • Chọn File ⇒ OC Snapshot 

Xem cách xác định phần cứng tại đây sau đó setting config theo hướng dẫn

Intel Desktop

CODE NAMESERIESPHÁT HÀNH
Yonah, Conroe and PenrynE8XXX, Q9XXX2006-2009
Lynnfield and Clarkdale5XX-8XX2010
Sandy Bridge2XXX2011
Ivy Bridge3XXX2012
Haswell-Broadwell4XXX-5XXX2013-2014
Skylake6XXX2015-2016
Kaby Lake7XXX2017
Coffee Lake8XXX-9XXX2017-2019
Comet Lake10XXX2020

Intel Laptop

CODE NAMESERIESPHÁT HÀNH
Clarksfield and Arrandale3XX-9XX2010
Sandy Bridge2XXX2011
Ivy Bridge3XXX2012
Haswell4XXX2013-2014
Broadwell5XXX2014-2015
Skylake6XXX2015-2016
Kaby Lake and Amber Lake7XXX2017
Coffee Lake and Whiskey Lake8XXX2017-2018
Coffee Lake Plus and Comet Lake9XXX-10XXX2019-2020
Ice Lake10XXX2019-2020

Một số setting cho laptop:

HP:

  • Kernel -> Quirks -> LapicKernelPanic -> True
    • Nếu tắt quirk này bạn sẽ bị kernel panic ngay LAPIC
  • UEFI -> Quirks -> UnblockFsConnect -> True

Dell:

Cho skylake và mới hơn

  • Kernel -> Quirk -> CustomSMBIOSGuid -> True
  • PlatformInfo -> UpdateSMBIOSMode -> Custom

Chỉnh cài đặt firmware :

Disable

  • Fast Boot

  • Secure Boot

  • Serial/COM Port

  • Parallel Port

  • VT-d

    • bạn có thể enable nó nếu bạn set DisableIoMapper là YES
  • CSM

  • Thunderbolt

    • Nếu có thunderbolt thì hãy setting cẩn thận mục này xem chi tiết tại đây
  • Intel SGX

  • Intel Platform Trust

  • CFG Lock (MSR 0xE2 write protection)

    • Nếu là Yonah, Conroe and Penryn thì không cần quan tâm mục này vì chúng không có xcpm

    • nó phải được disable nếu bạn không tìm thấy nó có thể enable AppleCpuPmCfgLock hoặc AppleXcpmCfgLock dưới Kernel -> Quirks xem chi tiết ở mục setting config

Enable

  • VT-x (Virtualization Support)
  • Above 4G decoding
    • 2020+ BIOS: khi enabling Above4G, Resizable BAR Support có thể trở nên khả dụng ở Z490 và mainboard mới hơn. chắc rằng Booter -> Quirks -> ResizeAppleGpuBars được set là 0 nếu enable nó.
  • Hyper-Threading
  • Execute Disable Bit
  • EHCI/XHCI Hand-off
  • OS type: Windows 8.1/10 UEFI Mode
  • DVMT Pre-Allocated(iGPU Memory): 64MB
  • SATA Mode: AHCI

Lưu ý : đối với các CPU Pentium hoặc Celeron, nếu các bạn muốn hackinotsh cần phải có card đồ họa rời mới được hỗ trợ vì các iGPU của dòng này đều tạch và bắt buộc phải fake CPUID, xem chi tiết ở đây

Lưu ý 2 : Các cpu 11th gen desktop các bạn cần fake cpuid thành gen 10 theo hướng dẫn tại đây

Check lại config

Phân này chỉ mang tính chất tham khảo

B1 : Download OpenCore Configurator tại đây

B2: Bấm tổ hợp phím Option + C

B3: Chọn đời CPU

B4: Chọn phiên bản OpenCore

B5: Bật Drag and Drop

B6: Kéo file config vào ô

B7: Bấm Check

B8: Nhìn vào những mục màu vàng hoặc màu đỏ sau đó check lại các mục theo setting config ở trên

Issue

Nếu trong quá trình cài đặt có bất cứ lỗi nào bạn có thể tham khảo cách fix lỗi ở đây

  • Boot issue
    • Các vấn đề gặp phải từ khi khởi động usb cho đến trước khi chọn option boot macos
  • Kernel issue
    • Các vấn đề gặp phải từ khi chọn option boot macos ở picker cho đến khi vào giao diện cài đặt
  • Bigsur issue
    • Các lỗi đặt trưng ở bigsur
  • Monterey issue
    • Các lỗi đặt trưng ở monterey
  • Propertree issue
    • Các vấn đề gặp phải khi sử dụng propertree

Source tham khảo: OpenCore Install Guide (dortania.github.io)

Last Updated: