Opencore 黑苹果:华擎B460M PRO 终上10.15.5
追加修改(2020-07-07 20:37:06):
2020.07.07更新
更新了SMC相关驱动文件,增加了个人修改文件XHCI-unsupported.kext,更新了config.plist的配置,解决USB3端口以USB2在工作的问题。
现在主板上的USB3端口应是能以USB3正常工作,若有问题请留言反馈。
链接:pan.baidu 提取码:h04q
追加修改(2020-06-16 06:36:47):
再追加:
2020.06.16
现时USBInjectAll.kext的版本同样缺少对B460的USB controller的device id=0xA3AF信息,所以同样地对官方的源码进行了相关的信息添加后重新编译。
我的华擎B460M Pro4网卡的ID是0D55,声卡控制器ID是A3F0,如果你的硬件ID也是这个那么可以用同样的EFI:
链接: pan.baidu.com 密码: fdqw
---------------------------------
取消启动日志文件的写入:
另外Opencore的设置默认每次启动都把日志写进文件,在EFI外面产生一个txt的记录文件,不管的话时间长了会把ESP分区写满引发报错,那需要把它取消,在Misc的debug处,target默认是67,67的16进制就是0x43,0x43其实就是0x01+0x02+0x40,而0x40就是允许把日志写入文件,我们把这个取消就好了,改为0x01+0x02=0x03,10进制用3,或者索性取消bebug用0也行,即target改为3或0,就不会产生日志文件。
追加修改(2020-06-15 20:54:58):
不知道为什么发不出去EFI链接,我的华擎B460M PRO网卡的ID是0D55,声卡控制器ID是A3F0,如果你的硬件ID也是这个那么可以用同样的EFI:
链接: pan.baidu.com 密码: 3qh9
取消启动日志文件的写入:
另外Opencore的设置默认每次启动都把日志写进文件,在EFI外面产生一个txt的记录文件,不管的话时间长了会把ESP分区写满引发报错,那需要把它取消,在Misc的debug处,target默认是67,67的16进制就是0x43,0x43其实就是0x01+0x02+0x40,而0x40就是允许把日志写入文件,我们把这个取消就好了,改为0x01+0x02=0x03,10进制用3,或者索性取消bebug用0也行,即target改为3或0,就不会产生日志文件。
先说一下配置:
CPU:Intel i7-10700 2388元,淘宝
散热器:利民 AK120 MINI 169元,京东
主板:华擎 B460M PRO4 629元,京东
显卡:蓝宝石 VEGA 56 白金版 1500元,一年前购于闲鱼一手自用2月
硬盘:闪迪 1TB NVME 799元,京东
内存:宇瞻 8GB DDR4 2666 X4 660元,京东
电源:银欣 650W ET650-G 389元,一年前京东
机箱:雷匠 R-M3 M-ATX 279元,京东
散热风扇:Arctic F12 PWM X4 75元,闲鱼
ID-COOLING 9CM风扇 22元,淘宝
Arctic F9 PWM 9cm 35元,淘宝
其他:PAPRI实心铝合金避震脚垫 X4 45元,淘宝
防尘网 7元,淘宝
--------------------------------------------
6997元
为什么不上ITX呢? 因为......穷,ITX整套配置那个价格,太可怕了....
记得在一年多前,还是因为穷,想对Macbook Pro换下来的原128G硬盘废物利用一下,就在淘宝买了一张苹果接口转PCIE的转接卡,结果一插上,因为短路把电源和主板都烧了 ,没办法,只好把已装好黑苹果的deskmini 110卖了出去,再把E3换成i5,才买来一个电源,一张二手vega56显卡,插在厂家修好的主板,继续黑苹果。
随着这几年AMD的YES,牙膏厂的牙膏也越挤越多,三代的i5战了那么多年后是时候要退休,所以在10代的酷睿出来后,就马上组一套来继续黑苹果。因为遗留的显卡和电源,如果要上ITX的方案,那必然得换电源上A4机箱和水冷,水冷么...又想起我那因转接卡短电炸掉的电源和主板....呃,还是上风冷吧,既要性能又要散热好,又要便宜,那只能MATX了。
MATX的机箱没什么好选择,挑了好久都没下定决心,好在前一个多月看到了雷匠R-M3这个机箱,20L,299元,支持ATX电源,没什么可说的了,风道是有些问题,但是可以解决,于是就决定是这个机箱了。
这个机箱的风冷140限高,那散热用利民新出的号称倒打同门师兄银箭130的AK120 mini好了。
CPU方面,因为现在很少玩3A大作了,不打算超频,因为要超频,要上K的CPU和Z主板,散热和电源都要多投入,换来的性能提升我觉得并不是很划算,所以上10700好了。决定了CPU,那主板和内存就比较简单了,不怎么玩游戏,不必追求低时序高频内存,反正2666也是可以上2933的嘛。
至于主板,那肯定是B460了,迫击炮固然是好,豪华的供电,但是有些超格的硬件对黑苹果来说反而不是好事,那个2.5G网口现在的驱动方案貌似还没有,而且要利用上2.5G的网口,路由或交换机都要升级,价格不菲,还不如多个网口bond来得实际呢,而且迫击炮没有我想要的M.2 WIFI接口,所以只能放弃,选择了华擎的B460M PRO4。
在零件陆续到了,组好后是这个样子的:
外观
呃,没错,我把这个机箱屁股朝上放了,因为这个机箱前面板是不通风的,只能靠底下的120风扇和侧板的风孔位进风,而因为垫脚非常矮,加上显卡就在机箱底下挡风,所以这个机箱的风道不是很好,显卡的热风吹上来再给CPU散热吹,要避免这种情况只能上水冷,但我不想用水冷,就换个方位来放置,在前面板用3M HB胶粘上铝合金垫脚:
顶部再用3M胶粘两个9cm风扇(原机箱设计只有一个9cm风扇位),把冷风往下吹,这样CPU就有冷风进来散热,而且也可以把吹出来的热风热量中和,避免电源吸入的风过于热。
因为机箱背部没有空间,没办法走背线,电源的线只能堆在下方,好在不怎么喜欢RGB光污染,把玻璃挡板一上,什么也看不见
散热
在所有风扇全速运行时,室温27度,单烤FPU烤了10几分钟,CPU温度保持在短暂爬高后又马上回到51度并一直保持这个温度小幅波动。
黑苹果部分
因为之前一直是用clover引导的,而且是从黑果小兵那下载的镜像,EFI用几套,deskmini是用github上的维护清单的修改,i5那套则自己整合,倒也简单。而目前的趋势是往OC走,那新机也试试OC吧,万一真香呢?
OC的教程,可以参考司波图的一期保姆级OC讲解视频,这个视频比较详细,按着去做,我的B460M PRO4也顺利的装上系统了,但很快,我发现我的网卡和声卡没有驱动上。
网卡:
华擎的网卡是I219V,我开始试了黑果小兵和司波图的驱动,但都无法驱动,又在网上论坛找了好几个驱动,也是不行,后面我意识到了,这应该是这些驱动里没这款I219V的硬件id 0X05DD,于是就用其他电脑上了github把IntelMausiEthernet.kext的最新的版本及源码下载下来,终于在IntelMausiEthernet-info.plist这个文件里的IOPCIMatch里发现 0X0D558086,其中0D55是device id, 8086是Intel的vendor id. 而且我们也可以在注释里看到I219V是有着多个版本的,也就是说,IntelMausiEthernet.kext最新的2.5.1d1版本是支持B460M PRO的I219V网卡的。
如果最新的版本里没有支持你网卡型号的device id,那你可以试试将你的网卡硬件ID和8086组合起来再添加到IntelMausiEthernet-info.plist的IOPCIMatch,再重新编译出一个自己的版本驱动。
在加入新版本网卡驱动后,再重构了一下Opencore的config.plist,重启引导黑苹果后,网卡终于可以驱动了。
声卡:
华擎B460M PRO4的声卡,官方宣传说是ALC 1200,所以我把ALC 1200的layout id全部都试了一次注入,还是不行,在windows系统装上官方驱动后,显示的居然是ALC S1220A,于是我又把ALC S1220A的layout id也试了一次,还是不行,这时我不得不制作了ubuntu的启动盘,通过ubuntu终于得到了B460M PRO4的声卡真正的codec了,原来是ALC S1200A!!!
于是乎,我又将ALC S1200A的layout id全试了一次,还是不行....这时我开始怀疑AppleALC.kext到底有没有起作用了,因为通过ubuntu得到的这个codec基本不会是错的。我通过终端查了一下Kext的情况:
sudo kextstat|grep -iE "hda|applealc|lilu"
我发现了一个情况,那就是AppleHDA.kext没有加载,反而是一个AppleGFXHDA.kext的,这个kext只会认数字音频,不认模拟音频的,而没有加载AppleHDA.kext,那么AppleALC.kext根本就没有起作用的机会,即使你的OC配置都对了,还是不会起作用的,所以问题就出在为什么AppleHDA.kext没有加载,我试着强行把它重新加载:
sudo kextload /System/Library/Extensions/AppleHDA.kext
在命令反馈加载成功后,我再度查询了一下AppleALC.kext的加载情况:
sudo kextstat|grep -iE "hda"
发现AppleHDA.kext确是成功加载了,但声卡没有任何变化,我再多执行几次上面那个命令以观察AppleHDA.kext的情况,在过了几十秒后,AppleHDA.kext再度消失了,那就是说,它是成功加载后又消失了。这种情况,有两种可能,一种是存在冲突让进程异常退出,另一种就是没有工作分配,就自动退出了以节省资源。于是我在macbook pro上试做了调用HDMI音频输出的kext的调用观察,发现它们确是会在有任务触发时加载,没有任务时则自动退出。那么这个AppleHDA.kext的退出,很大可能是没有任务,会不会是AppleGFXHDA.kext的原因呢?
我下载了AppleALC.kext最新1.5版的源码,专门查找了AppleGFXHDA.kext的相关处理情况,发现一段代码和注释:
if (name && !strcmp(name, "HDEF")) {
// Starting with iMacPro custom audio cards are used on Apple hardware.
// On MacBookPro15,x and newer devices these custom audio cards are controlled by T2, and
// internal HDEF device is only used for HDMI audio output implemented via AppleGFXHDA kext,
// which does not know about analog audio. AppleHDA still supports HDEF devices with analog
// audio output as well as HDMI support for legacy devices, so we avoid AppleGFXHDA by all
// means for HDEF.
DBGLOG("alc", "avoiding AppleGFXHDA for HDEF device");
return nullptr;
}
也就是说,AppleGFXHDA.kext只处理数字音频,所以AppleALC.kext会全力阻止它获得HDEF的处理,一旦AppleGFXHDA.kext想获得HDEF这个名称来处理,AppleALC.kext会阻止它给它返回一个空值,这个HDEF一般就是板载声卡IOreg名称,所以AppleALC.kext在加载的情况下,不太可能让AppleGFXHDA.kext获得HDEF的处理,那么AppleHDA.kext没有接到HDEF的处理,那应该是AppleALC.kext没有冒仿出AppleHDA.kext熟悉的device id,也就是说这个声卡没有在AppleALC.kext的处理范围中,和网卡的情况大体相同,只是声卡隐藏得更深。
在翻查了AppleALC.kext的源码后,发现了一个叫Controllers.plist的文件记着一些device的信息:
观察里面的数据可得,Device就是这个设备的10进制数字,比Item 27的device是1736,16进制是06C8,而再观察前面几个Item,发现近几年增加的item都是find一个70a1,然后replace成这个item的ID两位交换,那么可以预见要find的device id其实是a170, 由a1 70 变成06 c8,在格式上写成find 70 a1 , replace c8 06,只有6处,而下一个item则是比方加上vendor id再进行替换,即intel的8086,由a1 70 80 86变成06 c8 80 86,格式上写成find 86 80 70 a1,replace 86 80 c8 06,只有一处。
而通过查询pci ids,a170是 100 Series/C230 Series Chipset Family HD Audio Controller 的device id .
那么我模仿将这个8086 A170变成 8086 A3F0(B460M PRO4的audio controller device id)增进去这个文件 ,再lilu.kext debug版放到AppleALC.kext的根目录下,进行编译,就可以得到我们自己B460M PRO4的audio controller的驱动文件。
在将自己版本的AppleALC.kext放到OC下并重构config.plist后,注入layout-id 是3,重新引导,10.15.5终于有声卡了!
总结的是,网络上的驱动文件很多,并不是说这个驱动支持你的硬件型号就能正常驱动的,还要看这个驱动里面包不包你硬件的id在内,如果没有你硬件id,可以考虑自己添加信息进去重新编译来解决。
目前系统一切工作正常,睡眠正常,暂时没发现其他问题。
秋刀鱼
校验提示文案
z1352367587
校验提示文案
瞬间清闲
校验提示文案
MichaelFre
校验提示文案
表哥-SSS
校验提示文案
shadowopti
校验提示文案
张铁锤_
校验提示文案
徐珉旻
校验提示文案
派大星星星星
校验提示文案
野蛮的村支书
校验提示文案
maywzh
校验提示文案
值友1909178219
校验提示文案
王三杯
校验提示文案
你家老王
校验提示文案
值友3199675083
校验提示文案
曹牧
校验提示文案
青青山
校验提示文案
十分钟泡面
校验提示文案
值友8211416553
校验提示文案
青青山
校验提示文案
louis2005
校验提示文案
值友2670751805
校验提示文案
[已注销]
校验提示文案
值友8974565270
校验提示文案
air04
校验提示文案
geshu83617
校验提示文案
值友7212363445
校验提示文案
十分钟泡面
校验提示文案
值友5246879681
校验提示文案
神秘的小小帅哥
校验提示文案
神秘的小小帅哥
校验提示文案
Brucesuen
校验提示文案
Brucesuen
校验提示文案
值友2047220830
校验提示文案
值友4569011124
校验提示文案
青青山
校验提示文案
值友8211416553
校验提示文案
值友8211416553
校验提示文案
十分钟泡面
校验提示文案
青青山
校验提示文案