请问10.13.6,RX470独显可以修改Framebuffer吗?
本帖最后由 寥若繁星 于 2019-1-29 11:25 编辑请问10.13.6,AMD独显还可以修改Framebuffer吗?我是蓝宝石RX470 4G,显卡ID是0x67DF1002,但是显示器是VGA接口,使用的HDMI转VGA接口,结果花屏,爬了几天帖子才知道修改Framebuffer的enc或者txm就行了,看了几个小时https://bbs.pcbeta.com/viewthread-991835-1-1.html终于看懂了,结果使用AMDFramebufferUtility说识别不到我的显卡型号。。。找不到Framebuffer原始数据来修改了。。。。
崩溃。。。
没找到Controller里的0x67DF1002,只发现在AMDRadeonX4000.kext里边有0x67DF1002,这是说明蓝宝石RX470 4G是免驱的吗?
求问,是AMDFramebufferUtility不能在10.13.6使用还是不支持RX470?如果10.13.6还是可以修改Framebuffer的话,那这个Framebuffer原始数据是在kext里提取的吗?如何提取?是在AMDRadeonX4000.kext里边提取还是在AMD5000Controller.kext这种Controller里面提取呢?
附10.13.6 /System/Library/Extensions下所有kext
链接: https://pan.baidu.com/s/1v0Cq_vewJbKTie5q3TcGGg 提取码: 3xfw
可怜我顶着大花屏一顿操作。。。
kextstat | grep ati
得到:
93 2 0xffffff7f81565000 0x1f0000 0x1f0000 com.apple.kext.AMDSupport (1.6.8) 7437A67E-1E39-3A88-B158-DE99F959A0B6 <86 85 12 11 7 5 4 3 1>
108 0 0xffffff7f81773000 0x68000 0x68000 com.apple.kext.AMD9500Controller (1.6.8) 6D8E467F-75AC-304C-8099-685F160F57C0 <93 86 85 12 11 5 4 3 1>
124 0 0xffffff7f840e4000 0x12000 0x12000 com.apple.kext.AMDRadeonX4000HWServices (1.6.8) 57CD6989-C376-3DF2-B953-B9A7A676A3CD <85 12 11 7 5 4 3 1>
126 0 0xffffff7f82581000 0x4ba000 0x4ba000 com.apple.kext.AMDRadeonX4000 (1.6.8) 3A5B2002-9BF9-36B4-BBC4-15B37FCEAD7B <125 114 85 12 7 5 4 3 1>
127 0 0xffffff7f8327e000 0xe58000 0xe58000 com.apple.kext.AMDRadeonX4000HWLibs (1.0) 586574A4-E4E0-3755-84B3-2799CF826860 <12 5 4 3 1>
128 0 0xffffff7f82c87000 0x29000 0x29000 com.apple.kext.AMDFramebuffer (1.6.8) 9684DD2E-CC02-3A7D-B285-F201ABE99887 <93 85 12 11 7 5 4 3 1>
于是可以得出RX470 4G的驱动文件是AMD9500Controller.kext,然后到AMDFramebufferUtilityV3.0里找到了AMD9500Controller,第一个就是Orinoco (5),而且与显卡实际的接口类型是一致的,与下面得到的rom内容也是一致的,这可以说明是免驱的
hex编辑器查看包内容里的AMD9500Controller,可以查找到AMDFramebufferUtility里的原始FB数据,说明AMDFramebufferUtility对于10.13.6的AMD9500Controller是适用的。
FB数据:
PCI ID: 1002:67DF
ATI Connectors Data:
Orinoco (5)
DP, DP, HDMI, HDMI, DDVI
000400000403000000010101000000001204060100000000
000400000403000000010201000000002205040300000000
000800000402000000010300000000001102010200000000
000800000402000000010400000000002103050400000000
040000000400000000010500000000000000030600000000
个人猜想,适用clover修改FB数据就是替换对应的hex值,由于我是要HDMI转VGA,所以只要更改HDMI接口数据,所以想了个简便的方法,只留HDMI的两行合并成一行。爬了好久帖子,说是只要更改enc,于是把两个HDMI的enc的值从0试到了7,依然花屏。。
例如:
ATI Connectors Data: 000800000402000000010300000000001102010200000000000800000402000000010400000000002103050400000000
ATI Connectors Patch:
000800000402000000010300000000001100010200000000000800000402000000010400000000002100050400000000
求大神帮忙看看到底要怎么改{:5_265:}~ ./radeon_bios_decode < 1002_67DF.rom > port.txt
得到:
ATOM BIOS Rom:
SubsystemVendorID: 0x174b SubsystemID: 0xe353
IOBaseAddress: 0xe000
Filename: 353P050U.O4C
BIOS Bootup Message:
E353 PRO A1 GDDR5 128Mx32 4GB 300e/300m
PCI ID: 1002:67df
Connector at index 0
Type [@offset 40876]: DisplayPort (10)
Encoder [@offset 40880]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 40986]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 40886]: DisplayPort (10)
Encoder [@offset 40890]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 41013]: 0x92, OSX senseid: 0x3
Connector at index 2
Type [@offset 40896]: HDMI-A (11)
Encoder [@offset 40900]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 41040]: 0x91, OSX senseid: 0x2
Connector at index 3
Type [@offset 40906]: HDMI-A (11)
Encoder [@offset 40910]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 41067]: 0x93, OSX senseid: 0x4
Connector at index 4
Type [@offset 40916]: DVI-D (3)
Encoder [@offset 40920]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 41094]: 0x95, OSX senseid: 0x6
./redsock_bios_decoder < 1002_67DF.rom> route.txt
得到:
353P050U.O4C:
E353 PRO A1 GDDR5 128Mx32 4GB 300e/300m
Subsystem Vendor ID: 174b
Subsystem ID: e353
Object Header Structure Size: 350
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: fb
Display Path Table Offset: 12
Connector Object Id which is
encoder obj id which is enc 0x4)] linkb: false
Connector Object Id which is
encoder obj id which is enc 0x5)] linkb: true
Connector Object Id which is
encoder obj id which is enc 0x2)] linkb: false
Connector Object Id which is
encoder obj id which is enc 0x3)] linkb: true
Connector Object Id which is
encoder obj id which is enc 0x0)] linkb: false
页:
[1]