本帖最后由 torry208 于 2019-12-16 06:42 编辑
第一,以vanilla的config为基础(https://hackintosh.gitbook.io/-r-hackintosh-vanilla-desktop-guide/config.plist-per-hardware/skylake),页面左边选合适的CPU代数,然后到页面最下面点击sample config.plist here,转到github下的源码,点击raw,拷贝到文本编辑,选制作纯文本,然后以默认参数保存,改名config.plist。vanilla的config当然也需要修改,但它有一大好处,针对主板和对应CPU的基础设置一般来说只会有多余,不至于会出问题(不特化针对固定某个品牌或硬件,用了它intel的核显至少没问题)。
第二,一般来说可以上最新的clover,OpenCore还不够完善,但很值得期待,根据clover代替cameleon的历史,预估2021年OC将会成熟可用,话说回来,clover configurator家官网有OC的Configurator了。
第三,Github上virtualSMC的readme要看,whatevergreen的各种文件都要细看,特别是readme,manual的各种FAQ还有shiki的源码(注:现在weg和lilu对于已经成熟的系统,也就是出到补丁号5或6的系统大版本,是不再需要开启beta功能了,包括对老系统也一样,因为默认如果需要的话,已经开了)。不要乱七八糟找一堆success成功文来看,容易弄乱思路,而且人家成功的标准未必很高,稳定性以及独显硬解等特殊实现估计都未必做到了就success了,除非是要破解笔记本,一般我不用success文,顶多出问题时找来参考。这样的看与不看其实最省学习时间,有一定经验的黑果安装者这样做也最省破解时间。
第四,一般来说安装结束时需要把所有kexts安装到/L/E里面来,之后设置clover读取/L/E里的kext就好了,EFI里面的kext也留下来以防万一,但不在日常中使用,因为日常使用EFI里面的kexts会增加系统的不稳定性,严重时甚至导致硬盘数据丢失。安装kext到/L/E里以后,自10.13及10.14,还有刚发布的10.15,都需要LiluFriend来提前加载部分kext,否则会驱动加载失败,如果用的不是FakeSMC而是VirtualSMC的话,virtualSMC家基础三个kext如果不提前甚至进不了系统。需要LiluFriend提前加载的kext一般有这些:VirtualSMC家三个基础驱动(笔记本上则是五个全上),WEG, Lilu。其余的kext部分提前加载也是可以的,但不必须,还有部分kext不能提前,否则进不了系统,具体原因想想系统加载的顺序就能猜到了。
第五,AppleALC需要看看github的release页面,找找自己声卡的型号有哪些inject ID可用,这能大幅度减少试错的时间。
第六,USB要解决的话,一开始当然是带USBinjectAll和突破USB口数量限制补丁,等用hackintool做好usb的USBPorts.kext(mojave及以上版本),或者包括了SSDT-EC.aml(High Sierra及以下),就禁用补丁,删掉USBinjectAll,把东西拷贝到位就可以了,如果把这个Kext放进/L/E里面去,不知道是否必要提前,但用LiluFriend提前载入是可以的,另外,在已经做了usb图谱后,再次更改config的smbios是需要慎重的,改它的同版本4码结果是需要修复/L/E的权限,改成不同版本会导致USB图谱需要重做,因为原来的两个文件里都标注了你的系统SMBIOS的机型号(Board-ID)。
第七,网卡驱动经常容易不稳定,至少AppleIGB在mojave及以上是彻底废了,Myricom家的老网卡也是废了,所以买老型号的服务器网卡需要特别谨慎,intel家的服务器网卡尤其要谨慎。就算是集成网卡那些垃圾,过于新的驱动版本也是很危险的,一般来说必要用版本号上带b(beta)字样的,如果要用,请这个b后面的数字上12了再说。
第八,config做好以后总是要有一个backup版的放在旁边,这样才可以安心修改调试而不担心开不了机。
第九,config里面的设置条目如果不需要了不要删掉,要禁用,这样以后再需要了不用费心去找来拷贝。drivers(efi文件)和Kexts文件同理,最新的Clover以及OC里面都有Off文件夹了,另外,也可以开机时在clover引导界面的option里关掉这些东西,而不是直接删掉,万一删了开不了机,你要找回来就很麻烦了。
第十,HFS.efi看来已经不再更新了,最近6年来的HFS+格式都不需要更换vboxHFS,直接用那个转了无数道手的老HFS.efi就没问题,毕竟原装货,不像vboxHFS是从linux上玩家自己改的。
第十一,在最新装黑果的时候,APFSDriverLoader.efi和apfs.efi其实没区别,都是每出了新版本就要找新版本的这两个东西来用,APFSDriverLoader.efi关键是用于兼容旧版本,特别是一台电脑里装了2个苹果系统的情况下(一个日常使用或用来试验新的黑果手法,另一个苹果系统用来救玩崩了的苹果系统)。
第十二,目前已验证Drivers文件夹下,BIOS放ApfsDriverLoader.efi和VirtualSmc.efi就好了,至于A卡下UEFI文件夹则需要ApfsDriverLoader.efi和VirtualSmc.efi,HFSPlus.efi还有OsxAptioFix3Drv.efi,其余的在10.14.5及以上版本中目前不再需要。至于N卡下则问题多一些,最大的问题是用它,除非是苹果原生支持的显卡型号,否则一旦要装Nvidia家的驱动,系统版本最高就只能到10.13.6。这样UEFI下就要多两个文件:DataHubDxe.efi不确认是否必须(懒得试验了),还有EmuVariableUefi.efi来帮助Nvidia家驱动正常加载。
第十三,Kext下一般的必备项是: lilu, weg, virtualsmc家的基础三个,USBPorts.kext, DiskArbitrationFixup, AppleALC,AHCI_Intel_Generic_SATA,HibernationFixup以及网卡驱动。至于其余的,使用Clover的话都可以在里面解决,而不需要增添kext,但是使用kext来解决也有好处,如果这个kext更新得快的话,一定比要照顾到方方面面的Clover团队能解决的问题更多,比如RTC问题用RTCMemoryFixup解决比在clover里面解决要省心,因为clover为了要兼顾10.6-10.15这么多代的系统版本和不同的硬件,就是解决同一个问题比如RTC,也分为3个不同的复选框,每一个对应的都是不同的系统或机型下的解决方案,还不能无脑3个一起选,用起来反而不如专门做这个的kext,kext很多都可以自动侦测你的系统版本,机型和你的硬件,然后自动选择合适的修补方式。
第十四,config的ACPI里面插件类型要选,MATS和DMAR一般两个都选死不了人,但其实很多kext已经能保证它一个都不选也可以了。引导参数里面,keepsyms=1必选,debug=0x100在啰嗦模式下可以在系统引导失败时留着看失败前最后的输出。lilucpu=N还有shikigva=32+X, shiki-id=SSSSSSSS必须,虽然没它没问题,但如果后面需要为了硬解或解除DRM而到处变SMBIOS的话,它就是定海神针一样的东西。其中X在用N卡的时候为4,在用I卡的时候为1,在用A卡的时候为8。SSSSSSSSSS可以在SMBIOS里面通过选机型然后看board-id来得知,把对应型号的board-id整个拷贝过来就是SSSSSSSSSS,N的具体数字: 1 penryn 也就是酷睿1代 2 nehalem 也就是酷睿2代 3 westmere 也就是i系列第一代 4 Sandy Bridge 自此以后I系列代数可以直观看得到了 5 Ivy Bridge 6 Haswell 7 Broadwell 8 Skylake 9 Kaby Lake 10 Coffee Lake 11 CANNONLAKE 12 ICELAKE
第十五,安装N卡一开始要使用核显亮机,安装系统时使用nv_disable=1装系统,之后升级到所需系统版本后,需要先在设备设置属性里把核显和声卡的属性都做好合并进config,核显正常来说都是选无接口无缓冲帧的版本(A卡下则可以做接口),再在安装Nvidia家驱动时,把nv_disable=1改为nvda_drv=1,加shikigva,启用NvidiaWeb,安装EmuVariableUefi.efi到Drivers/UEFI,等驱动安装完毕后重启,之后再安装CUDA驱动。N卡下核显要启用而A卡下用imacpro核显必须关闭。
第十六,hdmi或dp口不需要连带声音一起输出的话,就上-ngfxnoaudiocon,-igfxnohdmi。A卡也有这种东西,看weg的github的readme就好,这样可能能规避未来的麻烦。
第十七,引导界面里扫描只选Entries和工具,最极端就是自定义条目然后扫描项一个都不选,这样不管原来scan阶段多慢,现在都会快得飞起。但这么做,一旦之后没注意就改了磁盘UUID或者更换启动盘,那就准备拔硬盘或重装吧。隐藏卷里至少要有Microsoft, Windows, BOOTX64.EFI, Preboot, Recovery这几个词。
第十八,显卡选项就是用来留空的,一个都不要选,但是注入intel需要点上再点销,否则config里面不会有inject intel=no这一条,那么默认这一项开启,其实同样设备设置里面有个属性的注入也是要点上再点销的。
第十九,如果不纠结HWP的话,内核和驱动补丁里面要有内核电源也就是KernelPM选上,之后Kexts补丁至少要有External icons和TRIM,还有一个被禁用的USB解除上限补丁。这里说一嘴HWP,这玩意没那么神奇,所谓使用白果原生电源管理能提升性能什么的很扯淡,能省点电到是真的,但也不一定,clover的插件类型Plugin inject和hibernationFixup能做到的有时候反而更迅捷靠谱。
第二十,变量设置中Booter要是0x28,Csr要是0x3,这样和白苹果最相似,也就会最安全,当然这样要用破解软件需要用一次性特殊命令行sudo xattr -rd com.apple.quarantine +拖拽软件上来,不要用sudo spctl --master-disable,看似一次搞定,首先对于部分破解软件这样仍然无法搞定而需要用回一次性命令行,其次这样系统将不再安全。
第二十一,系统参数除了万年不变的注入System ID要选,另一个就是注入Kexts方式了,这个选Yes就只用EFI里面的Kext,如果选Detect则先在/S/L/E或/L/E里面找fakesmc或virtualSMC,如果找到了,就抛弃EFI里面的Kext而只加载/S/L/E或/L/E里面的东西,自从10.13以后,安装驱动都应该在/L/E里面。
第二十二,最后一条,机型设置,也就是SMBIOS里面的东西是写给苹果系统看的,有什么特殊功能或者缺点都是系统带来的,但shikigva=32+X,shiki-id=SSSSSSSSS则是写给Clover和如Lilu, WEG这样的kext看的,要想系统正常运行,shiki-id一定要写你的硬件所对应的机型的Board-ID,但要想改机型来欺骗系统,让系统给你独显硬解码或者其他兼容性功能,则要在机型设置也就是SMBIOS里面骗系统。一般来说,A卡只要是在Apple家外接显卡兼容列表里面的,都可以选imac pro机型来骗系统,shiki-id也可以写imac pro的,这样核显就废掉了,启用独显硬解(A卡别想核显和A卡一同搞硬解,就算白苹果iMac也做不到,白苹果只是桌面用核显干活上独显硬解而已,如强行搞imac pro的核显和A卡共存,要么进不了系统要么系统稳定性差,且性能提升不到5%)。N卡则shiki-id要写核显真实适配机型,SMBIOS里则写iMac14, 2,只有iMac13, 2和iMac14, 2能开启Nvidia的硬解,但就算这样大疆设备的素材解码还是需要用到核显硬解,如果没有核显就会沦落到CPU软解。
最后,这是我在pcbeta写的第二篇技术帖,希望大家喜欢,另:转载需付费,否则请勿转载,有约稿需求请发邮件至tangyi1118@foxmail.com,专门约稿可以写详细到step by step的程度。本文上传于2019年10月11日晚9点51分,如有争议,请看发帖时间先后。
--------------------------------------------------------------------
更正说明:
随着对黑果的深入了解和对WEG各文档的仔细阅读,我更正第二十二条,SMBIOS和shikigva=32+X都是写给MacOS看的,但一个是写给系统整体看的,一个是写给AppleGVA和AppleVPA看的。白果有独显机型的核显也不只是用于桌面显示,还用于充当类似T2芯片一样的职能,就是接受系统对显卡的任务并根据机型的档次转交合适的任务给独显,如果核显没黑好,独显会接不到任务,当然,如果你根本就没有核显,那反而没事了,至少在mojave及更老的系统下是没事了,catalina下则需要补丁kext来让没有核显的独显独自承当所有显卡工作,而且这个补丁已经集成在了最新的WEG 1.3.6版中,但是这个补丁我看过了(目前所有不同名字的这种补丁kext其实质都是同一个补丁),仍然觉得问题很大,在WEG的作者没有更加完善它之前,我仍然相信这个补丁没法完全实现白苹果的性能,Mojave 10.14.6仍然是不用Vega系列或5700卡的影音制作者最好的系统版本。
|