opencore

克里米亚检察官 2024-06-20 00:12 17次浏览 0 条评论 taohigo.com

OpenCore(V0.5.1)已經證明瞭自己在10.14.6至10.15 beta 11上的穩定性

來源

目前為止,最新版的OpenCore(V0.5.1)已經證明瞭自己在10.14.6至10.15 beta 11上的穩定性。考慮到即將來臨的10.15正式版,我想現在寫一份關於z390等比較新的主板,如何使用OpenCore去引導新系統是一個不錯的時間點。最近好多小夥伴問我要我的配置哈,都是買瞭一樣的配置再問我要efi,真是厚愛瞭!我的efi在群文件裡都有,配置如下:我的電腦配置簡介OpenCore(OC)是一種新的引導方式,隨著越來越多的kexts開始放棄Clover, 我相信提早使用OC會對你未來使用黑蘋果會有很大的幫助。這是一個自然的現象,就像變色龍被Clover淘汰,而現在OC代替Clover也是大勢所趨。你應該需要看一些相關的文章,來幫助你理解我的正文內容,同時也需要下載我推薦的軟件:

  • Opencore Vanilla Desktop Guide
  • Getting Started With OpenCore
  • OpenCore Configuration
  • 精解OpenCore
  • Xcode (從app store或其他地方下載,強烈建議使用v10版本的xcode,v11花裡胡哨已經勸退=。=)
  • ProperTree 最新推薦的config編輯器
  • OpenCore (下載最新的release版本)
  • Hackintool
  • MaciASL
  • IORegistryExplorer
  • 憲武大大oc部件

帖子更新內容查詢:2019-11-28:1.增加3.8.3章節,解釋睡眠記錄中出現RTC ALARM而導致自動喚醒的現象。[Opencore v0.5.3]2.計劃寫5700xt/Radeon VII等顯卡的性能優化,雖然cpu優化都還沒寫好,太懶瞭。[Opencore v0.5.3] 2019-11-21:1.關懷華碩用戶,補充章節3.2。[Opencore v0.5.3]2.著手開始寫cpu變頻相關內容。 [Opencore v0.5.3] 2019-11-20:1.在今天的OC更新中,NVRAM與啟動磁盤之間的BUG被修復,重新刪瞭EmuVariableRuntimeDxe.efi,並且在章節3.2中加入相關教程。[Opencore v0.5.3]2.更新SSDT-ARTC來解決RTC重置問題。因我自己的所有設備都沒有碰到這個問題,很難憑空去完全解決RTC重置的問題。 [Opencore v0.5.3] 2019-11-19:1.fwruntimeservice.efi 存在缺陷,所以把EmuVariableRuntimeDxe.efi補回來瞭,具體內容。[Opencore v0.5.3]2.更新節能五項,章節3.5。[Opencore v0.5.3] 2019-11-16:1.增加我的電腦配置及購物鏈接,問的人太多瞭。 2019-11-09:1.修改章節2.6.1為中文,謝謝網友提醒,哈哈哈哈。[Opencore v0.5.3]2.對config設置裡,比較重要的設置改為紅字提醒。[Opencore v0.5.3] 2019-11-08:1.重點推薦Propertree作為config的編輯工具,再次提示不要使用opencore configurator!!!!下載地址:https://github.com/corpnewt/ProperTree。[Opencore v0.5.3] 2019-11-03:1.重改EC章節,對臺式機和筆記本進行區別對待。[Opencore v0.5.3]2.增加強制睡眠相關教程,留言板說想知道一些SSDT的知識,那我在這裡順便也展示幾種SSDT/Hotpatch/TgtBridge在OC下的使用說明。[Opencore v0.5.3]3.刪除章節1.0中EmuVariableRuntimeDxe.efi的相關要求。[Opencore v0.5.3]4.修改章節2.4.4關於applertc的說明。[Opencore v0.5.3] 2019-10-31:1.添加OC 0.5.2正式版中新增加的variable相關說明,包括PowerTimeoutKernelPanic(章節2.4.5)以及ReconnectOnResChange(章節2.7.4)。[Opencore v0.5.2] 2019-10-27:1.在2.4.4段中補充瞭關於華碩主板重啟後丟失BIOS設置以及需要按F1跳過安全模式的RTC設置,同時在3.8段中提供RTC的完整解決辦法。[Opencore v0.5.2]2.在3.7.1段中補充瞭usb電流相關設置。[Opencore v0.5.2]3.在3.7段的仿冒EC中發現OC官方樣本的BUG,重新寫瞭一下。[Opencore v0.5.2] 2019-10-16:1. 加入Booter/MmioWhiteList說明。[Opencore v0.5.2] 0.0 BIOS設置直接抄襲@黑果小兵瞭~嘻嘻嘻禁用如下:英文中文Fast Boot快速啟動CFG Lock (MSR 0xE2 write protection)CFG 鎖 (MSR 0xE2 寫入保護)VT-dVT-dCSM兼容性支持模塊 啟用如下:英文中文VT-xVT-xAbove 4G decoding大於 4G 地址空間解碼Hyper Threading處理器超線程Execute Disable Bit執行禁止位EHCI/XHCI Hand-off接手 EHCI/XHCI 控制OS type: other types操作系統類型: 其他 1.0 整理OPENCORE目錄

  • 打開下載好的最新版OC(0.5.1),把Doc文件夾下面的SampleFull.plist改名為config.plist,並把此文件移動到EFI目錄下面。
  • 打開EFI—Kexts,我們把常用的一些kexts先放進去,一般情況下你需要放如下Kexts:

*Lilu.kext ———- Acidanthera驅動全傢桶的底層依賴/下載地址 *Applealc.kext ———- 聲卡驅動/下載地址 *VirtualSMC.kext ——— 傳感器驅動依賴 /下載地址 *SMCProcessor.kext ———- CPU核傳感器/同上 *SMCSuperIO.kext ———- IO傳感器/同上 *WhateverGreen.kext ———- 核顯&顯卡驅動/下載地址 *IntelMausi.kext ———- Intel類千兆網卡驅動/下載地址 *Usbinjectall.kext ———- USB驅動 (你也可以定制自己的USB補丁)/下載地址

  • 註意,一些機型用瞭1820A,1560,1830等網卡,需要自己放對應驅動;有線螃蟹卡也自己放一下驅動;筆記本類需要更多傳感器的,請自行補齊VirtualSMC的那些傳感器補丁;
  • 打開EFI—Drivers,我們把常用的一些.efi文件放進去,一般情況下你需要放如下補丁:

*ApfsDriverLoader.efi ———- APFS格式支持/下載地址 *MemoryAllocation.efi ———- 幫助z390系列空出第一個512MB內存,為後面的內存註入做鋪墊,若要使用hibernation功能請不要使用它/下載地址 *FwRuntimeServices.efi ———- 內存尋址補丁/ 下載地址 *EmuVariableRuntimeDxe.efi ———- 幫助無原生Nvram的主板實現nvram模擬。Z370, x299, C422主板不需要這個文件/下載地址已經不需要瞭 *VBoxHfs.efi ———- HFS格式支持/下載地址//在測試過程中我發現hfsplus.efi的效果更好。 *UsbKbDxe.efi ———- 鍵盤組合鍵的使用,有一些鍵盤不能放這個,比如蘋果鍵盤/下載地址 *VirtualSmc.efi ———- 傳感器依賴/ 下載地址 下載完成後,我們的整個EFI文件夾如下圖所示:

2.0 Config.plist 修改這一章會把config的各個大項目分開來,內容會寫的繁瑣一點,為瞭讓小白明白各個選項的用途,當然有能力的人可以直接看我最前面的幾個鏈接來配置config.plist。我這裡強制要求你使用XCode 10或者Propertree來編輯Config.plist,其他的任何軟件我都不建議使用,包括Plistedit pro。 2.1 Config—-ACPIACPI包括瞭四個部分:Add, Block, Patch, Quirks。這裡我們先把root下面的兩條#WARNING – 1和#WARNING – 2刪除,這兩條沒有實際意義。 2.1.1 Config—-ACPI—–Add這部分主要填寫我們使用的SSDT以及DSDT文件,如果沒有請把0-8的ssdt全部刪除。如果你有修改的SSDT或者DSDT文件,請先將文件放入EFI/OC/ACPI下。因為我使用雷電卡,我需要添加兩條關於雷電卡的ssdt文件:

  1. Item 0
  2. Comment String Thunderbolt3-DTGP //填一個你自己能辨別的名字,方便知道是啥
  3. Enable Boolean YES //表示加載此SSDT,反之NO則為不加載
  4. Path String SSDT-DTGP.aml //為你ssdt放在EFI/OC/ACPI下的文件名,必須一致
  5. Item 1
  6. Comment String Thunderbolt3
  7. Enable Boolean YES
  8. Path String SSDT-TB3.aml

2.1.2 Config—-ACPI—–Block這個目錄下是禁用一些SSDT/DSDT,似乎沒什麼用,我把下面的item全都刪瞭。 2.1.3 Config—-ACPI—–Patch這裡我們需要填寫一下熱補丁。

  • 在10.15中,一些資料指出我們需要把EC控制器(EC0)改名為EC來確保能進入10.15系統
  1. Comment: EC0 to EC
  2. Count:0
  3. Enabled:YES
  4. Find:<4543305F>
  5. Limit:0
  6. Mask:<>
  7. OemTable:<>
  8. Replace:<45435F5F>
  9. ReplaceMask:<>
  10. Skip:0
  11. TableLength:0
  12. TableSignature:<>

需要註意的是,一些主板的EC控制器名字可能會叫H_EC等,請自行提取DSDT並搜索PNP0C09,來獲取EC控制器的名字,這些內容會在第三章中寫出。

  • 華擎、華碩、微星主板可能會遇到RTC問題而無法進入系統,這同樣需要添加hotpatch補丁來解決:
  1. Comment: RTC fix
  2. Count:0
  3. Enabled:YES
  4. Find:<A00A9353 54415301>
  5. Limit:0
  6. Mask:<>
  7. OemTable:<>
  8. Replace:<A00A910A FF0BFFFF>
  9. ReplaceMask:<>
  10. Skip:0
  11. TableLength:0
  12. TableSignature:<>

2.1.4 Config—-ACPI—–Quirks此目錄下有五項,選擇與解釋如下:QuirksValue解釋FadtEnableResetNO一些舊的主板需要對FADT進行標記來激活電腦的開機和關機功能,這裡我們不許要啟動它(如果你遇到關機變重啟,可以打開試試,我們之後也會在nvram中將這個問題修復)NormalizeHeadersYES清理ACPI頭,一些主板的ACPI表需要打開這個修復啟動。但如果補丁點亮系統,請試試NORebaseRegionsNO換硬件、升級BIOS等對硬件的操作會對ACPI表產生影響,一般不需要打開ResetHwSigNO休眠相關項,臺式機不需要ResetLogoStatusNO顧名思義瞭,關瞭 2.2 Config—–Booter內存相關選項設置。2.2.1 Config—Boot—MmioWhitelist默認的第一項是為Haswell芯片提供的內存尋址修復,如果此類芯片碰到內存相關問題,請開啟它(enable選擇yes)。默認第二項是開機卡PCI Configuration這裡。ACPI、PCI device同時釋放到內存時發生0x1000內存地址被占用而卡在PCI Configration.如果碰到此類問題,請開啟它。2.2.2 Config—Boot—Quirks此項與Fwruntimeservice.efi有關。在aptiomemoryfix停更後,此補丁已經更名為Fwruntimeservice, 並將一些功能與OC合並、模塊化。對於z390等無法原生nvram的主板來說,這裡的選項需要格外註意。當然我也會把像z370、x299、c422這樣支持原生nvram的選擇方法一並寫進去。

  • AvoidRuntimeDefrag:大部分UEFI都會寫入時間、電源管理等信息,這個所有黑蘋果主板都應該選擇YES。
  • DevirtualiseMmio:內存註入方式包括KASLR方式(分佈式註射到各個內存地址中)以及連續性方式。在使用KASLR時,PCIE加載到內存,可能會占據所有所有avaliable值而導致OC的內核以及內核緩存無法註入,導致啟動失敗。使用KASLR方式很容易出錯,我們更適合使用連續性的內存註入方式,並在boot args中添加slide=1(這個之後會寫)。因為我們之後會添加這個slide=1去使用連續性的內存註入方式,所以這個選項我們選擇NO。(不知道你能不能理解,意思是所有的主板都選NO! 我暫時還沒發現能用KASLR的臺式機,哈哈哈哈)。
  • DisableSingleUser:這裡關乎主機是否能開啟單用戶模式。什麼是單用戶模式,請看此文章。如果你覺得有用就開啟它,我選擇NO,我不需要。
  • DisableVariableWrite:非原生NVRAM主板需要模擬nvram.plist進而寫入variable值,因此我們要禁止此項來防止其他程序對nvram進行寫入,我們這裡選YES。需要註意一點,如果你的主板支持原生nvram(z370/x299/c422),請選擇NO!
  • DiscardHibernateMap:當電腦從休眠(hibernation)中喚醒時,硬盤裡的資料會恢復到內存中去,但這個時候OC的內核以及內核緩存等也會寫入,這樣可能導致沖突,這個選項是幫助我們解決這個問題的。而目前來看,除瞭z370/x299/c422都無法進行休眠(註意睡眠sleep和休眠hibernation是兩個概念),臺式機的話就更不需要休眠功能瞭,這裡我選擇NO。這裡我們也不討論如何休眠。
  • EnableSafeModeSlide:安全模式下是否啟用連續性的內存註入方式。這個不是那麼重要,你不會每天進安全模式的。像z390這樣本來也不用分佈式註入內存方式的(KASLR),我就選擇YES,與正常情況下保持一致。
  • EnableWriteUnprotector:保證nvram能正常寫入而不受到UEFI內的一些服務的影響,無論什麼主板都要選擇YES。
  • ForceExitBootServices:這個選項是讓那些非常老舊的主板也能使用內存尋址,正常情況下選NO。
  • ProtectCsmRegion:官方對此項目的解釋與AvoidRuntimeDefrag類似,除非你明白這是什麼,不然選擇NO,其實我也不明白。
  • ProvideCustomSlide:是否使用slide值。其實我自己也沒有機會使用KASLR這種內存註入方式,所以我一直都是選擇連續性註入內存並配合slide,所以我選擇YES。如果你對KASLR有一定的認知並會運用,請註意這個值。
  • SetupVirtualMap:是否建立虛擬內存並對物理內存進行映射。我們在開機時,OC的程序需要一塊連續性的內存進行存放內核等東西,而實際的物理內存一般都是分散的。因此,我們通過虛擬內存建立連續性內存供OC使用,並映射到分散的物理內存中。這裡我們選擇YES。
  • ShrinkMemoryMap:蘋果的內核對內存的規范性有具體的要求。目前來看新的主板的規范性都是符合蘋果的要求的,我們並不需要啟動它,選擇NO。如果你出現內存問題而無法開機,請打開此項測試。

2.3 Config—–DeviceProperties此項是用來註入你的設備的,主要是顯卡和聲卡兩部分。同樣你也可以定制一些設備到你的關於本機–系統報告–PCI列表中,盡管沒有多大的意義。 2.3.1 聲卡這裡首先我們需要找自己聲卡的地址,打開hackintool,到PCI列表中尋找IOReg IOname那欄,一般聲卡的設備名稱叫做HDEF或者HDAS:

這裡我們找到的聲卡PCI路徑為PciRoot(0x0)/Pci(0x1f,0x3)。我們把預先填寫在那裡的PciRoot(0x0)/Pci(0x1b,0x0)項替換成我們真正的聲卡路徑。後面一段我們看到預先填寫的聲卡ID為<01000000>,這裡我們需要把它換成自己系統的ID。

  • 打開先前要求下載的Hackintool,到聲卡選項部分,我們可以看到自己的聲卡編號,我的是ALC1220。

  • 打開黑果小兵關於聲卡的博客,並搜索我們的聲卡型號:ALC1220,我們發現我們的聲卡型號對應1, 2, 3, 5, 7, 11, 13, 15, 16, 27, 28, 29, 34的layout ID。我們需要一個個測試過去,選定自己能用的。這裡我們選擇7這個ID進行測試,將7轉化成16進制格式為07,後面為瞭滿足格式要求添加6個0,則為07000000,將這個值替換剛才預先填的01000000中;如果我們測試ID為27,27的16進制為1b,補上6個0則為1b000000。
  • 一些奇怪的聲卡可能需要註入device ID才能用,不知道為啥:
  1. PciRoot(0x0)/Pci(0x1f,0x3)
  2. device-id data <70a10000> //這個device id是固定的,不要問為什麼是這個id
  3. layout-id data <0b000000> //這個Layout id我瞎寫的,你按實際情況寫
  • 如果你測試的ID都無效,請確保你的操作過程正確、並測試用萬能聲卡補丁來替換AppleALC這個補丁。如果都不行,你可能需要自行編譯聲卡補丁。

2.3.2 核心顯卡打開PciRoot(0x0)/Pci(0x2,0x0)這項,此項為驅動核心顯卡。驅動核心顯卡我們要分情況討論:1.隻有核心顯卡的DP顯示器用戶 (HDMI我會在進階設置中寫);2.沒有核心顯卡的用戶;3.有核心顯卡並用獨顯做主力的用戶。註意,這裡我們隻討論8代和9代CPU的機器,其他CPU機型的請在論壇或者黑果小兵博客中搜索相關代碼。 2.3.2.1 隻有核心顯卡的DP顯示器用戶8代和9代的核顯ID為:3E9b0007,device ID為3e9b0000,但是我們需要符合一定的順序格式填入進去,至於為什麼是這麼奇怪的一個順序,我也不知道,你照抄就是瞭:

  1. AAPL,ig-platform-id data <07009b3e>
  2. device-id data <9b3e0000>
  3. enable-hdmi20 data <01000000> //如果你的hdmi不是2.0的(主板說明書會寫),不需要填寫這行。
  4. framebuffer-unifiedmem data <00000080> //核顯顯存相關

2.3.2.2 沒核心顯卡的用戶cpu帶f的cpu (e.g. 9100f 9900kf), Xeon等不帶核心顯卡的用戶不需要管這項,直接把AAPL,ig-platform-id選項卡刪瞭。 2.3.2.3 有核心顯卡並用獨顯做主力的用戶這種情況我們一般把核心顯卡作為加速用,而顯示則用獨立顯卡。這樣,我們填一個作為加速用的核顯ID即可瞭:

  1. AAPL,ig-platform-id data <0300983e>

2.3.3 Block這裡是禁用一些設備的,我們按默認就行瞭,不需要任何修改。 2.4 Config—–Kernel這裡是內核相關選項。 2.4.1 Config—–Kernel—–Add這裡我們需要填寫kexts的相關資料。值得註意的是OC的kexts填寫必須註意順序,比如applealc的依賴是lilu,那麼lilu必須填在第一個;SMCProcessor.kext依賴於Virtualsmc.kext。那virtualsmc必須放在SMCProcessor.kext之前。這裡默認情況下很多我們需要的補丁已經被加載裡面瞭,但是enabled那塊我們要手動改成yes去開啟它,把一些不用的刪瞭:

  1. Item 0
  2. BundlePath String Lilu.kext //kext的名字
  3. Comment String //你自己填一個註釋,可以不填
  4. Enabled Boolean YES //啟動此補丁,反之則為關閉
  5. ExecutablePath String Contents/MacOS/Lilu //通過右鍵kext顯示包內容查找lilu運行文件的真正路徑
  6. MaxKernel String //此補丁支持的最大系統版本,填19為10.15,18位10.14;我們一般情況下留空
  7. MinKernel String //此補丁支持的最小系統版本
  8. PlistPath String Contents/Info.plist //kext的plist位置,可以右鍵kext顯示包內容查找正確路徑
  9. …………
  10. …………
  11. Item 4
  12. BundlePath String WhateverGreen.kext
  13. Comment String
  14. Enabled Boolean YES
  15. ExecutablePath String Contents/MacOS/WhateverGreen.kext
  16. MaxKernel String
  17. MinKernel String
  18. PlistPath String Contents/Info.plist
  19. …………
  20. …………
  21. Item 7
  22. BundlePath String USBPorts.kext
  23. Comment String
  24. Enabled Boolean YES
  25. ExecutablePath String //一些沒有執行文件的kext不需要填寫
  26. MaxKernel String
  27. MinKernel String
  28. PlistPath String Contents/Info.plist
  29. …………
  30. …………

2.4.2 Config—–Kernel—–Block禁用一些kexts,這裡好像沒啥用,不用理會。 2.4.3 Config—–Kernel—–Emulate此選項幫助Ivy Bridge 和一些不受支持的CPU加載電源管理的,我們這裡不做此方面討論(我沒這麼老的CPU)。所有選項按默認即可。 2.4.4 Config—–Kernel—–Patch這裡是為一些kext打補丁用的。我們可以看到樣本裡面有四個補丁,都是關閉著的,其中有兩個是關於APPLE RTC的,這對於華碩主板來說相對比較重要,這裡我們需要對appleRTC相關的兩個補丁一一測試,打開—–Enabled—YES其中一個,即可。如果不行,關閉一個打開另一個。這樣能解決華碩主板重啟丟失BIOS設置以及需要按F1跳過安全模式,當然RTC仍然需要進一步的設置,我會在進階教程中詳細寫一下這一塊。 2.4.5 Config—–Kernel—–Quirks這裡是內核相關的快捷選項,比較重要。AppleCpuPmCfgLock:請確保你的BIOS中已經關閉瞭CFG鎖。如何解CFG鎖我在這篇文章中有詳細教程。如果你不會解這個鎖,你就選擇YES,解鎖的情況下選擇NO。註意,CFG的解鎖對之後的進階教程相關度極高,有能力還是解一下吧! AppleXcpmCfgLock: 同上! AppleXcpmExtraMsrs: 主要在沒有原生電源管理的CPU上啟用,一般是Haswell-E, Broadwell-E, Skylake-X這三種CPU需要填寫YES。除此之外的CPU選擇NO。 CustomSMBIOSGuid: 戴爾筆記本專用項,我們選擇NO。 DisableIoMapper: 禁用vt-d,我們在BIOS裡已經禁用vt-d瞭,這裡我們選擇NO就行瞭。 ExternalDiskIcons: AHCI控制器相關,現在的主板都對AHCI支持的很好,一般選擇NO。 LapicKernelPanic: 適用於HP筆記本的內核奔潰選項,我們選擇NO。 PanicNoKextDump: 防止kext出錯打報告而讓我們看不到真正的panic原因,這個隨便選,我選擇NO。 PowerTimeoutKernelPanic: 當你遇到睡眠不能喚醒,隻有重啟後才能睡眠喚醒,請試試選擇YES。 ThirdPartyTrim: 開啟Sata類SSD的trim功能,我沒有sata類的ssd,我選擇NO。自行根據情況選擇。 XhciPortLimit: 解除15個端口限制,我選擇YES。 2.5 Config—-Misc這裡都是一些開機引導類的設置。 2.5.1 Config—–Misc—–BlessOverride這個選項是幫助我們尋找一些不尋常的EFI位置的,除非你有這種情況,不然我們不需要填寫任何東西。 2.5.2 Config—–Misc—–BootConsoleBehaviourOs: 一般是留空,如果留空開機顯示效果不佳,請填ForceText。 ConsoleBehaviourUi: 同上。 HibernateMode: 檢測休眠模式。我們的機器一般都不支持休眠,選none。如果你的主板支持原生nvram、並想測試休眠,可以考慮填auto。 HideSelf: 隱藏自身的EFI引導盤選項,選YES。 PollAppleHotKeys:是否開啟一些熱鍵功能,包括Cmd+K;Cmd+S。我選的是yes。如果你開機發現鍵盤無法選擇,也選NO,並且刪除OC/Drivers下的UsbKbDxe.efi 。 Resolution: 開機分辨率。比如我的顯示器是4K、16:9的,我就填寫3840×2160。這個你根據情況填寫或者不填。如果遇到開機蘋果LOGO很大,你需要按你的分辨率填寫。另外,我發現瞭一件很神奇的事情:技嘉的主板LOGO大小跟開機的大雕圖的尺寸相關,我把大雕圖換成瞭4K,開機的蘋果LOGO也變成4K瞭。。。。神奇 ShowPicker: 是否顯示開機啟動盤選項,比如MAC,WINDOWS那些。我們選擇YES。 Timeout: 倒計時進入指定硬盤,這裡我們按需求填寫,我填寫5,代表5秒鐘進入指定硬盤。 UsePicker: 是否使用OC的開機啟動盤選項,我們選YES。之後可能會有新的第三方主題支持的話,我們需要選NO。 2.5.3 Config—–Misc—–Debug是否開啟debug模式,這裡我們暫時不需要,全部忽略過。 2.5.4 Config—–Misc—–Entries這裡是幫助我們添加一些你希望的引導路徑,這個會在之後的進階教程中講,這裡暫時略過不填寫。 2.5.5 Config—–Misc—–SecurityAllowNvramReset: 是否在開機引導項中加入重置nvram緩存功能的選項,我們選YES。ExposeSensitiveData: 因為要使用到nvram,這個數值我們必須填3。HaltLevel: 按默認設置即可。RequireSignature: 黑蘋果的vault加密方式,我們不需要這個功能,選擇NORequireVault: 是否開啟黑蘋果加密,不需要,選NOScanPolicy: 這裡暫時填0。我們也許會碰到開機的時候默認進入的系統永遠是WINDOWS,並無法更改,之後我們在進階教程中講述,如何讓MAC盤排在第一個,讓WIN排在後面。2.5.6 Config—–Misc—–Tools這裡是加入一些開機時候的工具的。其實我覺得隻有重置nvram的工具是有用的,但之前的設置裡面我們已經開啟瞭,這個選項就沒啥用瞭,不用理會。 2.6 Config—-NVRAM這是關於nvram的選項卡。 2.6.1 Config—–NVRAM—–Add

  1. 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
  2. UIScale Data <02> //這裡填寫01為普通的UI顯示模式,02為開啟HIDPI的UI顯示模式,我選擇02
  3. 7C436110-AB2A-4BBB-A880-FE41995C9F82
  4. boot-args String Slide=1 darkwake=0 -v //slide=1表示從第一組內存開始連續註入;darkwake=0代表一鍵喚醒機器並偏好設置中節能選項的小憩功能。如果你要用小憩功能請填8; -v是跑代碼,在沒裝好穩定的黑果前我建議加上,方便定位錯誤,弄完後再刪除-v
  5. bootercfg String log=0 debug=0 level=0 //這條自己添加進去,是關閉開機時的代碼的。
  6. csr-active-config Data <e7030000> //關閉SIP保護
  7. nvda_drv Data <31> //對10.13系統之前的N卡的相關設置,我們不做討論。
  8. prev-lang:kbd Data <7a68 2d48 616e 733a 3235 32> //語言設置相關,記得改成這個,這個是中文

2.6.2 Config—–NVRAM—–Block禁用一些nvram變量,我們這裡按默認設置不必理會。 2.6.3 Config—–NVRAM—–LegacyEnable如果你的主板不支持原生NVRAM,請一定要選擇YES! 如果你的主板是z370/x299/c422/z270等支持原生nvram的,填no。 2.6.4 Config—–NVRAM—–LegacySchema這裡是nvram的變量設置,大部分默認已經填好,我們隻需添加兩個變量即可。打開7C436110-AB2A-4BBB-A880-FE41995C9F82這一欄,添加兩個item如下:

  1. item 11 String efi-boot-device
  2. item 12 String efi-boot-device-data

2.7 Config—-PlatformInfo這裡我們填合適的機型。對於最近一代的主板來說,一般的原則,隻有核顯的機器我們選Macmini8,1;隻有獨顯的機器我們選擇iMac Pro 1,1;有核顯和獨顯的我們選擇iMac 19,1。 因為這部分內容太過復雜,其實很多內容都不必要填寫,我們直接刪除Datahub,PlatfromNVRAM,SMBIOS這三項,無需填寫。 2.7.1 Config—–PlatformInfo—–Automatic這裡意思是是否自動填寫系統信息。因為後面的很多選項都好繁瑣,我們隻要認真填幾個選項就行瞭,這裡我選YES,不重要的信息讓它自動填。 2.7.2 Config—–PlatformInfo—–Generic這裡是我們需要填寫的三碼部分。獲得三碼,我們可以運用一下Clover的Clover Configurator幫我們生成一下相關的數據:

  • 打開Clover configurator,並到SMBIOS選項卡中,選擇合適的機型,這裡我們以iMac19,1 為例:

  • 我們換到Rt variables裡,點擊ROM下的生成,獲得一個ROM編號,這樣我們就獲得瞭所有需要的信息瞭。

  • 我們整理一下剛才獲得的信息並依次填入Generic下面即可。
  • 值得註意的是,SystemUUID這一項最好留空,讓OC自動生成,它會影響你的WINDOWS激活狀態。

2.7.4 Config—–PlatformInfo—–剩餘部分UpdateDataHub:選擇YES UpdateNVRAM:選擇YES UpdateSMBIOS:選擇YES UpdateSMBIOSMode:選擇Create UEFI:UEFI相關的補丁以及設置項。 ConnectDrivers:是否加載所有UEFI補丁,這裡我們選YES 2.8 Config—-UEFI這裡我們需要填寫UEFI相關的設置。 2.8.1 Config—–UEFI—-ConnectDrivers是否加載補丁,我們選擇YES 2.8.2 Config—–UEFI—-Drivers把我們之前放在OC/EFI/Drivers下面的驅動一一填上,這裡我們也註意一下填入的順序:

  1. Drivers
  2. item0 String ApfsDriverLoader.efi
  3. …………………… MemoryAllocation.efi
  4. …………………… FwRuntimeServices.efi
  5. …………………… VBoxHfs.efi
  6. …………………… UsbKbDxe.efi

2.8.3 Config—–UEFI—-Input此選項是原生apple開機熱鍵的選項,需要配合我們之前設置的PollAppleHotKeys=yes以及UsbKbDxe.efi補丁一起用。下面的設置完全按照默認情況就行瞭。因為我的鍵盤是蘋果原生鍵盤,不支持這個功能,所以我直接PollAppleHotKeys裡填瞭NO,這裡也不會生效的。有一點需要說,如果你是華碩的z87或者z97,你需要打開PointerSupport這個選項。 2.8.4 Config—–UEFI—-ProtocolsAppleBootPolicy: 虛擬機的mac需要用的,我們選擇NO。 AppleEvent: 虛擬機並具有vault的mac需要用的,我們選擇NO。 AppleImageConversion: 重建apple圖標,選擇NO。 AppleKeyMap: 重建蘋果功能鍵,選擇NO。 AppleUserInterfaceTheme: 似乎是支持主題瞭?沒看懂,選擇NO。 ConsoleControl: 主機控制界面,我們選擇YES。 DataHub:重建datahub,這裡我們選NO。 DeviceProperties: 虛擬機需要,我們選NO。 FirmwareVolume: VAULT相關項,我們選NO。 HashServices: VAULT相關項,我們選NO。 UnicodeCollation: 舊的主板需要,我們選NO。 2.8.5 Config—–UEFI—-QuirksAvoidHighAlloc: 回避高位內存尋址,我們已經用瞭slide瞭,這裡選No吧。 ClearScreenOnModeSwitch: 好像是新的選項,暫時不知道幹嘛的,選No吧。 ExitBootServicesDelay:舊主板需要給予主板退出時間(單位為微秒),較新的主板直接填0。舊的主板比如Z87pro,填3000000-5000000 IgnoreInvalidFlexRatio:如果你沒有在bios中解鎖CFG,一定要選YES。 IgnoreTextInGraphics: 一些固件會同時輸出文字和視頻信息導致花屏,如果出現這種情況試試選NO,我這裡選YES。 ProvideConsoleGop:在選擇系統畫面前,你可能看到一些你config配置錯誤的信息,你可以根據這信息調整自己的配置,也可以選擇YES忽略,我選擇YES。 ReconnectOnResChange: 如果你遇到開機直到登錄界面之前一直是黑屏,請試試選擇YES。 ReleaseUsbOwnership:大部分的主板都有自動釋放USB所有權的功能,我們選NO。如果你開機鍵盤鼠標卡死瞭,或者USB失靈,試試選Yes。 ReplaceTabWithSpace:看不懂,選no。 RequestBootVarRouting: 如果你要使用”啟動磁盤” 選項,你需要選擇YES,這裡選擇YES。 SanitiseClearScreen: 清理屏幕分辨率,選擇YES。 2.9 小節到這裡,我們應該可以通過OC正確引導MAC OS瞭,但是還有很多問題需要去修補,包括模擬nvram,尋找EC控制器並做一個,原生的電源管理等。我會在下一個章節寫這些東西。 3.0 OpenCore 完善 4.0 OpenCore 進階

Z390各種問題解決方案(持續更新)

2019年9月2日 BY XJN·5條評論

我們的QQ群838739020非常活躍,讓我可以看到很多奇奇怪怪的問題,在大傢的探討下找到解決方案。考慮到QQ群的聊天記錄雜亂無章,我把一些精華的東西記錄在這裡。如果你碰到奇奇怪怪的問題,可以在此貼下留言,或者加QQ群。2019-10月 2019-09月archived

300系列主板正確使用AptioMemoryFix.efi的姿勢(重寫版)

2019年6月13日 BY XJN·25條評論

在OsxAptioFix2Drv-free2000的作者自爆出此插件最終會導致設備永久損壞後,對於z390用戶來說,換上最新AptioMemoryFix(AMF)已經變成瞭一件必要的事情,而我之前寫的AMF實在有點雜亂無章,讓很多人摸不著頭腦。我的博客裡面的文章也一直希望是給小白用戶看的,希望每個人都能看懂,基於我的初衷,我現在重新寫一次300系列主板使用AMF的教程。如果你是z390的用戶,並且實在需要幫助,也可以來我的qq群裡:838739020。關於OsxAptioFix2Drv-free2000作者對這個插件的影響陳述如下: 提一下這類補丁的作用就是修復內存,我這裡quote下@athlonreg版主的解釋:New set of memory fix drivers.OsxAptioFixDrv and OsxAptioFix2Drv reverted to rev before 4368 so without NVRAM support. Let them stay here for history. And sometimes OsxAptioFixDrv is only working version for high warped memory map.OsxAptioFix2Drv is a reduced version without relocation blocks and may not works on some hardware or with older OS version. But this version supported Hibernation while first one no.OsxAptioFix3Drv is a OsxAptioFix2Drv rev 4369 renamed to be different. This version supported NVRAM. More runtime fixes in 4379. This version can be improved by clover crew in future.AptioMemoryFix included in the package is third-party memory fix driver used as is. It is probably better then OsxAptioFix*. Choose it for a first attempt.OsxLowMemFixDrv is also memory fix driver, not improved since rev608.SIC! These 5 drivers should not be used simultaneously! Choose one of them!Slice的解釋,五選一,AptioMemoryFix優先考慮 事實上,我們的300系列是無法使用最優的AptioMemoryFix的,就算能用,也不能完全發揮它的作用在@黑果小兵的博客中他指出:300系列主板請於drivers64UEFI目錄中移除AptioMemoryFix-64.efi添加OsxAptioFix2Drv-free2000.efi該驅動位於/EFI/CLOVER/drivers-off目錄下 或者 Slide值獲取及計算 當然我需要指出的是,並不是所有的300系列主板都要弄得很麻煩才能用上,一些直接可以使用,但是並沒有完全用好它。根據作者的github,正確的使用它需要符合以下條件:

  • KernelPm 取消勾選
  • boot argument中添加自行計算出的slide值(參考方法二中黑果小兵的教程,如果不加slide值不卡加號,就別添加任何slide值)
  • BIOS中解鎖CFG
  • BIOS中CSM disabled
  • BIOS中EHCI/XHCI Hand-off enabled
  • BIOS中Above 4G Decoding enabled
  • BIOS中VT-d disabled

在我們開始一系列操作之前,我們必須確保你做瞭如下的步驟!這是必須一定要做的!

  • 在你的config.plist裡勾選kernelPM以及AppleIntelCPUPM
  • 一些主板包括華擎、華碩可以直接在BIOS中開啟關閉cfg,若你能在主板中直接選擇cfg lock,請確保此時的cfg lock是enable的。
  • 刪瞭原先在Clover/drivers64UEFI/下面的OsxAptioFixDrv-64.efi/OsxAptioFix2Drv-free2000/OsxAptioFix2Drv-64.efi 等內存修復補丁,並替換上AptioMemoryFix-64.efi (註意備份!)
  • 下面的操作過程必須按我的寫作順序來!

計算slide數值 解鎖BIOS中的CFG功能 關閉kernelPM以及AppleIntelCPUPM 最後你需要重啟電腦,我們可以通過hackintool來查詢cfg是否解鎖:1.點擊工具2.點擊下面的intel圖標,輸入你的管理密碼,稍等一會,便會輸出內容3.在內容中你可以看到cfg lock這個選項,我們看到已經是not locked瞭!

小彩蛋1小彩蛋2你所需要的文件:CFG

Z390主板從WINDOWS重啟到MAC後不斷重啟的解決方案

2019年5月15日 BY XJN·2條評論

因白蘋果並沒有使用過我們的Z390芯片組,使用Z390芯片組的黑蘋果會出現各種電源相關的問題,比如:1)關機變成重啟,2)從WIN重啟到MAC後不停自動重啟。那我們這篇文章主要解決這兩個問題。 Config.plist設置:這裡我們要把關於原生電源的設置都確認一次。在ACPI欄目裡,關於LPC的設置全部不勾選,Plugintype不勾選。

在KERNEL and KEXT PATCHES欄目裡,不要勾選關於PM(power management)的選項,但是不知道為什麼,如果我不勾選KernelPm,我的MAC會無限重啟,所以不得不勾選。

補丁設置:1)確保在EFI/CLOVER/drivers64UEFI/ 目錄下有EmuVariableUefi-64.efi這個文件,這個補丁是幫助我們模擬NVRAM的,你也可以點我下載(已過時)。 2)下載最新的CLOVER安裝包,你也可以點我下載(已過時)。打開安裝,點繼續,直到看到“自定”這個選項,我們主要勾選紅框內的兩項,別的默認就行。

安裝完成後,重啟1-2次,你會看到EFI目錄下多瞭兩個文件,這就是我們模擬出來的NVRAM文件。

BIOS設置:開機進入BIOS設置,轉到POWER這裡,我們開啟platform power management, 但是必須關閉PCH的電源管理;如果你使用核顯,PEG的也要關掉。OK,這樣就設置完瞭,再試試WIN重啟到MAC吧。

Gigabyte Z390 Elite, with RX580&Thunderbolt3 Card Bilingual Guide

2019年5月14日 BY XJN·0評論

最近組裝瞭一臺Z390,花瞭幾天時間,已經完美黑蘋果瞭,記錄一下其中的過程。當然,我不會把整個EFI分享出來,隻會提供重要的文件,我希望這篇文章是一篇教學帖,而不是分享帖,嘻嘻嘻。如果你需要更多幫助,加QQ群:838739020I recently bought a hackintosh with Gigabyte Z390 motherboard, and now it is perfect. I am glad to share the process of hackintoshing, but of course will not share the EFI, I hope this article cloud be a lecture of hackintosh for you, rather than merely sharing the outcome. This article provides Mandarin and English versions, also some important kexts, tools and ssdts are attached. Outcomes/成果展示Downloads/下載 Appreciation/感謝 感謝以下四位作者對我的啟發/ Many thanks to these hackintoshers’ helps:CaseySJLeleTurattiRehabMankgpConfigurations/配置

  • Motherboard/主板: Gigabyte Z390 Elite
  • External Hard Drive/硬盤: Samsung 970 Pro M.2 NVMe SSD
  • CPU: I7-9700K
  • Graphic Card/顯卡: Sapphire RX580 8G D5 OC
  • Wireless Card/網卡: BCM943602CS 3-Antenna
  • RAM/內存: ADATA 16G DDR4 3000MHz X2 (OC to 3200MHz)
  • Tower Case/機箱: SKTC Q5
  • Others/其他: Gigabyte GC-Titan Ridge Thunderbolt 3 Card / Qnap QNA-T310G1T Thunderbolt 3 to 10GbE Adapter
  • Monitor/顯示器: LG Ultrafine 4K & KOIOS 2418U (Daisy Chain Supported/菊花鏈支持)

Functions/功能

  • Sleep&Wake/睡眠喚醒: OK/正常,藍牙鍵鼠喚醒需要按電源鍵
  • Bluetooth/藍牙: OK/免驅,正常
  • WIFI: OK/免驅,正常
  • wired Internet有線網卡: OK/正常
  • Audio聲卡:OK/ 正常
  • CPU Frequency/變頻: OK/正常
  • Thunderbolt Card/雷電卡: OK, hotplugin supported/正常,可熱拔插
  • Graphic card/顯卡: OK, H264 & HEVC Supported/硬解正常
  • Hand Off: OK/正常

English Version 中文版

Asrock deskmini 310-com hackintosh 10.14-10.15 EFI

2019年5月13日 BY XJN·62條評論

之前博客被毀瞭,哎 搬瓦工太垃圾瞭,這裡補上我的EFI。My Blog was destroyed…… 此EFI支持如下功能/ This EFI supports:

  • 雙屏輸出 Dual monitors output through both HDMI&DP
  • 3.5mm耳機音響雜音消除 3.5mm audio crackle elimination
  • 全版本BIOS支持 All Bios versions support
  • 商店、淘寶等視頻凍屏消除 App Store video freezing fixed

配置/Configurations

  • Motherboard/主板: ASROCK 310-com
  • External Hard Drive/硬盤: Asgard AN 512 M.2 NVMe SSD
  • CPU: I5-8400
  • Wireless Card/網卡: dw1830
  • RAM/內存: ADATA 16G DDR4 2400MHz X2
  • Functions/功能
  • Sleep&Wake/睡眠喚醒: OK/正常
  • Bluetooth/藍牙: OK/免驅,正常
  • WIFI: OK/免驅,正常
  • wired Internet有線網卡: OK/正常
  • Audio聲卡:OK/ 正常
  • CPU Frequency/變頻: OK/正常
  • Hand Off: OK/正常

BIOS設置/BIOS settings

  1. Load UEFI Defaults
  2. Advanced
  • Onboard HD Audio: Enabled
  • USB Configuration, XHCI Hand-off, Enabled (關鍵)
  • Super IO Configuration, Serial Port, Disabled(必須)
  1. Security Secure Boot, Disabled(by default)
  2. CSM disable
  3. CFG Lock: Disabled (關鍵,在cpu的c-state/status設置裡)

超級小白教程/A VERY IDIOT GUIDE如果你實在實在實在不知道怎麼弄EFI的話,你可以下載我打包好的整套MOJAVE 10.14.4鏡像,這個鏡像包含瞭V3.0的EFI,也就是說,你通過etcher或者Transmac等軟件把鏡像寫到U盤後,重啟通過U盤引導就能直接安裝瞭!連EFI你都不用改!我推薦使用Etcher,因為它支持在MAC, Linux和WINDOWS下寫盤。要註意的是,第一次U盤引導進去,你要選擇install mojave,然後抹盤,安裝,第二次重啟後,你需要選擇你的安裝硬盤進入,期間可能會重啟1-3次,就行瞭。 If you really really do not know how to put EFI in a correct location, I provide you a MOJAVE 10.14.4 image with EFI combined, which means, you could write the image to your USB flash disk through etcher, transmac or other softwares, then plugin your USB flash disk, restart the rig, boot through the USB, install the MAC directly. You don’t even need to know how to place the EFI! I recommend you Etcher, because it supports Windows, Linux and Mac environment. Be aware, booting through USB, you should ease your target hard drive, and install mojave to that hard drive, system will restart automatically at the first stage, then you need to select the target hard drive at the second stage, and system may automatically restart 1-3times, which is normal.

Image download/鏡像下載地址: ————————————10.15.1下載地址如下——————————————————請準備大於10GB的U盤!鏈接:https://pan.baidu.com/s/1vzh03nAskHNRa6sdUVo6Yg 密碼:4w60 MD5: 4f830a52d1924dabc77e49526319171bSHA1: f51b60c52f2390a464d7bea2555c355980012d63SHA256: af659e3a06d6388ef17256d22169dfee1a44c8c56bd804ad6d6aef036031179eCRC32: f3902045 疑問解答/Q&A EFI下載/EFI Downloads 31-Oct-2019 OpenCore V3.0所有補丁及內核已經更新到oc 0.5.2正式版,config中同步加入相應variable。Deskmini-310-Opencore-V3.0Deskmini-310-Opencore-V3.0-強制睡眠特別版 25-Oct-2019 OpenCore V2.2通過禁用AWAC來實現BIOS 3.1以上版本的卡RTC問題。重命名是我非常不建議的一種方式,會破壞ACPI表結構,並且這樣的重命名可能會帶來睡眠問題/win無法登陸等,所以這次直接禁用AWAC來實現瞭。APPLEALC已經可以通過DP/HDMI播放聲音並且睡眠喚醒後不會重啟瞭,犧牲瞭節能五項,還是等待APPLEALC的更新吧。至於我為什麼一定要推崇iMac 19.1這個機型,是因為這個機型不需要T2芯片,並且我自己使用的也是這個機型,比較瞭解這個機型的一些設置。另一方面,這個機型的變頻很有潛力,我非常喜歡。 Deskmini-310-Opencore-V2.2 24-Oct-2019 OpenCore V2.1.1小糾正Deskmini-310-Opencore-V2.1.1 22-Oct-2019 OpenCore V2.1修復因applealc引起的睡眠變重啟。修復virtualsmc release版本引起的卡代碼。Deskmini-310-Opencore-V2.1 21-Oct 2019 OpenCore V2.0 大版本OC版本升級,支持mmiowhitelist。CPU整體優化,機型更改為iMac19.1,USB重新定制,節能五項PPMC加載,USB供電優化。請自行更改三碼!自行安裝logouthook!自行安裝第三方網卡驅動!Deskmini-310-Opencore-V2.0 14-Oct 2019 Opencore v1.2更新說明包。Deskmini-310-Opencore-V1.2Deskmini-310-Opencore-V1.2-1820A感謝群友@大勇12-Oct 2019 Opencore v1.1OC版本升級。加入nvram補丁包。Deskmini-310-Opencore-V1.1 11-Oct-2019 OpenCore v1.0修復聲卡問題,修復睡眠問題,修復EC控制器問題,修復BIOS RTC問題,支援10.15正式版。Deskmini-310-Opencore-V1 ———–我以後不會對Clover進行支持———————19-Aug-2019 v3.4支援10.15beta5, 修復10.15下的聲音問題(測試)support 10.15 beta5, fix sound issue under 10.15(test)3.4 09-Aug-2019 V3.3清理代碼,適配CLOVER新的文件夾格式。 3.3 22nd July 2019 V3.2清理一些不需要的kext, 更新kexts和clover版本。更新支持9代cpu,更新支持14.6-10.15beta4。cleanup&update clover version and kexts; support 9th cpu, support 14.6-10.15beta4. 3.2 7th June 2019: V3.1支援14.5以及15beta1,但不建議升級測試系統。雙屏請確保線材帶寬充足,如果是戴爾顯示器,請用戴爾作為hdmi屏幕。14.5抹盤安裝可能會碰到2-3次顯示器丟失信號,請拔插顯示器。 Support 14.5 & 15beta, but not suggest to upgrade to beta OS. dual-monitors plz ensure your cables are of good quality; If you have a dell monitor, pls set it as a hdmi screen. You may encounter 2-3 times signal losses from your monitor during installing 14.5/15beta OS, pls hot plug out-in your screen.Download 21st May 2019: V3.0重要提示!暫不支持10.14.5!!!!我已經賣掉瞭我的310COM,所以無法再對10.14.5做及時的更新,很多都是需要靠群友幫忙一起弄,尤其是10.14.5對顯卡有很大的改動的情況下。我還會去更新,但不會那麼及時瞭,謝謝大傢! IMPORTANT NOTE! CURRENTLY NOT SUPPORT 10.14.5!! Since I’ve sold my 310-com, I may no longer be able to update the EFI in time. Currently I update the EFI through my chat group’s members’ contributions. Especially under a huge change of 10.14.5’s graphic card drive, I really cannot fix it in time, but I will continue to update. Thanks everyone! Download 17th May 2019: v2.9對不起之前打包錯瞭!這次發新的!Sorry I made a huge mistake that I packaged wrong files, this one is fixed.替換完成後,記得打ALCPlugFix的3.5mm音頻補丁哦!點install.command就行。 please run “install.command” in the ALCPlugFix to patch 3.5mm devices’ output issue, after replacing EFI. 10.14.5開始,蘋果對顯卡進行瞭改進,如果你有雙屏的需求,請不要升級10.14.5,並且盡可能使用DP,哪怕是dp轉HDMI也好。Apple has made some improvements for graphic cards in 10.14.5, this made dual output invalid. If you need dual monitors, stay away from 10.14.5, and using the DP connector. Download 14th-May-2019 v.2.7:支援10.14.5; 支援全版本BIOSSupport 10.14.5; support all BIOS versions Download V2.6修復雙屏download