Chuyển đổi từ Clover sang OpenCore

Nếu bạn thấy thích OpenCore và muốn thử nó, hãy tham khảo những bài viết dưới đây:

Làm sạch Clover Junk trong macOS

Những mục cần kiểm tra :

  • /Volumes/EFI/EFI/CLOVER/drivers64UEFI/EmuVariableUefi-64.efi

  • /Volumes/EFI/nvram.plist

  • /etc/rc.clover.lib

  • /etc/rc.boot.d/10.save_and_rotate_boot_log.local

  • /etc/rc.boot.d/20.mount_ESP.local

  • /etc/rc.boot.d/70.disable_sleep_proxy_client.local.disabled

  • /etc/rc.shutdown.d/80.save_nvram_plist.local​

Nếu các thư mục trống thì cũng xóa chúng:

  • /etc/rc.boot.d

  • /etc/rc.shutdown.d​

Loại bỏ Clover's Preference Pane:

  • /Library/PreferencePanes/Clover.prefPane

  • /Library/Application\ Support/clover

Loại bỏ các kext khỏi macOS (S/L/E và L/E)

Note: OpenCore sẽ không thể thêm các kext đã có sẵn trong kernalcache, cho nên bạn cần phải làm sạch để tránh lỗi không mong muốn.

Mở terminal và chạy lệnh sau:

sudo kextcache -i /

Lệnh này sẽ báo cáo về bất kỳ kexts nào không nên có trong S / L / E hoặc L / E.

Loại bỏ tất cả các kexts hack:

sudo -s

touch /Library/Extensions /System/Library/Extensions​

kextcache -i /​

  • Lưu ý, macOS Catalina sẽ cần mount -uw / lệnh để gắn ổ đĩa hệ thống dưới dạng Đọc / Ghi

Làm sạch Clover Junk trong phần cứng của bạn

Một điều khác mà Clover có thể đã ẩn đi là các biến NVRAM, điều này là xấu vì OpenCore sẽ không ghi đè các biến trừ khi được thông báo rõ ràng thông qua tính năng Xóa được tìm thấy trong NVRAM -> Delete. Để khắc phục điều này, chúng ta sẽ cần phải xóa sau đó thông qua tính năng ClearNvram của OpenCore.

Mở config.plist:

  • Misc -> Security -> AllowNvramReset -> True

Trên màn hình khởi động OpenCore, chọn Reset NVRAM boot option, mọi thử sẽ được xóa sau khi máy khởi động lại.

  • Lưu ý: Máy tính xách tay Thinkpad có thể gặp lỗi sau khi reset NVRAM trong OpenCore, chúng tôi khuyên bạn nên đặt lại NVRAM bằng cách cập nhật BIOS trên các máy này.

Bổ sung: Ngăn OpenCore ghi đè thông tin lên các Hệ điều hành khác.

Mặc định OpenCore sẽ ghi đè thông tin SMBIOS lên các hệ điều hành khác, bởi vì 2 lý do dưới đây:

  • Để hỗ trợ multiboot giống như BootCamp

  • Tránh việc thông tin được ghi nhiều lần

Cách khắc phục:

  • Kernel -> Quirks -> CustomSMBIOSGuid -> True

  • PlatformInfo -> UpdateSMBIOSMode -> Custom

Chuyển đổi Clover sang OpenCore

Acpi

ACPI Renames:

Chúng ta nên loại bỏ các bản vá(Patch) không còn phù hợp:

  • EHCI Patches: Nên dùng SSDT-EHCx_OFF để thay thế. Skylake trở đi không cần patch này.

    • change EHC1 to EH01

    • change EHC2 to EH02

  • XHCI Patches: Không cần thiết khi đã Map USB

    • change XHCI to XHC

    • change XHC1 to XHC

  • SATA patches: Không cần thiết

    • change SAT0 to SATA

    • change SAT1 to SATA

  • IMEI Patches: Đã được xử lý bởi WhateverGreen

    • change HECI to IMEI

    • change HEC1 to IMEI

    • change MEI to IMEI

    • change IDER to MEID

  • GFX patches: Đã được xử lý bởi WhateverGreen

    • change GFX0 to IGPU

    • change PEG0 to GFX0

    • change PEGP to GFX0

    • change SL01 to PEGP

  • EC Patches: Giải pháp tốt hơn: Getting started with ACPI

    • change EC0 to EC

    • change H_EC to EC

    • change ECDV to EC

    • change PGEC to EC

  • Audio renames: Đã được xử lý bởi AppleALC

    • change HDAS to HDEF

    • change CAVS to HDEF

    • change AZAL to HDEF

    • change ALZA to HDEF

    • change B0D3 to HDAU

  • Z390 BIOS RTC bug fix: Thay thế bởi: Getting started with ACPI (SSDT-AWAC)

    • change STAS to [Blank]

    • Fix Z390 BIOS DSDT Device(RTC) bug

    • Fix 300-series RTC Bug

  • NVMe patches: Thay thế bởi NVMeFix

    • change PXSX to ANS1

    • change PXSX to ANS2

  • Airport/WiFi Patches: Được thay thế bởi AirportBrcmFixup

    • change PXSX to ARPT

  • Các bản vá không cần thiết khác

    • change LPC0 to LPCB: Thay thế bởi SSDT-SBUS-MCHC

    • change PC00 to PCIO

    • change FPU to MATH

    • change TMR to TIMR

    • change PIC to IPIC

    • change GBE1 to ETH0

Patches

  • TgtBridge patches:

    • ACPI -> Patch -> ... -> Base

  • DisableASPM:

    • DeviceProperties -> Add -> PciRoot... -> pci-aspm-default | Data | <00>

  • HaltEnabler:

    • ACPI -> Quirks -> FadtEnableReset -> YES

Fixes:

  • FixAirport:

  • FixIPIC:

    • Dùng SSDTTime để tạo SSDT, FixHPET - vá xung đột IRQ

  • FixShutdown:

  • FixDisplay:

    • Vá framebuffer thủ công, WhateverGreen đã thực hiện hầu hết công việc này

  • FixHDA:

    • Đã được xử lý bởi AppleALC

  • FixHPET:

    • Dùng SSDTTime để tạo SSDT, FixHPET - vá xung đột IRQ

  • FixSATA:

    • Kernel -> Quirks -> ExternalDiskIcons -> YES

  • FixADP1:

    • Renames device AC0_ to ADP1, tham khảo Rename-SSDT

    • Thêm Name (_PRW, Package (0x02) {0x1C,0x03}) nếu thiếu. Tham khảo Source

  • FixRTC:

    • Dùng SSDTTime để tạo SSDT, FixHPET - vá xung đột IRQ

  • FixTMR:

    • Dùng SSDTTime để tạo SSDT, FixHPET - vá xung đột IRQ

  • AddPNLF:

  • AddMCHC:

  • AddIMEI:

    • tham khảo SSDT-SBUS-MCHC

    • WhateverGreen cũng sẽ xử lý IMEI naming

    • Trên Sandy Bridge on Z77 và IvyBridge on Z67, IMEI cần phải làm giả, tham khảo SSDT-IMEI

  • FakeLPC:

    • DeviceProperties -> Add -> PciRoot... -> device-id

    • Cần thiết để hỗ trợ cho LPC controller sẵn có trong AppleLPC

  • FixIntelGfx:

  • AddHDMI:

DropTables:

  • ACPI -> Delete

SSDT:

  • PluginType:

  • Generate P States: Được thay thế bởi SSDT-PM.aml. Tham khảo ssdtPRGen.sh (For Sandy Bridge and IvyBridge)

  • Generate C States: Được thay thế bởi SSDT-PM.aml. Tham khảo ssdtPRGen.sh (For Sandy Bridge and IvyBridge)

Boot

Boot Argument:

  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> boot-args

NeverHibernate:

  • Misc -> Boot -> HibernateMode -> None

Default Boot Volume:

  • Misc -> Security -> AllowSetDefault -> True

    • Nhấn giữ Ctrl+Enter vào bộ chọn để đặt phân vùng boot mặc định.

  • Thay thế Startup Disk trong tùy chọn hệ thống của macOS

Boot Graphics

DefaultBackgroundColor:

  • NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 -> DefaultBackgroundColor

    • 00000000: Syrah Black

    • BFBFBF00: Light Gray

    • Để điều chỉnh, hảy đổi giá trị RGB sang HEX

EFILoginHiDPI:

  • Clover only flag, for OpenCore UI scaling see UIScale and UEFI -> Output

flagstate:

  • NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 -> flagstate | Data | <>

    • 0 -> <00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000(dumped from a mac)

    • Cần phải kiểm tra vị trí NVRAM

UIScale:

  • NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 -> UIScale | Data | <>

    • 1 -> <01>

    • 2 -> <02>

CPU

Type:

  • PlatformInfo -> Generic -> ProcessorType

  • Tham khảo AppleSmBios.h

HWPEnable: Nên sử dụng HWPEnable để thay thế giá trị MSR 0x770

QEMU: Proper VM/KVM support is implemented in OpenCore

TurboDisable: Nên sử dụng CPUFriend or ssdtPRGen đẻ thay thế

Devices

USB:

  • FixOwnership: UEFI -> Quirk -> ReleaseUsbOwnership

  • ClockID: DeviceProperties -> Add -> PciRoot... -> AAPL,clock-id

  • HighCurrent: DeviceProperties -> Add -> PciRoot... -> AAPL, HighCurrent

    • không sử dụng cho OS X 10.11 và mới hơn

    • Biến thể mới hơn là PowerProperties được xác định trong IOUSBHostFamily.kext -> AppleUSBHostPlatformProperties hoặc được thêm vào bởi SSDT-USBX.aml cho Skylake SMBIOS và mới hơn

Audio:

Bạn cần biết PciRoot của bộ điều khiển âm thanh và tên của nó(thường là HDEF, cũng có thể là HDAS, HDAU, ...), Có thể tìm thấy với gfxutil:

path/to/gfxutil -f HDEF

  • Inject: DeviceProperties -> Add -> PciRoot... -> layout-id

  • AFGLowPowerState: DeviceProperties -> Add -> PciRoot... -> AFGLowPowerState -> <01000000>

  • ResetHDA: UEFI -> Audio -> ResetTrafficClass

    • Có thể dùng boot-arg alctsel=1 của AppleALC hoặc JackFix

Add Properties:

  • Không có tùy chọn tương đương, cần chỉ định với đường dẫn PciRoot

Properties:

  • DeviceProperties -> Add

FakeID: Để sử dụng, bạn cần phải biết PciRoot và thuộc tính để áp dụng trong DeviceProperties -> Add, PciRoot có thể tìm thấy bởi gfxutil

  • USB

    • device-id

    • device_type

    • device_type

  • IMEI

    • device-id

    • vendor-id

  • WIFI

    • name

    • compatible

  • LAN

    • device-id

    • compatible

    • vendor-id

  • XHCI

    • device-id

    • device_type: UHCI

    • device_type: OHCI

device_type: EHCI

  • device-id

  • AAPL,current-available

  • AAPL,current-extra

  • AAPL,current-available

  • AAPL,current-extra

  • AAPL,current-in-sleep

  • built-in

device_type: XHCI

  • device-id

  • AAPL,current-available

  • AAPL,current-extra

  • AAPL,current-available

  • AAPL,current-in-sleep

  • built-in

ForceHPET:

  • UEFI -> Quirks -> ActivateHpetSupport

Disable Drivers

Chỉ cần không thêm drivers vào UEFI -> Drivers, hoặc thêmd # và trước driver trong config.plist để bỏ qua.

Gui

Graphics

  • Note:Nên thay thế bằng PciRoot...

InjectIntel:

InjectAti:

  • DeviceProperties -> Add -> PciRoot... -> device-id

    • vd: <B0670000> dùng cho R9 390X

  • DeviceProperties -> Add -> PciRoot... -> @0,connector-type

    • Có thể cần phải thêm Connectors (vd: @1,connector-type, @2,connector-type) cho số lượng cổng xuất hình. Danh sách các loại cổng:

LVDS <02 00 00 00>

DVI (Dual Link) <04 00 00 00>

DVI (Single Link) <00 02 00 00>

VGA <10 00 00 00>

S-Video <80 00 00 00>

DP <00 04 00 00>

HDMI <00 08 00 00>

DUMMY <01 00 00 00>

InjectNvidia:

FakeIntel:

  • DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0) -> device-id

    • ie. 66010003 for the HD 4000

  • DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0) -> vendor-id -> <86800000>

FakeAti:

  • DeviceProperties -> Add -> PciRoot... -> device-id

    • vd: <B0670000> dùng cho R9 390X

  • DeviceProperties -> Add -> PciRoot... -> ATY,DeviceID

    • vd: <B067> dùng cho R9 390X

  • DeviceProperties -> Add -> PciRoot... -> @0,compatible

    • vd: ATY,Elodea cho HD 6970M

  • DeviceProperties -> Add -> PciRoot... -> vendor-id-> <02100000>

  • DeviceProperties -> Add -> PciRoot... -> ATY,VendorID -> <0210>

Note: Tham khảo Renaming GPUs để tạo SSDT- GPU-Spoofing. Fake ID GPU bằng DeviceProperties không thành công thì bạn có thể dùng SSDT- GPU-Spoofing giống với InjectAti, tham khảo Sample.dsl

Custom EDID

Dual Link:

  • DeviceProperties -> Add -> PciRoot... -> AAPL00,DualLink

    • 1 -> <01000000>

    • 0 -> <00000000>

NVCAP

display-cfg:

  • DeviceProperties -> Add -> PciRoot... -> @0,display-cfg

  • Tham khảo bài đăng của FASSL về vấn đề này: Nvidia injection

LoadVBios:

PatchVBios: See LoadVBIOS

NvidiaGeneric:

  • DeviceProperties -> Add -> PciRoot... -> model | string | Add the GPU name

NvidiaSingle: Tham khảo disabling unsupported GPUs

NvidiaNoEFI:

  • DeviceProperties -> Add -> PciRoot... -> NVDA,noEFI | Boolean | True

  • Tham khảo bình luận của FredWst: GT 640 scramble

ig-platform-id:

  • DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0) -> APPL,ig-platform-id

BootDisplay:

  • DeviceProperties -> Add -> PciRoot... -> @0,AAPL,boot-display

RadeonDeInit:

Trong hầu hết các trường hợp, nên sử dụng WhateverGreen để xử lý. SSDT này là không cần thiết nếu WhateverGreen được sử dụng.

Kernel and Kext Patches

KernelPm:

  • Kernel -> Quirks -> AppleXcpmCfgLock -> YES

  • Lưu ý rằng Clover sẽ tự động áp dụng bản vá này mà không cần cài đặt nó nếu MSR E2 bị khóa, vì vậy bạn có thể cần bật AppleXcpmCfgLock ngay cả khi Clover không có

AppleIntelCPUPM:

  • Kernel -> Quirks -> AppleCpuPmCfgLock -> YES

DellSMBIOSPatch:

An odd quirk for Dell systems running APTIO V

  • Kernel -> Quirks -> CustomSMBIOSGuid -> YES

  • PlatformInfo -> UpdateSMBIOSMode -> Custom

KextsToPatch:

KernelToPatch:

ForceKextsToLoad:

  • Kernel -> Force

Kernel LAPIC:

  • Kernel -> Quirks -> LapicKernelPanic -> YES

KernelXCPM:

  • Kernel -> Quirks -> AppleXcpmExtraMsrs -> YES

Để biết thêm các bản vá cần chuyển đổi, hãy so sánh OpenCore's CommonPatches.c với Clover's kernel_patcher.c. Một số bản vá không được chuyển qua gây lỗi. ví dụ cho việc chuyển đổi bản vá KernelIvyBridgeXCPM sang OpenCore:

Base: _xcpm_bootstrap

Comment: _xcpm_bootstrap (Ivy Bridge) 10.15

Count: 1

Enabled: YES

Find: 8D43C43C22

Identifier: kernel

Limit: 0

Mask: FFFF00FFFF

MinKernel: 19.

MaxKernel: 19.99.99

Replace: 8D43C63C22

ReplaceMask: 0000FF0000

Skip: 0

Nguồn tham khảo: Source

Đối với Haswell+ cấp thấp như Celerons, vui lòng xem tại đây để biết các bản vá được đề xuất: Bugtracker Issues 365

USB Port Limit Patches:

  • Kernel -> Quirks -> XhciPortLimit -> YES

External Icons Patch:

  • Kernel -> Quirks -> ExternalDiskIcons -> YES

  • Dùng khi bạn ổ đĩa trong được xem là ổ đĩa ngoài trên macOS

AppleRTC

Issue with AppleRTC, quite a simple fix:

  • config.plist -> Kernel -> Quirks -> DisableRtcChecksum -> true

Lưuý: Nếu bạn vẫn gặp sự cố, bạn sẽ cần sử dụng RTCMemoryFix. Tham khảo tại đây để biết thêm thông tin.

boot-arg khắc phục 99% trường hợp gây lỗi (dùng chung với RTCMemoryFixup):

rtcfx_exclude=00-FF

Nếu điều này hoạt động, từ từ rút ngắn phạm vi bị loại trừ cho tới khi macOS trở nên bất ổn

FakeCPUID:

  • Kernel -> Emulate:

    • Cpuid1Mask: <Clover_FCPUID_Extended_to_4_bytes_Swapped_Bytes> | 00 00 00 00 | 00 00 00 00 | 00 00 00 00

      • ex(0x0306A9): A9060300 00000000 00000000 00000000

    • Cpuid1Data(Hoán đổi 00 bởi FF nếu cần hoán đổi với giá trị dài hơn)

      • vd: FFFFFFFF 00000000 00000000 00000000

Lưu ý: Tìm CPUID qua Intel ARK sẽ khó hơn tìm qua ghi chú cập nhật của Microsoft. Tham khảo tại Intel microcode update notes

Rt Variables

ROM:

  • Không tùy chọn tương đương cho UseMacAddr0. Nếu cần lấy ROM theo phần cứng, hãy tìm trong System Preferences -> Network -> Advanced -> Hardware

  • Đảm bảo En0 vẫn được tích hợp để không gặp lỗi iServices.

MLB:

  • PlatformInfo -> Generic -> MLB

BooterConfig:

  • NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14-> UIScale:

    • 0x28: Data | <01>

    • 0x2A: Data | <02>

CsrActiveConfig:

  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config:

    • 0x0: 00000000

    • 0x3: 03000000

    • 0x67: 67000000

    • 0x3E7: E7030000

SMBIOS

Product Name:

  • PlatformInfo -> Generic -> SystemProductName

Serial Number:

  • PlatformInfo -> Generic -> SystemSerialNumber

Board Serial Number:

  • PlatformInfo -> Generic -> MLB

SmUUID:

  • PlatformInfo -> Generic -> SystemUUID

Memory:

  • PlatformInfo -> CustomMemory -> True

  • PlatformInfo -> Memory

Slots AAPL Injection:

  • DeviceProperties -> Add -> PciRoot... -> APPL,slot-name | string | Add slot

System Parameters

CustomUUID:

InjectSystemID:

  • Không có tùy chọn tương đương

BacklightLevel:

  • Property set in NVRAM

  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> backlight-level | Data | <Insert value>

    • 0x0101 -> <0101>

InjectKexts:

  • Không có tùy chọn tương đương.

NoCaches:

  • Chỉ hoạt động với macOS 10.7 trở về trước. Không có tùy chọn tương đương trên OpenCore

ExposeSysVariables:

  • Chỉ cần thêm thuộc tính SMBIOS của bạn vào PlatformInfor

  • Không còn được đề cập trong các phiên bản gần đây trong tài liệu về Clover trên AppleLife

NvidiaWeb:

  • Ghi giá trị nvda_drv = 1 vào nvram mỗi lần khởi động .

  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> nvda_drv: <31>

Để tìm hiểu thêm về Hackintosh. Hãy tham gia group HSVN - Hackintosh Vietnam của chúng tôi.

Last updated