联想M910Q 黑苹果折腾系列③ Hackintosh opencore完善 EFI分享
本教程参考:
司波图 黑苹果系列视频教程
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解锁
我们BIOS没有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.aml和USBPorts.kext端口定义是重复的,用不着放两个,上文提到过原则上SSDT尽量少用,只用USBPorts.kext就够了。我看过司波图的EFI,三个文件都丢进去了,咋说呢不一定会有冲突,系统加载速度可能影响也不大,但是强迫症忍不了,不够精致。
有关睡眠
这台机器现在唯一的问题就是睡眠了,折腾了许久真的搞不定,Wake reason一直是XDCI,我猜测是魔改有懂了BIOS ME模块,但是有说没有魔改的M910Q也不行,当然不排除其他地方原因,希望有大神能完善。
有关EFI
EFI我放到GitHub了,有更新会推送,有需要的直接去下载:
issaclam
校验提示文案
Philli仔
校验提示文案
十分钟泡面
校验提示文案
gcat
校验提示文案
aiqing144liu
1.能否升级oc到0.6.3,你这是旧版本的
2.我装过一次10.15.7后,再也没法退回10.15.5了,这个要怎么办?
3.你的nvme从看到苹果图标到登陆界面要多久啊,我好像要接近30秒,怎么都不如win10
校验提示文案
阿云
校验提示文案
m158sh
校验提示文案
lingwei
校验提示文案
youcansee
校验提示文案
拉着樱木去灌篮
校验提示文案
十分钟泡面
校验提示文案
十分钟泡面
校验提示文案
值友4636728390
com.apple.AppleFSCompressionTypeDataless load succeeded
root
校验提示文案
Colababa
校验提示文案
zsyshuyang
校验提示文案
冇毛草
校验提示文案
值友1628676190
校验提示文案
森林大魔王
校验提示文案
lingwei
校验提示文案
森林大魔王
校验提示文案
值友1628676190
校验提示文案
冇毛草
校验提示文案
m158sh
校验提示文案
阿云
校验提示文案
zsyshuyang
校验提示文案
aiqing144liu
1.能否升级oc到0.6.3,你这是旧版本的
2.我装过一次10.15.7后,再也没法退回10.15.5了,这个要怎么办?
3.你的nvme从看到苹果图标到登陆界面要多久啊,我好像要接近30秒,怎么都不如win10
校验提示文案
gcat
校验提示文案
Colababa
校验提示文案
值友4636728390
com.apple.AppleFSCompressionTypeDataless load succeeded
root
校验提示文案
十分钟泡面
校验提示文案
十分钟泡面
校验提示文案
十分钟泡面
校验提示文案
拉着樱木去灌篮
校验提示文案
Philli仔
校验提示文案
youcansee
校验提示文案
issaclam
校验提示文案