- 积分
- 552
- 最后登录
- 2024-3-29
- 精华
- 0
- 阅读权限
- 40
- 主题
- 40
- UID
- 733143
- 帖子
- 781
- PB币
- 260
- 威望
- 40
- 贡献
- 0
- 技术
- 12
- 活跃
- 2249
- UID
- 733143
- 帖子
- 781
- PB币
- 260
- 贡献
- 0
- 技术
- 12
- 活跃
- 2249
|
发表于 2020-7-18 05:04:51
IP属地广东
|显示全部楼层
本帖最后由 mmccg 于 2020-7-18 13:05 编辑
前言
之前发过这样的帖子,
【UHD 630驱动回滚】祖传土方根治10.15.5正式版UHD630黑屏问题
https://bbs.pcbeta.com/viewthread-1859830-1-1.html
就是回滚到没有黑屏问题的驱动版本,但是这个方法始终治标不治本,更新系统版本后就得重新回滚驱动,而以后的big sur大版本更新也必然不能继续使用这种方法,再者DVI口再接上一个显示器后,HDMI口的显示器也会受到影响(表现为闪屏花屏,或者一直黑屏亮屏反复横跳),体验非常不好,之前只用单屏所以没发现有这个问题。所以还是必须找到一个使用原生驱动的方法。
方法就是使用跟3E9B0007相同平台ID(3E9B)的3E9B0000,这也是WEG原作者所建议的方法。(还有一点是机型我由mini8,1改成iMac19,1。至于mini8,1行不行,有待测试)
但据我当时的测试是同样黑屏或者直接重启,而那个帖子里也有网友提到是总线ID的问题(也得到了小兵的回复肯定),我更换了几乎所有可能的总线id组合,都会出现各种问题。肝了一个晚上我得出结论,3E9B0007默认的总线ID是可以用而且是唯一可以用的(我将HDMI口默认的04改成06,竟然识别到的显示器型号是之前DVI口接的显示器,HIDPI也不能选自定义的),换了其他的反而不行,不然10.15.4及之前的版本能用,为啥10.15.5之后就不行了呢。经过一晚上的排查,结合之前仿冒7代59120000的经验,得出的结论就是3E9B0007这个缓冲帧ID就是不行,问题就出在这个3E9B0007上。于是我将缓冲帧ID改成3E9B0000,接口参数照搬3E9B0007,重启成功点亮双屏(HDMI+DVI),回到了10.15.3的完美情况。
那为啥之前改3E9B0000不行呢,问题就出在hackintool这个工具打缓冲帧补丁的方法不对。下面我图文结合解释正确打缓冲帧的步骤(或者说使用跟缓冲帧ID默认接口参数不同的自定义接口参数打补丁的步骤,很绕口,换种说法就是,如果我要用3E9B0000这个不黑屏的ID,又要使用跟3E9B0007一样正确的接口参数应该怎样打补丁)
首先准备工作,备份现在正在用的config.plist文件,用clover configurator或者其他编辑器删除核显的全部设备项
然后打开hackintool,在【应用补丁】-【信息】选择3E9B0007这个id,以这个为模板进行自定义参数修改(如果直接用3E9B0000的话在接口部分修改的内容会比较多)
然后到【缓冲帧】选项卡修改参数,首先是将缓冲帧ID改为3E9B0000(系统就认这个ID),注意需要按住shift+鼠标左键点击才能修改。
然后这个是可选操作,自定义显存大小(这个操作跟后面【应用补丁】-勾选【显存2048m】这个操作一样,这里能自定义数值,最大是[4095 MB],[4096 MB]的话就归零了)
这时可以先跳过【接口】,直接在【应用补丁】-【高级】选项卡里勾选需要的补丁,因为自定义完【接口】里的参数的话再勾选/取消这里的选项的话会改变在【缓冲帧】或【接口】里改的参数(这里的操作逻辑属实不够人性化),例如勾选[显存2048m]会改掉刚才改的4095M显存的设置,[将DP映射到HDMI]会将【接口】里的类型都改为HDMI,[修复热插拔重启]会将【接口】里的通道都改为18,这里先勾选一下也可以省掉在【接口】里手动输入参数的操作。
如图所示,必须要勾选的是[启动HDMI20(4K)]和[仿冒图形卡ID-3E9B],其他的可以按需勾选。(这里先不点生成补丁,我这个图是后面截的所以有补丁信息)
最后也就是最关键的一步就是自定义【接口】里的参数,这里的参数修改也是需要按住shift+鼠标单击才能修改。这里我其实并不需要修改什么参数了,因为10.15.4的时候用这个接口参数(3E9B0007)就是完美的了,(我当时是在【信息】里直接选择了3E9B0000这个ID的,需要手动把数值修改成跟3E9B0007一样,改动的地方就非常多)
关于下面那个框框里的接口也简单说一下,这个小兵博客里有解释过,我这里的实际情况就是
CON0 = 索引1 - 总线id 0x05 - 接口0x05 (VGA接口,无效参数,忽略)
CON1 = 索引2 - 总线id 0x04 - 接口0x06 (HDMI接口)
CON2 = 索引3 - 总线id 0x06 - 接口0x07 (DVI接口)
注意这个接口ID跟总线ID不是一回事,接口ID是固定的无法修改,我这块主板就是第一个物理接口为0x05,第二个为0x06,第三个为0x07
最后就是这个帖子最最最最最最关键的一点!
切换到【应用补丁】-【通用】选项卡,取消勾选[自动侦测变化],这里就是是否正确注入接口信息成败的关键。
简单来说,这个选项的原意应该是剔除无用的代码,只注入需要修改的参数,但是实际使用中可能会造成各种问题。这里的”变化“指的是在【接口】里修改的参数相对于在一开始【信息】里选择的ID的”变化“,因为我的接口参数跟3E9B0007的几乎一样,也就是说hackintool不会生成跟3E9B0007默认接口参数相同的数据(例如con口顺序,索引ID和总线ID,这三个也是决定接口是否正确配置的最关键信息),而实际上的缓冲帧ID已经被我改为3E9B0000,这样注入信息到CONFIG里重启之后系统使用的还是是3E9B0000的默认接口参数(3E9B0000的索引是0、1、2、-F,3E9B0007的索引是1、2、3、-F),接口参数全部错位了,也就是说修改后参数根本没有生成也就没有写入到config(准确来说是由于con口数据对不上导致注入信息错乱)。
所以正确的操作就是取消勾选[自动侦测变化],将正确的接口参数完整地生成并注入config文件。这样才能同时使用3E9B0000这个缓冲帧id和正确的接口参数(3E9B0007)。两者生成的信息如图所示。而CON3部分由于是无用的接口所以可以删除掉。
此帖到此为止,欢迎勘误补充!
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
-
2
查看全部评分
-
|