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
FixSBUS:
FixShutdown:
Patch này bổ sung phần sụn còn thiếu và không gây hại Windows hoặc Linux
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:
tham khảo SSDT-PNLF
AddMCHC:
tham khảo SSDT-SBUS-MCHC
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:
Đã được xử lý bởi WhateverGree
AddHDMI:
Đã được xử lý bởi WhateverGree
DropTables:
ACPI -> Delete
SSDT:
PluginType:
Được thay thế bởi SSDT-PLUG
Tham khảo Getting started with ACPI
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 BlackBFBFBF00
: 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:
Tham khảo GMA Patching
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:
Tham khảo Nvidia Patching
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
Tham khảo WhateverGreen's EDID docs
Dual Link:
DeviceProperties -> Add -> PciRoot... -> AAPL00,DualLink
1 -> <01000000>
0 -> <00000000>
NVCAP
Tham khảo Nvidia Patching(
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:
Tham khảo sample.dsl để tùy chỉnh VBIOS
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.
Tùy chỉnh này dành cho GFX0
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:
Kernel -> Patch
Tham khảo Common Kernel and Kext patch conversions
KernelToPatch:
Kernel -> Patch
Tham khảo Common Kernel and Kext patch conversions
ForceKextsToLoad:
Kernel -> Force
Kernel LAPIC:
Kernel -> Quirks -> LapicKernelPanic -> YE
S
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
Tham khảo Configuration.pdf
Slots AAPL Injection:
DeviceProperties -> Add -> PciRoot... -> APPL,slot-name | string | Add slot
System Parameters
CustomUUID:
Không được khuyến khích và không có tùy chọn tương đương trên OpenCore
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