killwintel 发表于 2020-9-13 23:29

完美解决了90%的HD5450只差最后一步。。。

   现象描述

目前几个验证全部通过,包括:
一 Dashboard F12 启动 看水波纹。
二 Grapher 可以生成三维。
三 象棋游戏可以玩。
四 上述三步反复重复,可坚持一会。目前10分钟不死不花屏正常
五 动态屏保全部正常。
六 在 系统报告-软件-功能扩展 中,能找到   AMD5000Controller.kext,AMDRadeonX3000.kext,AMDSupport,AMDFrameBuffer.kext全部显示 已载入 。
但,操蛋来了。只要玩下去,必然死机,或者不大玩,上网玩,也会死机。有时候能留下一个鼠标活口,能动。但除了鼠标,屏幕其他僵死,键盘也死。强制退出应用程序 也无法打开 。最后只能 长按住电源 关机 。但,每次重启进入桌面都 没问题,死机发生在一段时间后。


硬件信息如下:

硬件简略:
DELL optiplex 3020 商用机,加了一块HD5450独显 。
cpu:   DualCore IntelCore Core i3-4160 ,3600 MHZ(Haswell-DT)
主板: Dell Optiplex 3020
主板芯片组:Intel Lynx Point H81,Intel Haswell
显卡: ATI Radeon HD 6350 (2GB)         读取ROM可看出是HD5450核心,VEN_1002 & DEV_68F9
3d加速器:AMD Radeon HD6350 (Cedar)
音频适配器: Realtek ALC280 @Intel Lynx Point PCH-High Definition Audio Controller

图形卡显示器:
类型:                   GPU
总线:                   PCIe
PCIe Lane宽度:    x16
VRAM(总和):    5 MB
供应商:            AMD (0x1002)
设备ID:             0x68f9
修正版ID:         0x0000
内核扩展信息:    无载入内核的文本
显示器:
显示器:
分辨率:            1280 x 1024(SXGA - 高级扩展图形阵列)
UI看起来类似:    1280 x 1024
帧缓冲深度:    24位彩色(ARGB8888)
主显示器:    是
镜像:    关
联机:    是
自动调节亮度:    否

显卡接口为DMS59接口,SDVI,DVI-I
DMS59接口:提供在一个接口的大小之内提供两个DVI-I通道输出

显卡ROM信息如下:
$ ./radeon_bios_decode< 68F9_1002.rom
ATOM BIOS Rom:
    SubsystemVendorID: 0x174b SubsystemID: 0x6350
    IOBaseAddress: 0x0000
    Filename: S3C09002.101
    BIOS Bootup Message:
C09001 DDR3 64Mx16                                                         

PCI ID: 1002:68f9
Connector at index 0
    Type [@offset 44562]: DVI-I (2)
    Encoder [@offset 44566]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 44648]: 0x93, OSX senseid: 0x4
Connector at index 1
    Type [@offset 44572]: DVI-I (2)
    Encoder [@offset 44576]: INTERNAL_KLDSCP_DAC2 (0x16)
    i2cid [@offset 44648]: 0x93, OSX senseid: 0x4
Connector at index 2
    Type [@offset 44582]: DVI-I (2)
    Encoder [@offset 44586]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 44685]: 0x92, OSX senseid: 0x3
Connector at index 3
    Type [@offset 44592]: DVI-I (2)
    Encoder [@offset 44596]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 44685]: 0x92, OSX senseid: 0x3


$ ./redsock_bios_decoder< 68F9_1002.rom
S3C09002.101:

C09001 DDR3 64Mx16                                                         

Subsystem Vendor ID: 174b
       Subsystem ID: 6350
Object Header Structure Size: 216
Connector Object Table Offset: 3e
Router Object Table Offset: 0
Encoder Object Table Offset: 9c
Display Path Table Offset: 12
Connector Object Id which is
    encoder obj id which is enc 0x3)] linkb: true
Connector Object Id which is
    encoder obj id which is linkb: false
Connector Object Id which is
    encoder obj id which is enc 0x0)] linkb: false
Connector Object Id which is
    encoder obj id which is linkb: false


Framebuffer 修改如下:

PCI ID: 1002:68F9

ATI Connectors Data:
Uakari (4)
DP, DDVI, SDVI, HDMI
00040000000400000071000012040401
04000000140000000071000001120103
00020000140000000071000000000605
00080000000200000071000022050504

ATI Connectors Patch:
SDVI, Null, SDVI, Null
00020000140200000001010010000103
00000000000000000000000000000000
00020000140200000001020021030204
00000000000000000000000000000000


软件描述

系统: Clover_v2.3k_r3911+ mac 10.11.6(原版安装),其中clover加了黑果小兵前辈的内容。

软件准备:

目的是为了用0x68E01002 防冒ID ,驱动 HD5450(0x68F91002) .为何不直接修改系统文件去支持68F91002 ? 尝试了不行,且从各大神雄文中觉得,可以 用这个驱动之,不必修改系统文件,当然 有小修改。

AMDRadeonX3000中修改:
IOKitPersonalities—AMDCedarGraphicsAccelerator—IOPCIMatch ,其值修改为
0x68E010020x68F91002

AMDSuppor 中修改:
IOKitPersonalities—ATISupport—IOPCIMatch ,其值修改为:
0x68E01002&0x68F91002

其他如AMD5000Controller,AMDFrmaebuffer没动。

clover 4图如下:












其他显卡信息如下图:



这个是我的config.plist :



过程中大量参考 了
https://bbs.pcbeta.com/viewthread-1060313-1-1.html
,感谢。

哪儿出问题了呢?原来死机几秒钟(进入桌面后),后来几分钟,持续时间越来越长,和我对FB的修改有关系,所以我猜可能 这儿问题。如果是其他常识性问题我也可能 不知道。毕竟接触黑苹果没几天。
感谢各位,感谢论坛。有这么好玩的出现。




killwintel 发表于 2020-9-14 07:51

本帖最后由 killwintel 于 2020-9-14 08:36 编辑

新尝试修改ATI显卡补丁中的替代参数如下:

ATI Connectors Data:
Eulemur (3)
DDVI, HDMI, VGA
04000000140000000001000001020104
00080000000200000071000012040402
10000000100000000000000000100001


ATI Connectors Patch:
SDVI, SDVI, Null
00020000140200000001000021030104
00020000140200000001000010000203
00000000000000000000000000000000

同时,FBname改改为对应Eulemur .

故障依然。






killwintel 发表于 2020-9-15 08:25

有些进展。

经尝试,能不能打开QE/CI ,与 AMD5000Controller.kext 文件有关。clover 的ATI显卡补丁与实际修改此文件替换后的硬编码还是不一样的效果,以下替换均发生在用0xED工具,十六进制,替换此文件中对应值。

先说结论。
Framebuffer值包含显示接口许多信息,而这些信息,如果与注入的显卡ID(如68E01002)匹配,就会打开QE/CI ,反之 就会使用默认接口信息,默认接口信息保存在AMD5000Controller.kext(大概率) .

效果是,我用替换值的方法,增加了双显示器接口信息,让Uakari可以识别我的双显示器了。默认只识别一个。并且修改后打开QE/CI更稳定了,持续几小时没问题。。。但仍有国际象棋容易导致死机。

      死机原因也想到了,和原生68E01002这些被支持的ID 不一样,我的68F91002虽然都使用的是HD5450核心,肯定有些FB name这个代表 的数据结构内部有些不同,导致了死机。这个能查到结构就可以解决。下面文章
https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1837943&highlight=framebuffer
谈到了   aty_config、aty_properties和connectors这三个。
其中connetcors就是我在AMDFramebufferUtility工具中看到的一行一个接口这些数据。包括了下面几个数据
connect值包含:

1 DVI/HDMI/VGA/SDVI
2 SENSID

3 TXMIT
4 ENC
5 其他详见本论坛:https://bbs.pcbeta.com/viewthread-1060313-1-1.html

aty_config、aty_propertie 好像包含了一些显示器信息,其默认值也可能在AMD5000Controller.kext--Info.plist中 。待查。但我想如果不正确,是会导致花屏的。我所谓看到的死机,应该只是屏幕被冻,其实并没有死机。因为鼠标还可以动。键盘是否被冻不知道 ,但键盘看起来失去反应是真的,也许只是屏幕无反应不是真正死机?不清楚。


主要工具AMDFramebufferUtility ,且txmit,enc,sensid 有2组,已知。分别为:
21 03 04// 21 是发射器1号走线路B .UNIPHY1+LINKB ,可尝试改为01,对应发射器1号走双线路(LINKA+LINKB)

10 00 03//10是发射器0号走线路A . UNIPHY+LINKA,可尝试改为00,对应发射器0号走双线路(LINKA+LINKB)

尝试一:
使用这个接口,

Uakari
PCI ID: 1002:68F9
ATI Connectors Data:
Uakari (4)
DP, DDVI, SDVI, HDMI//注意位置,DDVI SDVI 是我需要的。但也感觉理解未必对。
00040000000400000071000012040401
04000000140000000071000001120103//需要
00020000140000000071000000000605//需要
00080000000200000071000022050504
上面是系统原始Framebuffer值,保存在AMD5000Controller.kext的 AMD5000Controller 中。
下面是我替换后的新值:
描述:当前使用中,好转,不完善,仍有死机。单发射器可走双路。
解释:2个接口,使用了1,3行。其中应该放在哪一行?不确定。这是程序生成的行序我修改了数值但没动行序。每一个发射器都可走双路。用了2个发射器。
00020000140200000001010000000103
00000000000000000000000000000000
00020000140200000001020001030204
00000000000000000000000000000000

下一步尝试:
采用程序默认的发射器0号走双路,不用发射器1号了。
替换值:
0002000014020000000101000000010300000000000000000000000000000000
00020000140200000001020000030204
00000000000000000000000000000000




killwintel 发表于 2020-10-5 17:53

killwintel 发表于 2020-9-15 08:25 https://www.pcbeta.com/static/image/common/back.gif
有些进展。

经尝试,能不能打开QE/CI ,与 AMD5000Controller.kext 文件有关。clover 的ATI显卡补丁与实际 ...

感觉修改接口信息时自己犯了错。
显卡DMS59接口,DVI-I 双接口,经查:
DVI-Integrated(DVI-I)接口(18+5和24+5)是兼容数字和模拟接口的,所以,DVI-I的插座就有18个或24个数字插针的插孔+5个模拟插针的插孔(就是旁边那个四针孔和一个十字花)。比DVI-D多出来的4根线用于兼容传统VGA模拟信号。基于这样的结构,DVI-I插座可以插DVI-I和DVI-D的插头,而DVI-D插座只能插DVI-D的插头。DVI-I兼容模拟接口并不意味着模拟信号的接口D-Sub插头可以直接连接在DVI-I插座上,它必须通过一个转换接头才能连接使用。一般采用这种接口的显卡都会带有相关的转换接头。考虑到兼容性问题,目前显卡一般会采用DVI-I接口,这样可以通过转换接头连接到普通的VGA接口。而带有两个DVI接口的显示器一般使用DVI-D类型。而带有一个DVI接口和一个VGA接口的显示器,DVI接口一般使用带有模拟信号的DVI-I接口。 自己理解:转换头只有物理转换,没有电路转换。显卡中完成电路转换。所以在DMS59接口的显卡中,mac显卡接口应该选择VGA接口而非DVI-I接口。
佐证:如果在Eumulre中,选择了0200的DVI-I接口数据修改FB,mac 的登录界面就会黑屏。
有时间再去实测。


killwintel 发表于 2020-10-5 18:47

killwintel 发表于 2020-10-5 17:53 https://www.pcbeta.com/static/image/common/back.gif
感觉修改接口信息时自己犯了错。
显卡DMS59接口,DVI-I 双接口,经查:
DVI-Integrated(DVI-I)接口( ...

对照VGA接口,自己有2个接口(台式机好像hotplugin从01开始),
10 00 00 00 10 00 00 00 00 01 00 00 21 03 01 04
10 00 00 00 10 00 00 00 00 01 00 00 10 00 02 03

其中21与10 是从显卡rom中看到的,但与framebuffer软件查看到的不符。
21或者可用01替换
10或者也可用00替换。
这里需要一些运气。

encd: 就是编码其 encoder ,上面为03 和 00 ,软件取ROM的数据,不知道对不对。不太明白为何双接口编码还不一样???

senseID为04和03 ,但据说有计算公式可自己计算后,与软件查到的比较看是否一致。黑苹果版本之间软件可靠性差,太伤人了。这个要是不对,黑屏没跑。



killwintel 发表于 2020-10-6 09:53

本帖最后由 killwintel 于 2020-10-6 11:08 编辑

一义之差,就可能过不去。又找到一个需要修正的地方。
在上面显卡rom中,得到的数据只有index,没有 hotplugID ,下面这个是我的:
$ ./radeon_bios_decode< 68F9_1002.rom
ATOM BIOS Rom:
    SubsystemVendorID: 0x174b SubsystemID: 0x6350
    IOBaseAddress: 0x0000
    Filename: S3C09002.101
    BIOS Bootup Message:
C09001 DDR3 64Mx16                                                         

PCI ID: 1002:68f9
Connector at index 0
    Type [@offset 44562]: DVI-I (2)
    Encoder [@offset 44566]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 44648]: 0x93, OSX senseid: 0x4
Connector at index 1
    Type [@offset 44572]: DVI-I (2)
    Encoder [@offset 44576]: INTERNAL_KLDSCP_DAC2 (0x16)
    i2cid [@offset 44648]: 0x93, OSX senseid: 0x4
Connector at index 2
    Type [@offset 44582]: DVI-I (2)
    Encoder [@offset 44586]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 44685]: 0x92, OSX senseid: 0x3
Connector at index 3
    Type [@offset 44592]: DVI-I (2)
    Encoder [@offset 44596]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 44685]: 0x92, OSX senseid: 0x3

下面这个是别人的:
ATOM BIOS Rom:   SubsystemVendorID: 0x1545 SubsystemID: 0x7970    IOBaseAddress:0x0000    Filename:SV2A01.001    BIOS BootupMessage: TAHITI XT PCIE 3G/384B GDDR5 DLDVI-I/HDMI/2XMINI-DP 925E/1375MPCI ID: 1002:6798 Connector at index 0   Type [@offset43422]: DisplayPort (10)   Encoder [@offset43426]: INTERNAL_UNIPHY2 (0x21)   i2cid [@offset43540]: 0x90, OSX senseid: 0x1   HotPlugID: 5Connector at index 1   Type [@offset43432]: DisplayPort (10)   Encoder [@offset43436]: INTERNAL_UNIPHY2 (0x21)   i2cid [@offset43567]: 0x91, OSX senseid: 0x2   HotPlugID: 4Connector at index 2   Type [@offset43442]: HDMI-A (11)   Encoder [@offset43446]: INTERNAL_UNIPHY1 (0x20)   i2cid [@offset43594]: 0x93, OSX senseid: 0x4   HotPlugID: 1Connector at index 3   Type [@offset43452]: DVI-I (2)   Encoder [@offset43456]: INTERNAL_UNIPHY (0x1e)   i2cid [@offset43631]: 0x95, OSX senseid: 0x6   HotPlugID: 3Connector at index 4   Type [@offset43462]: DVI-I (2)   Encoder [@offset43466]: INTERNAL_KLDSCP_DAC1 (0x15)   i2cid [@offset43631]: 0x95, OSX senseid: 0x6   HotPlugID: 3

在修改,替换FB时,这个 HotPlugID最好使用从ROM中找到的建议值。以前有个framebuffer3.0估计有些老了,没这个值。

来源点击这里

下面是我把来源中文章和工具打包的压缩文档
英文教程和新显卡工具



killwintel 发表于 2020-10-6 10:40

还有一个需要修正,关于转接头。
我的显卡接口自带dms 59接口,转接头一分二,转VGA,2个Vga。


对于FB 来说,第二块信息必须是10000000,对应Vga显示器,模拟信号输出。

第一块呢?选sdvi 还是选Vga?我猜应该是sdvi, 因为decode 软件显示是他,且实际接口也是他。同时,sdvi 也叫dvi-i,对vga 输出也是支持的。这个dms59接口对应24+5的dvi- I,两个。所以应该选sdvi 的。晕啊,启动黑屏原因可能在此。

killwintel 发表于 2020-10-6 11:37

killwintel 发表于 2020-10-6 10:40 https://www.pcbeta.com/static/image/common/back.gif
还有一个需要修正,关于转接头。
我的显卡接口自带dms 59接口,转接头一分二,转VGA,2个Vga。



正确FB可能 如下:
16位
00020000 100000000001 0000 10000103
00020000 100000000001 0000 21030204
24位
00020000 100000000001 0000 00000000 21030204 00000000
00020000 100000000001 0000 00000000 10000103 00000000

其中红色部分,需要用新工具验证后重新生成。目前电脑不在手边。以待验证。
如果不可行,就要反复尝试参数。先解决黑屏。发射器与senseID 。
00020000的DVI-I 也可以用10000000(VGA)替代尝试,小概率。

killwintel 发表于 2020-11-19 19:41

AppleALC.kext

AppleALC.kext和Lilu.kext文件一般已经在带clover的镜像里了,安装好后去efi里找到就行了,放在other文件夹里就行了,有时候会被放到backup文件夹里了,拖出来就行了。也可以去github上下载最新版。
地址为https://github.com/acidanthera/AppleALC
Other路径:EFI/CLOVER/kexts/Other;backup就在other文件夹下。


当AppleALC.kext和Lilu.kext都放到other文件夹下后使用clover configurator打开config.plist修改layout_id,我的声卡是alc887,所以id可以填13,也许你的不是13,你可以多试几个数值。每个声卡的数值范围可以在github上找到。这里有声卡列表,找到自己的声卡就可以查看支持哪些id值:
https://github.com/acidanthera/AppleALC/tree/master/Resources

我的数值范围
3
4
11
13
15
16
17
21

Cuveanst 发表于 2020-12-29 15:32

这机子把hd5450拆下来就能正常驱动了。

killwintel 发表于 2021-12-9 22:05

Cuveanst 发表于 2020-12-29 15:32 https://bbs.pcbeta.com/static/image/common/back.gif
这机子把hd5450拆下来就能正常驱动了。

回头看一年啦哥们。
今天搜索一下,仔细爬楼,终于在外网看到和我一样的68f91002的hd5450通过DSDT的方法成功。QE什么的都正常。一块心病。现在这个显卡也不知道被我扔哪去了。
如果需要10.15.6支持,我想几个需要解决
一老版本的驱动新系统还支持吗
二如果支持,其他就是技术问题。包括dsdt, 或者修改plist 。

oc也有加载ati驱动的三部曲
1 kernel加载kext
2 引导参数传递
3 仿冒显卡ID
有weg,这些都可以做到。

困难只有一个,驱动太老了,不知道是否支持

killwintel 发表于 2021-12-9 22:45

10.10hd5450info.plistС10.1410.1010.15.6

tntg534462 发表于 2022-3-9 16:34

killwintel 发表于 2021-12-9 22:05 https://bbs.pcbeta.com/static/image/common/back.gif
回头看一年啦哥们。
今天搜索一下,仔细爬楼,终于在外网看到和我一样的68f91002的hd5450通过DSDT的方法 ...

就是不支持 10.15 了咧,哎

deng508820 发表于 2022-3-12 09:05

https://bbs.pcbeta.com/viewthread-1749679-1-1.html

killwintel 发表于 2022-3-26 17:33

deng508820 发表于 2022-3-12 09:05 https://bbs.pcbeta.com/static/image/common/back.gif
https://bbs.pcbeta.com/viewthread-1749679-1-1.html

这什么意思,链接中没有HD5450 ,它的显卡又不一样,

喜旸旸 发表于 2022-4-12 18:33

只能支持到10.13

exeron21 发表于 2023-5-11 10:19

这……老哥太有恒心了
我也有这张卡,看了老哥费这么大力也没完美,我想我还是放弃了吧
页: [1]
查看完整版本: 完美解决了90%的HD5450只差最后一步。。。