rrhorse 发表于 2020-3-7 18:18

修改FB,完善R9 270X

AMD R9 270X 显卡定制FB信息——MSI R9 270X (MS-V303)一、硬件基本信息主板:技嘉Z97M-D3HCPU:Intel i7 4790K显卡:MSI R9 270X (MS-V303)内存:24G(8G * 2, 4G * 2)二、工具软件1. AMD Framebuffer Utility2. AMD_FrameBuffers_Catalina.php3. Clover Configurator4. IoRegistryExplorer以上软件新下载最新版本。三、FB数据结构通过AMD_FrameBuffers_Catalina.php得到如下数据,根据其组成结构,将数据划分成多个字段,如表1所示。Futomaki (4) @ 0x5a560DP, DP, DVI-D, HDMI000400000403000000010101000000001204040100000000000400000403000000010201000000002205050200000000040000001402000000010300000000000000060600000000000800000402000000010400000000001102010300000000AMD Framebuffer Utility、AMD_FrameBuffers_Catalina.php均可以得到以上数据。AMD_FrameBuffers_Catalina.php通过命令行方式获取
表1:
接口类型Connector-type控制标志ControlFlags显示特性(未验证)对齐字符(未验证)未知txmitenc显示顺序senseid未知
0004000004030000000101 01000000001204040100000000
0008000004020000007102 01000000002205050300000000
0400000014020000000103 00000000000000060600000000
0400000014000000000104 00000000001102010500000000
表1:AMD FB数据结构    通过对比发现,在对齐字符前的两个字符,表示了当前接口的顺序,从获取的所有FB数据,可以看出每组数据均有这样的现象,具体还要研究相关资料才能确定。 表2:
LVDSDVI-IDVI-DDPHDMI
接口类型02000400040000040008
控制标志 0214001403040204

表2:接口类型

rrhorse 发表于 2020-3-7 19:48

本帖最后由 rrhorse 于 2020-3-7 20:23 编辑

当前系统支持的所有AMD显卡FB,在选择的时候要根据具体显卡型号来确定。比如R9 270X,驱动为AMD7000Controller.kext,FB名字在AMD7000Controller.kext给定的名称中进行选择。可以通过以上两个blob:https://bbs.pcbeta.com/b0876725-8659-4b38-b1fa-158815572cdc
专用工具来查询,也可以在IoRegistryExplorer浏览FB名称。在使用过程中最好能相互进行参考,以确定具体哪些名称得到了当前系统的支持。最好的方法是参考下以网址中的信息,它不仅能查看到哪些显卡得到了支持,还能查每一种型号显卡所对应的FB名称,如下图所示,最右侧是显卡所对应的FB(去掉字母『k』即可),最左边的是显卡的ID。

rrhorse 发表于 2020-3-7 19:50



由于萍果系统的特殊性,不能用一般的知识来理解它的驱动,在Windows系统中不需要知道显卡是什么类型接口、什么排列等细节,驱动程序会自动进行识别。但在萍果系统中,可以说它是定制的,每款显卡对应其相应的驱动,不同的接口排列要选择对应的FB,这里说的是黑萍果系统,甚至有时还要用仿冒的方式来使用其它型号的驱动,这仅仅因为接口的问题。每款显卡要用特定的驱动,设置特定的FB,即使是设备ID一样,只要接口类型和排列顺序不一样,都可能无法驱动。
AMD_FrameBuffers_Catalina.php获取的数据明显要比IoRegistryExplorer多,AMD Framebuffer Utility获取的数据与AMD_FrameBuffers_Catalina.php一样。另外,IoRegistryExplorer只能得到FB的名称,具体数据还要使用其它两个工具获取。
四、定制显卡FB
下面以R9 270X(0x6810-1002)显卡为例,讲解FB定制的方法和步骤。

rrhorse 发表于 2020-3-7 19:50

blob:https://bbs.pcbeta.com/d5f2578d-0684-460b-9d49-d01a4b2cfcaa由于萍果系统的特殊性,不能用一般的知识来理解它的驱动,在Windows系统中不需要知道显卡是什么类型接口、什么排列等细节,驱动程序会自动进行识别。但在萍果系统中,可以说它是定制的,每款显卡对应其相应的驱动,不同的接口排列要选择对应的FB,这里说的是黑萍果系统,甚至有时还要用仿冒的方式来使用其它型号的驱动,这仅仅因为接口的问题。每款显卡要用特定的驱动,设置特定的FB,即使是设备ID一样,只要接口类型和排列顺序不一样,都可能无法驱动。AMD_FrameBuffers_Catalina.php获取的数据明显要比IoRegistryExplorer多,AMD Framebuffer Utility获取的数据与AMD_FrameBuffers_Catalina.php一样。另外,IoRegistryExplorer只能得到FB的名称,具体数据还要使用其它两个工具获取。四、定制显卡FB下面以R9 270X(0x6810-1002)显卡为例,讲解FB定制的方法和步骤。

rrhorse 发表于 2020-3-7 19:50

1. 通过AMD_FrameBuffers_Catalina.php命令行工具获取AMD7000Controller.kext 所支持的FB,下面是删除一些数据之后的结果,因为太多了。-------------------------AMD7000Controller.kext------------------------- Ramen (6) @ 0x5a040LVDS, HDMI, DP, DP, DP, DP020000000001000039050108000000002001050600000000000800000402000000010200000000001000030500000000000400000403000000010343400000001102010100000000000400000001000000010431300000002103040300000000000400000403000000010563600000001204020200000000000400000001000000010651500000002205040300000000 Namako (4) @ 0x5a1d0LVDS, LVDS, DP, DP020000000001000000010151200000002205020200000000020000000001000000010261110000001204010100000000000400000403000000010343400000001102030300000000000400000403000000010433300000002103040400000000 Buri (4) @ 0x5a310LVDS, DP, DP, HDMI020000000001000039050100000000001000050500000000000400000403000000090200000000001102010100000000000400000403000000090300000000002103020200000000000800000402000000010400000000001204030300000000 Dashimaki (4) @ 0x5a3f0DP, DP, DVI-D, HDMI000400000403000000010101000000001204020200000000000400000403000000010200000000002205030500000000040000001402000000010301000000000000040400000000000800000402000000010400000000001102010100000000 Futomaki (4) @ 0x5a560DP, DP, DVI-D, HDMI000400000403000000010101000000001204040100000000000400000403000000010201000000002205050200000000040000001402000000010300000000000000060600000000000800000402000000010400000000001102010300000000 Hamachi (4) @ 0x5a5c0DP, DP, DVI-D, HDMI000400000403000000010101000000001204050100000000000400000403000000010201000000002205040200000000040000001402000000010300000000000000030600000000000800000402000000010400000000001102010400000000 Ikura (1) @ 0x5a730HDMI000800000402000000010100000000001204030100000000 Maguro (1) @ 0x5a980HDMI000800000402000000010100000000001204030100000000 MaguroS (6) @ 0x5a9a0DP, DP, DP, DP, DP, DP000400000403000000010143200000001102010300000000000400000403000000010233100000002103020400000000000400000403000000010363400000001204030100000000000400000403000000010453300000002205040200000000000400000403000000010523600000001000050500000000000400000403000000010613500000002001060600000000 2. 浏览以下网址,确定当前的显卡原生FB名称。http://forge.voodooprojects.org/p/chameleon/source/tree/HEAD/trunk/i386/libsaio/ati.c从中可以看出,0x6810所对应的FB名称为kNamako,将k去掉之后,便是该显卡所对应的实际FB名称。需要注意的是原生FB并不一定会支持目标显卡。选择FB之前要尽量选择目标显卡的接口与FB接口相近的,特别是主接口,尽量选择一样的,这会大大增加成功的机率。如果原生FB接口与目标显卡相似,那么首先应该对该FB进行实验,实在无法驱,再尝试其它FB。

rrhorse 发表于 2020-3-7 19:51

在实验中发现,有的FB可以修改接口类型,有的FB就不能修改。当前的实验显卡不能使用原生FB(Namako),可以使用Futomaki,而且可以根据实际情况修改接口类型等参数,但是不能修改显示顺序,否则就黑屏。blob:https://bbs.pcbeta.com/a7c0fe4e-e4ab-468d-8b1b-3b93a7028079 3. 通过AMD Framebuffer Utility生成FB    点击『选择』,选取显卡ROM(Pitcairn.rom)。blob:https://bbs.pcbeta.com/25b27aa7-985b-4ca8-8b93-9e937f43d7ea blob:https://bbs.pcbeta.com/4f079184-4381-4cdb-8439-cfc4a819e4b8blob:https://bbs.pcbeta.com/9509b1e0-a6ae-4608-9813-4c6830a9460bFramebuffer数据来源选择:程序中内置的数据,Framebuffer长度选择24字节。

rrhorse 发表于 2020-3-7 19:51

点击选择『显示接口数据』:blob:https://bbs.pcbeta.com/8cfaae58-764a-48ea-98c0-d8ff4ff14152在左侧下拉列表框中选择Namako(该软件推荐的Framebuffer也为Namako),右侧四们接口均选中,其它保持默认,然后点击『保存所有数据』。然后选择复制面板所显示的数据。上面为原始数据,下面为修改后的数据。在实践中,要根据实际的情况对其进行修改,不同的FB、不同的显卡,修改的数据也不尽相同。通过实验发现,各个FB之间差别很大,有的接口类型等参数不能修改或修改之后不起作用。PCI ID: 1002:6810ATI Connectors Data: Namako (4) LVDS, LVDS, DP, DP020000000001000000010151000000002205020200000000020000000001000000010261010000001204010100000000000400000403000000010343000000001102030300000000000400000403000000010433000000002103040400000000 ATI Connectors Patch: DP, HDMI, DDVI, DDVI000400000403000000010151000000001204000100000000000800000402000000710261000000002205000300000000040000001402000000010343000000000000000600000000040000001400000000010433000000001102000500000000 修改后的数据如下:000400000403000000010151000000001204020100000000000800000402000000710261000000002205010300000000040000001402000000010343000000000000030600000000040000001400000000010433000000001102040500000000 blob:https://bbs.pcbeta.com/477bef00-183c-42bb-a341-49796a3ac5ac 4. 准备数据将上述两组数据删除回车,即为最后所得数据。ATI Connectors Data: 020000000001000000010151000000002205020200000000020000000001000000010261010000001204010100000000000400000403000000010343000000001102030300000000000400000403000000010433000000002103040400000000 ATI Connectors Patch:000400000403000000010151000000001204020100000000000800000402000000710261000000002205010300000000040000001402000000010343000000000000030600000000040000001400000000010433000000001102040500000000

rrhorse 发表于 2020-3-7 19:52

4. 通过Clover打补丁在Graphics页面中,选择FB为Namako,VRAM为4096,VideoPorts为4,选中InJect ATI。在Kernel and Kext Patches页面中将刚才准备好的ATI Connectors Data和ATI Connectors Patch两组数据复制到对应的输入框中(中空格或回车的话均无法完成复制)。在Ati Connectors Controller输入框中输入7000。blob:https://bbs.pcbeta.com/440db0a6-43a3-4822-9548-e037293e6538 blob:https://bbs.pcbeta.com/140560b2-febd-4dd7-a056-10930630afe3

rrhorse 发表于 2020-3-7 19:52

blob:https://bbs.pcbeta.com/3ef7ce87-55db-466f-babd-0a290f555a4f

rrhorse 发表于 2020-3-7 20:28

blob:https://bbs.pcbeta.com/fcf42b81-8ea4-41ba-9892-05f8b2512f8b

rrhorse 发表于 2020-3-7 20:34

本帖最后由 rrhorse 于 2020-3-8 08:41 编辑

下面是WORD完整文档。

别乱说话 发表于 2020-3-7 21:09

写的挺详细的{:5_266:}

龙卷风05 发表于 2020-3-7 21:19

帮忙顶一下

wwwlhp 发表于 2020-3-7 21:26

楼主图片不显示?

SKYFLYING5 发表于 2020-3-7 22:01

工具哪里下载啊??

hzcncom 发表于 2020-3-7 22:02

楼主牛逼,我的正好是这显卡

nomcoych 发表于 2020-3-7 23:29

chu_rswh 发表于 2020-3-8 15:38

R9 370可以吗

chj92 发表于 2020-3-8 22:51

谢谢楼主的教程,准备给hd7850试试

wp9898 发表于 2020-3-12 15:54

大神帮我看下,为啥我这个里面没有选项?能读出名字,但在下面选择不了啊!还有我的rom已经提取出来了,如果您能帮我看看为啥无法选取那最好了,如果选取不了。。。您是否能帮我设置下FB。。。







页: [1] 2 3
查看完整版本: 修改FB,完善R9 270X