本系列文章预计4篇:
1.装机展示
2.BIOS魔改
3.黑苹果折腾
4.黑苹果展示
本教程参考:
- 司波图 黑苹果系列视频教程
- XJN's Blog
- OpenCore Desktop Guide
- 远景爬贴
免责声明:
我是5月17买的机器,5月18司波图就发了M920Q黑苹果视频教程,所以起初主要参考司波图M920Q黑苹果视频教程。但是M910Q和M920Q毕竟不是一个平台,涉及到魔改操作,而且在我实际折腾过程中发现一些不同之处,甚至原则性的错误,参考了XJN大佬的博客,以及官方guide,远景大量爬贴后有了本文。当然本人也是小白一枚,有错误的地方在所难免,对此造成的任何损失请自行负责,本文仅做折腾分享,感谢理解!
大体思路和司波图相同,司波图把过程讲的很清楚,建议多观看几遍视频教程。我这里不讲过程,着重讲一下M920Q和M910Q的区别以及一些操作的原理。
有关EC屏蔽
首先还是提取DSDT,并反编译为dsl文件,用到SSDTTime和iasl。(可以下载司波图整理的文件包,能用到的东西基本上都有)
直接用文本编辑器打开,推荐notepad++
搜索关键词:PNP0C09
可以看到有关EC部分系统默认屏蔽的,所以就不用FakeEC生成SSDT-EC.aml,这里司波图没有查验这一步直接生成的,可能并不影响,但是opencore尽量少用SSDT补丁及更名补丁,有利于启动速度以及系统稳定性,我作为一个强迫症必须要知道。
有关AWAC时钟
继续搜索关键词:AWAC ,搜索不到说明M910Q主板没有用到AWAC时钟,用不到SSDT-AWAC去切换时钟,这里是和M920Q不同的地方。
有关NVRAM:
NVRAM Testing: You can test if your NVRAM is working by running the following Terminal command and rebooting: sudo nvram TestVar=HelloWorld; once you reboot, run sudo nvram -p | grep 'TestVar'; if you see a result, your NVRAM is working; if not, your NVRAM is broken and needs to be fixed, or otherwise iMessage won't work; after testing, you can delete the TestVar variable by running sudo nvram -d TestVar
输入命令:sudo nvram TestVar=HelloWorld; 写入一个TestVar变量到NVRAM,重启电脑
输入命令:sudo nvram -p | grep 'TestVar'; 可以看到返回结果HelloWorld说明我们的主板原生支持NVRAM。
有关SSDT:
SSDT-PLUG:用于加载原生电源管理,这里我们要用到。
SSDT-EC-USBX:用于屏蔽EC和修正USB供电的,我们EC不用屏蔽,而且强烈建议修正USB供电不要使用SSDT补丁,Xjn大佬解释是opencore没有判断win还是mac系统,双系统特别注意。经过我实测定制USB接口以后,生成的USBPorts.kext里面有修正USB供电代码,USB供电也正常,所以我们用不到这个。
SSDT-AWAC:用于切换RTC时钟,我们用不上。
SSDT-PMC:用于300系主板使用原生NVRAM,实测M910Q支持原生NVRAM,所以我们也用不上。
所以SSDT time用到的就提取SSDT,然后按 3 生成SSDT-PLUG。
有关CFGLock解锁
我们主板没有CFGLock的开关,所以用到opencore的工具CFGLock.efi,这个我的EFI里面会提供
opencore启动界面选CFGLock.efi,进入工具。
工具会自动识别CFGLock状态以及地址,按Y即可自动解锁。(我这里是解锁好的,是不是比司波图那个简便很多?)
有关驱动文件:
我用到的驱动文件如图所示,作用如下:
AppleALC.kext:声卡驱动
Innie.kext:lilu插件,解决nvme识别成外置磁盘,M910Q有这个问题。
IntelMausi.kext:Intel网卡驱动
Lilu.kext:底层依赖
NVMeFix.kext:为NVME硬盘增加ASPT属性来保证节电
SMCProcessor.kext:VirtualSMC插件,CPU核传感器
SMCSuperIO.kext:VirtualSMC插件, IO传感器
USBPorts.kext:USB定制驱动
VirtualSMC.kext:传感器驱动依赖
WhateverGreen.kext:核显&显卡驱动
驱动文件除了常规的一些网卡声卡驱动,要注意的是Innie.kext 这个插件能解决nvme识别成外置黄盘,opencore有ExternalDiskIcons选项,实测不起作用。
有关USB定制:
USB定制教程黑果小兵有详细的视频教程,但是方法比较复杂,现在hackintool可以有更简单的方法:
驱动里面加载Usbinjectall.kext,重启后打开hackintool,定位到USB项目。
- 用USB2设备挨个插USB口,总共6个USB口,识别7个名称HS开头的USB2设备,因为有一个网卡蓝牙用到的端口,设置为USB2类型。
- 用USB3设备挨个插USB口,识别到6个名称SS开头的USB3设备。
- 删除多余的接口,然后把鼠标键盘和蓝牙所在USB口连接器类型设为internal(内建)。
- 点击下面图标最后一个导出。
这里会给到5个文件,我们只用得到USBPorts.kext替换Usbinjectall.kext
打开USBPorts.kext包里面的info.plist可以看到有修正USB电源相关的代码,所以SSDT-USBX.aml和类似于USBPower.kext的东西用不着。
SSDT-UIAC和USBPorts.kext端口定义是重复的,所以用不着放两个,只用USBPorts.kext就够了。我看过司波图的EFI,三个文件都丢进去了,咋说呢不一定会有冲突,系统加载速度可能影响也不大,但是强迫症忍不了,不够精致。
有关睡眠
这台机器现在唯一的问题就是睡眠了,折腾了许久真的搞不定,Wake reason一直是XDCI,我猜测是魔改有懂了BIOS ME模块,但是有说没有魔改的M910Q也不行,当然不排除其他地方原因,希望有大神能完善。
有关EFI
这里貌似不能分享链接,需要的请关注我,然后私聊发送关键字 EFI,系统会自动发送下载链接。
本文暂时没有评论,来添加一个吧(●'◡'●)