Oc引导,SSDT显卡驱动及改名操作过程记录(单卡及多卡)
本帖最后由 wsanbai 于 2020-1-12 12:36 编辑前言
好几年没折腾黑苹果了,最近不知哪根筋犯抽,把没啥问题的电脑重新捣整一通,该忘的都忘了,基本是重头开始学习。
没有朋友们的分享,我想我自己也是不会去折腾黑苹果的,人人为我,我为人人,现在把自己最近折腾的经历分享出来,主要还是显卡。
我以前也以为显卡很好搞,一个WhateverGreen用了一两年,也不见得有啥大问题,无非就是FCPX卡一点,显卡调用不积极,跑分低点等等。
黑苹果嘛,还是要学会接受它的不完美。论坛里不少朋友系统能用,功能基本健全就急忙吼着:完美!我以前也是这样,而今看来,只是沦为老司机们的笑话了。因为黑苹果永远不会完美,白果都不会,只有降低自己对完美的定义。
我这只是自己折腾显卡的过程记录和分享,它不是一个教程,请不要把这当成一个教程来看。
开始之前我有两个问题,希望能得到高手解答:
我是Z370主板配8086k的CPU,显卡RX580x2,现在停在iMacpro1,1机型,开启核显加速并打了缓冲帧补丁,现在在FCPX使用的时候,核显最高到1.1G这是可以接受的,可一旦开视频或其它对核显调用较低的操作后(比如它们最高调用核显0.4g),FCPX就把核显锁定在0.4g,只有想办法把核显调到1.2g后,FCPX才会恢复1.2g的核显调用,我去掉WhateverGreen或用魔改版本都是这样,这是为何?有解决方案吗?
第一部分 准备工作
1、已安装好的苹果系统2、备用Clover引导盘3、IORegistryExplorer/Hackintool/MaciASL/CloverConfigurator4、备用OC引导盘
第二部分开始
一、提取原始DSDT
1、打开备用Clover引导盘,配置config.plist:
[*]确保ACPI下没有配置任何显卡及HDMI相关参数。
[*]确保设备设置下没有配置任何设备属性和防冒ID以及HDMI
[*]确保显卡设置项没有作何勾选
也就是说不要让clover对原始DSDT有作何更改即可
2、重启电脑,以备用Clover引导盘引导,在引导界面按F4键提取原始DSDT文件。提取后的文件存放于Clover的ACPI文件夹内的origin文件夹,将所有备份至桌面备用。
二、确定显卡位置
1、打开Hackintool,转到PCI选项,找到显卡设备。我以自己的Z68主板,GTX580显卡为例如下图:
https://bbs.pcbeta.com/data/attachment/album/202001/11/174308gxjwphtzh5xwlt7j.png
得到显卡位置在“PCI0.PEG0.GFX0”
2、也可开打IORegistryExplorer,查找display,得到显止位置
https://bbs.pcbeta.com/data/attachment/album/202001/11/174352tcc694cr7cbb6b2d.png
位置与Hackintool相同,注意其中的AppleACPIPIC是驱动程序,IOPP是PCI桥接,这两个不是设备,将其去除,得到路径为“PCI0@0-PEG0@1-GFX0@0”。这个路径后面都带有@0或@1或其它什么,应该是表示设备地址,也需要记下,后面用的到。
主板不同和显卡插槽不同,相应得到的路径不同,名称也不不同。我两块RX580插在不同的插槽,每块显卡得到的位置完全不一样。
如果是两显卡或者三块/四块显卡,最好是一次把一块显卡插在自己的插槽上,一块一块的确认显卡路径。做好了一块显卡后再做下一块显卡,也许同时插上也不一定会有什么问题,但为了保险起见,最好一块一块的做。
有条件的话,在进行确认显卡路径的时候最好使用备用clover引导,去掉显卡有关的kexts(如whatevergreen等),以确保没有对原始路径进行过patch或变更。
三、SSDT准备
进入桌面的原始DSDT文件夹,用MaciASL打开DSDT.aml,查找GFX0的上级PEG0(不要查找GFX0):
https://bbs.pcbeta.com/data/attachment/album/202001/11/174542tqdnn6ezfydadmmf.png
查找结果前面带“Device”的才是需要的结果。我的在PEG0下只有一个PEGP设备(根据不板不可这下面可能有多个设备),点击PEGP设备,看到代码如下:
https://bbs.pcbeta.com/data/attachment/album/202001/11/174619hai33bga3o2bw8w1.png
回去看取得的路径“PCI0@0-PEG0@1-GFX0@0”,后面的PEG0@1就和PEG0下面的“Name(_ADR,0x00010000)”相对应,记下这个显卡插槽设备的参数。
我们要重新仿冒个设备来代替它,所以要对这个PEGP禁用。由于我只有这个Z68主板和Z370主板,这两块主板在显卡插槽里都只有一个PEGP,如果你的主板有多个设备,就把它们都禁用(因为要在PEG0里插显卡,除了显卡我还没想到有其它什么设备)。确定好要被禁用的设备把它们列出来,比如我要禁用的设备就是这个_SB.PCI0.PEG0.PEGP。
四、显卡DSDT制作
前面的三步有以下两个目的:
1、找到显卡位置:_SB.PCI0.PEG0(主板不同结果可能不同)2、显卡插槽地址:Name (_ADR,0x00010000)3、找到要禁用设备:_SB.PCI0.PEG0.PEGP(主板不同结果可能不同)
下面就要建立DSDT来代替原显卡位置并禁用不需要的设备:
1、建立显卡SSDT
下载范本ssdt-rx580.aml对其进行修改。
打开下载的文件,查找“_SB.PCI0.PEG0.GFX0”用自己找到的显卡位置替换,“_SB.PCI0.PEG0”换成你的显卡位置,GFX0可以换成作何你想要的名字。比如通过上面步骤找到的显卡位置为“_SB.PCI0.ABCD”,并想给显卡重新取名为“XXX0”,那么就把“_SB.PCI0.PEG0.GFX0”改成“_SB.PCI0.ABCD.XXX0”。如果更换了“GFX0”,就要把所有的GFX0替换成新名称。
前面取得插槽地址:Name (_ADR,0x00010000),找到ssdt-rx580.aml文件中的DefinitionBlock("", "SSDT", 1, "shiloh", "GFX0",0x00010000),把0x00010000改成与插槽地址相同,附件是我改好的,所以都是0x00010000(我不确定我这个理解是否正确,但我这么操作是没有问题的)。
附件是RX580显卡注入FBName并改名Radeon Pro 580X,如果显卡不同,则需要更改显卡SSDT内容。这不是一个教程,我没能力提供所有显卡的SSDT,请自己搜索制作,经我自己深度,需要注意的是:
[*]确定正确的FB Name,否则显卡输出接口会工作不正常,多尝试
[*]connector-type修改不会有效,反而会丢失功能集,不改名无视
[*]很多显卡论坛里都有现成的参数,直接搬过来调试即可
2、禁用不需要的设备
我要禁用的设备是:_SB.PCI0.PEG0.PEGP,打开ssdt-rx580.aml,找到里面的:“Name(_SB.PCI0.PEG0.PEGP._STA, Zero)”,把其中的“_SB.PCI0.PEG0.PEGP”替换成自己需禁用的设备路径,如有多个设备需要禁用,就多复制几份并更改路径,像这样:Name(_SB.PCI0.PEG0.PEGP._STA, Zero)Name (_SB.PCI0.RP21.PXSX._STA,Zero)至此,显卡SSDT即修改完成,进入下一步。
五、OC操作
1、把制作好的SSDT放进备用OC引导盘的ACPI文件夹,并在OC的config.plist配置加入。如果多显卡,要分别对它们全部加入。
2、暂时禁用Whatevergreen.kext,开核显的话在oc配置文件config.plist的acpi->patch里加入gfx0 to igpu重命名,对核显重命名为IGPU。没核显不用管它。
3、删除设备属性里对于独显的作何配置(集显的防冒别动)。
4、如果因为去掉Whatevergreen.kext进不了系统,给启动参数加上: -disablegfxfirmware
5、进系统通过对比显卡SSDT与新显卡名称及位置,没问题完成OC迁移。
六、总结
通过以上方法,我对自己两台电脑实际操作,没有任何问题。
1、Z370+I78086K+2 x RX580使用此方法制作两张显卡的ssdt后,RX580的Geekbench5.1跑分每张卡有所提高,OC引导进WIN10不受作何影响。但是我的去掉WhateverGreen后,第二引导阶段会丢失hidpi,懒得折腾了,所以我又把WhateverGreen加进去了,对本操作结果没有影响。如谁有解决办法请告知!
2、P8z68+I72600K+GTX580实现了独显+集显双显驱动并能硬解H264(HEVC硬解这个平台是不支持的),系统版本10.13.6,引导工具clover。
七、后记
我的显卡是蓝宝石RX580超白金OC,在win10内可通过官方软件自动超频,但在Macos下不知道怎么注入PowerTable,所以决定采用修改显卡bios的办法。
[*]进入Win10,使用官方软件自动超频,并导出配置文件
[*]使用ATIWinFlash导出显卡bios
[*]打开PolarisBiosEditor,导入bios,并结合官方配置文件调整参数
[*]使用ATIWinFlash刷入修改bios
本方法过程虽然简单,但还是有一定的风险,有经验者自行尝试。
八、申明
此方法是我在自己电脑的操作成功的记录,由于黑苹果的特殊性,我不敢保证你如果也这么操作会百分之百成功,尽可能抱着一颗感恩的心来对待。
最近开始折腾oc的时候,在本论坛下载了个0.5.3版本,结果死活引导不了,后来才发现他的BootX64.efi有问题,从官方下载就没有问题了。当时很想骂娘,可转过来想,还不是因为自己懒,不怪别人。
本帖最后由 wsanbai 于 2020-1-13 15:14 编辑
补充
开始我使用了景友xjn819同志的方法:https://bbs.pcbeta.com/viewthread-1839725-1-1.html,使用SSDT注入的方式,也就是这个帖子的记录过程。发现在RX580上的提升并不是很明显,跑分也时高时低很不稳定。
后来想到,大神的方法是通过OC给显卡注入苹果显卡属性,而不是最底层的更改(我不知道OC注入会不会和显卡本身冲突而导致性能下降,或者OC只是仿冒些白果字符串而起不到实质的作用,我才接触OC不敢确定),何不直接把白果显卡属性直接刷入显卡bios呢?这样会不会更简单,更暴力?搜索发现国外论坛还真有人这么干。
于是开始搞整,修改显卡bios为白果显卡ID,进入macos去掉WEG,去掉各种独显注入属性,重新开机,见证了奇迹的时刻:
[*]系统自动调用驱动相应的FB Name而不是公共驱动
[*]跑分比SSDT方法略有提搞,相对稳定浮动不大
[*]由于完全搞不明白OC注入PowerTable方法超频,就直接撸显卡bios
显卡修改bios及超频有一定风险,就不提供详细操作方法了。跑分图楼下有,同用rx580的朋友可以测试对比。
Z370都让我怀疑人生了。 左右流之 发表于 2020-1-11 23:21 https://www.pcbeta.com/static/image/common/back.gif
Z370都让我怀疑人生了。
我觉得还好吧,只是FCPX的核显满载问题,如果出现核显偷懒,导出一下拉高核显再取消导出,多点几下鼠标,也不算太麻烦了。其实我都不知道390主板会不会有这种情况 不懂帮顶, 魔改版本分好几个,不一定适合每个人,如果fcpx是硬需,而且引导用的是clover,没有oc的强迫症,把whatevergreen删除最好,dsdt签名添加3个,在添加一个黑屏补丁就可以了,这样就不会出现fcpx核显卡在0.4了,本人8700.rx580.b360.fcpx核显这块,完美,oc引导 zhan110234 发表于 2020-1-12 00:24 https://www.pcbeta.com/static/image/common/back.gif
魔改版本分好几个,不一定适合每个人,如果fcpx是硬需,而且引导用的是clover,没有oc的强迫症,把whatever ...
感谢你的意见,你这方法我早试过了,解决不了Z370这个问题 wsanbai 发表于 2020-1-12 19:37 https://www.pcbeta.com/static/image/common/back.gif
感谢你的意见,你这方法我早试过了,解决不了Z370这个问题
z390我所知道的几个板子没这个问题的。之前没看到你是Z370,z370暂时好像是绝症了。。。。。。。。 支持发表 我的显卡是蓝宝石RX580 2304 超白金,经过一翻折腾,跑个分娱乐一下。
跑分软件及版本:GeekBench 5.1.0
Metal:
https://browser.geekbench.com/metal-benchmarks
超出官方基准近15000分
OpenCL:
https://browser.geekbench.com/opencl-benchmarks
超出官方基准8000余分
大佬厉害,590可以这样操作吗。 能否提供下pro580x的vendorID?跑遍论坛百度404都没找到,只查到苹果的品牌id是106B 两个贴都看了,学习了,楼主很有探索精神,谢谢分享 我用的也是蓝宝的rx580 8g,蓝色的那款,好像跟你的一样,不知道能否分享一下你修改好的dsdt,另外我也研究了一下oc注入的方法,有些参数我没搞太明白,ATY,bin_image,ATY,RevID,ATY,Rom和efi等一些,不知道是从哪里获取的。 我用的也是蓝宝的rx580 8g,蓝色的那款,好像跟你的一样,不知道能否分享一下你修改好的dsdt,另外我也研究了一下oc注入的方法,有些参数我没搞太明白,ATY,bin_image,ATY,RevID,ATY,Rom和efi等一些,不知道是从哪里获取的。 我用的也是蓝宝的rx580 8g,蓝色的那款,好像跟你的一样,不知道能否分享一下你修改好的dsdt,另外我也研究了一下oc注入的方法,有些参数我没搞太明白,ATYbin_image,ATYRevID,ATYRom和efi等一些,不知道是从哪里获取的。 你这个SSDT-RX580是不是所有的580都行 谢谢楼主分享 日暮归途风萧萧 发表于 2020-1-13 23:46 https://www.pcbeta.com/static/image/common/back.gif
能否提供下pro580x的vendorID?跑遍论坛百度404都没找到,只查到苹果的品牌id是106B
哥,你要干嘛?张三可以像李四,但张三永远不会是李四吧。 wsanbai 发表于 2020-1-15 11:58 https://www.pcbeta.com/static/image/common/back.gif
哥,你要干嘛?张三可以像李四,但张三永远不会是李四吧。
没事了
你一开始说的:修改显卡bios为白果显卡ID
我就以为是改id,后来才知道你说的是改rom修订号。。{:5_277:}