黑苹果从入门到精通 篇十一:K39小钢炮黑苹果实践
本来从第三篇开始是基于一台没有任何参考的电脑,逐步逐步从零开始给大家展示黑苹果优化修复过程,可惜在第五篇结束后OC Formula主板损坏了,于是第六篇重新装了一台X99电脑,然而X99有非常详细现成的资料,导致黑苹果一步到位,大家也学不到啥,这次尽量延续第三篇的意图,后续会把每个步骤都详细列出来,这次引导器将基于OpenCore 0.5.6,未来我也不再会回Clover。
BIOS设置
主要就是CFG Lock vt-d FastBoot CSM需要关闭,不过我这块主板的BIOS没有CFG-Lock设置项,我又不想重刷BIOS,所以考虑使用setup_var来修改BIOS不可选项。
经过extract得到CFG Lock信息
可以看到默认为Disable,所以省事儿了,不需要做进一步修改。 同理,这个方法还可以对DVMT进行修改。
Clover创建Catalina启动盘
如何创建Clover引导U盘和配置方法已经在篇三中讲过了,没有看过的朋友点下面的链接。
下图是我的目录结构,根据我自己的需求调整了Kext,config.plist随手从黑果小兵repo中找的一个,反正都是可以调的,只要知道每一项的功能和可能造成的效果就行了。
10.15 Catalina对EC的名称做了规定,很多主板的EC ACPI名称为EC0或H_EC,需要将其改为EC(这种就只有一直关注黑苹果的人才知道了),从DSDT中可以看出,华擎Z170m ITX对应的EC名称为H_EC。
所以我们要在ACPI热修复中加入对EC的补丁
很多人可能会好奇热修复中的Find和Patch中一串数字是怎么来的,这个实际上是字符串改十六进制,例如H_EC就是485F4543,H对应48,_对应5F即缺失,45对应E,依次类推,尽量四个四个一组,即使EC这样的两个字符后面也要用__填补,所以EC的查找是EC__,Clover Configuration带了这个小工具。
如果你不是用编辑器打开会发现对应十六进制变成了一串奇怪字符串,这是Base64加密后的十六进制数,找个工具翻译过来就行。
除了这个EC补丁外,我还加入了RTC Fix,据说是很多Z390主板会卡apfs_module_start,但是很多教程传的云里雾里的,说华硕华擎微星,我特么蛮久没用Clover了还真不太清楚......
没啥好说的,反正试试又不会死,我是先加入了但没有启用,万一启动真卡了这边儿顺手一开就行了。同理我还加了HDAS to HDEF(音频),HECI to IMEI,GFX0 to IGPU,PEGP to GFX0(这三个都是显卡有关,第二个是核显的修复),这些是根据这块板子的DSDT需要做的针对性的修复,但其实现在很多事情Kext都帮你做好了,所以也没开,如果Kext没起效再开。
哦对了,ACPI设置里不要忘了Plugin Type=1,六代以上开启这个就能启用CPU原生电源管理了。
在Boot-args中我加入了shiki-id=Mac-7BA5B2D9E42DDD94和shikigva=40,这个本质上是仿冒iMacPro1,1实现独显硬解码,因为我贼心不死,虽然6400T核显在Windows下就感觉变频怪怪的,但这不是还能用嘛,所以我选了iMac18,3想搞个核显加速,事实证明我是在想peach。如果你就用独显硬解,没有核显,就直接选iMacPro1,1的SMBIOS就行啦。
另外作为第一次启动,-v keepsyms=1 debug=0x100也是不可或缺的,这样出问题了才有空拍照查资料。
比较诡异的一点是HWP Enable,在我的印象中是要这个开启+plugin type=1才能完整开启变频,但是根据我后面实测的结果,开启这个会导致CPU频率卡死在2.4Ghz不变,虽然负载和功耗都在变,但总归很奇怪,关了就可以正常变频,这个真的有点让我吃惊,我猜测啊(真的是猜的),plugin type=1就足够让几个变频kext正常加载,但是开启这个会让macOS去套系统内相近的CPU变频,如果是6700K这种普通的U应该没啥问题,但是6400T这种最好还是关了这个让主板控制,(如果我记错了这里变频不用开HWP Enable请评论告诉我,但是我真记得是要开的)
设备设置这里主要是两个属性注入,声卡和核显加速,框框左边是设备路径,右边是属性注入,我还很有梦想的配置了核显缓冲帧注入,嘿嘿,事实证明不行。
很多人看到这里估计要发问了,那怎么才能知道设备路径是多少?注入参数是啥?一般来说设备路径都是比较固定的,大部分主板的声卡就挂在pci(0x1f,0x3)下,不用改,核显也是pci(0x2,0x0)路径
如果核显加速就需要一个属性,注入AAPL,ig-platform-id值0x19120001(这个是HD530的headless id值),然后我们需要两个两个一组分成四组,再倒着写,就变成了01001219 ,具体可以查黑果小兵整理的《黑苹果必备:Intel核显platform ID整理及smbios速查表》
如果你是核显输出不是独显输出,那请参考黑果小兵的《教程:利用Hackintool打开第8代核显HDMI/DVI输出的正确姿势》,感谢黑果小兵,整理的很好,照着教程做就行了,很简单。
音频驱动其实很简单,目前都是AppleALC+Lilu驱动,得益于网友们不断的贡献,AppleALC已经包含了大部分的声卡芯片布局,我们只需要一个个试layout-id即可,hackintool可以非常方便的完成这个工作,首先找到音频部分,尝试选取一个layout-id
然后在菜单栏中点击文件-导出-引导文件config
不用担心会覆盖你原有的config,实际上他只是填充了对应的音频属性。具体的layout-id可以查看github上的AppleALC库中的WIKI或打开AppleALC看实际布局情况。如果说很不幸你的声卡没有适配的layout-id,说明需要你自己动手做一个,黑果小兵也做好了具体教程,但是但是!台式机一般是不需要从头做的,基本上看后面是3口还是6口输出都能定下来了,而且很多时候6口输出的声卡布局是可以适配3口输出的,如果你不会看布局,从1试到9一般就行了。
再讲讲引导界面的设置,首先是扫描部分,不要使用自动模式,自定义模式中,Entries是必须要的,除非你还装了Linux,不然Linux也不用勾选,Legacy不要选,不然你会发现有一堆硬盘出现在引导项中,右边隐藏卷可以用来隐藏不需要的Volume,例如Preboot和Recovery,除了名称外还可以通过Volume/Disk UUID来隐藏卷,UUID可以在Clover界面按下F2(好像),preboot.log会保存在misc中(好像),这些隐藏的卷通过F3可以在引导时切换隐藏与否。
内核补丁方面也要强调一下,黑苹果小白真的太多了,很多人会拿着-v输出来问我卡这儿了怎么办,然后上来的图长这样(随便找了张图,发现很多人在远景问连图不上,只说卡在in memory panic stackshot succeeded后自动重启,这样鬼知道什么原因导致的)
其实上面的信息都是无用的信息,它只是macOS引导在出错后整理加载的相关组件,并打包成log的一种方法,实际上错误输出在这些的上面,所以我们需要勾选PanicNoKextDump!
这样输出的结果就可以看到了,例如下图所示,这是我在调试核显加速时的报错,Kernel Extension in backtrace后面才是真正的报错信息,不过这玩意儿输出的信息和C++编译的报错差不多,就算输出了也不一定能理解究竟是什么原因,例如我们可以知道是X86PlatformShim导致的连锁错误,但是这玩意儿是和变频有关的,具体是怎么错又不清楚,只有我这样正巧在调试核显导致才能明白是核显变频出问题了。
另外没有定制过USB接口的要添加USB Limit Patch,PMheart出品。
Comment: USB port limit patch #1 10.15.x
Name: com.apple.iokit.IOUSBHostFamily
Find: 83FB0F0F
Replace: 83FB3F0F
Comment: USB Port limit patch #2 10.15.x
Name: com.apple.driver.usb.AppleUSBXHCI
Find: 83F90F0F
Replace: 83F93F0F
至此配置结束,剩下就是不断的调试了。
完善的一些心得
首先肯定是一次点亮进系统了,不过后面完善的时候出现了一些问题,把修复的过程简单说一下。
CPU变频
这个前面就已经提到了,在我的印象中六代以上CPU变频是通过PluginType=1和HWPEnable来实现的,但是在我的测试中发现CPU频率锁死在2.4Ghz,功耗和负载正常,一开始我以为是SMBIOS选取的问题,从iMac18,3切换到了iMac17,1,结果发现没有区别,关闭了HWPEnable后成功变频,原因不详。
独显变频及硬解
对于AMD免驱显卡,加入WhateverGreen即可,硬解需要iMac Pro或者使用仿冒参数。
WIFI蓝牙及网卡驱动
往Kext文件夹扔驱动就行了,看往期文章,但需要注意的是现在蓝牙驱动需要BrcmBluetoothInjector.kext/BrcmFirmwareData.kext/BrcmPatchRAM3.kext三者搭配,篇五驱动方法过时了。
定制USB端口
另开一篇文章吧,这里不想写了,我被催的最多的就是USB定制,马上回头赶出来,真心超级简单,为什么这么多人不会。不要迷信hackintool,它对USB Port的识别可能会出错,最关键的还是要靠IORegistryExplorer。
睡眠唤醒
这个是个比较复杂的问题,牵扯到方方面面,但很多时候和USB有关,例如典型的睡眠秒醒,一般就是USB有Bridge、Hub或者蓝牙没有内建。我这次碰到的比较奇葩,可以正常睡眠并唤醒,但是唤醒后系统卡飞,而且键盘输入有问题,查阅资料得知一般是需要添加VoodooTSCSync.kext修复,这个驱动很老了,上次我用它还是在第一次玩X99的时候(2016年吧),RehabMan出的最新版不需要修改核心数,所有机器都可以用。
蓝牙键盘对码
一个比较实用的小技巧,很多人喜欢用蓝牙键盘,毕竟没有凌乱的线材,希望一把蓝牙键盘能无缝在Windows、macOS甚至Clover BIOS中都能使用,但是很可惜,Clover和BIOS使用需要苹果原装卡,而且还要主板固件支持,退而求其次,双系统使用蓝牙键盘如何实现?
首先需要把这把蓝牙键盘在Windows下进行配对,例如我手头K380支持三台设备,使用1设备连接到Windows,接下来重启到MacOS下,同样使用1设备配对,但是两个系统配对对码方式是不一样的,所以产生的校检码也不同,我们要做的就是把Windows改成和macOS一样。
下载bt.py(后面会给下载链接),这是一个翻译脚本,在Terminal中拖进去执行,会在桌面生成一个btfix文件夹,里面有BTFix.reg,这个就是我们需要添加到Windows的注册表中的文件,拷进U盘,重启进入Windows,但是这块对应的注册表我们是无法修改的,所以需要pstools打开注册表(这个也在后面的网盘里面),在cmd中打开pstool所在文件夹,输入psexec -s -i C:Windowsregedit.exe打开注册表,然后同样用编辑打开BTFix.reg,将对应的注册表区域照着BTFix.reg修改好,重启就完成了。
双系统时间同步
不说了,翻前面文章
下载链接
我把一些常用的黑苹果工具上传到了网盘中,供大家下载使用。百度云链接 提取码w6u1
Philli仔
校验提示文案
唐少游
校验提示文案
柏大神
校验提示文案
[已注销]
校验提示文案
edaooo
用的OC0.53的EFI,现在有个问题就是使用中如果有几分钟(约3-5分钟>没有键盘或者鼠标的交互输入就会死机,只能重启,一直使用的话没有任何问题, 主动选择sleep的话会无法唤醒, energy saver选项关闭sleep也无法解决上述问题,请问可能是什么方面的问题呢?
校验提示文案
鹦鹉螺号鹦鹉洲
校验提示文案
ceore
校验提示文案
S2nake
校验提示文案
值友4248172464
校验提示文案
逗腐
校验提示文案
见风致
校验提示文案
DDavids
校验提示文案
pangolin
校验提示文案
这冬天不太冷
校验提示文案
wise1808
校验提示文案
勒紧裤腰带过日子
校验提示文案
Philli仔
校验提示文案
RainFlying
校验提示文案
最爱冷咖啡
校验提示文案
开心的柿子
校验提示文案
值友1913792878
校验提示文案
贇个咚
校验提示文案
值友4177232275
校验提示文案
Dream_TW
校验提示文案
值友5600589264
校验提示文案
见风致
校验提示文案
逗腐
校验提示文案
柒秒
校验提示文案
十分钟泡面
校验提示文案
十分钟泡面
校验提示文案
值友4248172464
校验提示文案
Moontsai
校验提示文案
我是小董
校验提示文案
S2nake
校验提示文案
Tony_G
校验提示文案
明日隔山岳
校验提示文案
OOxxTao
校验提示文案
gHome
校验提示文案
摩托首席执行官
校验提示文案
何不二
校验提示文案