完美解决了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 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 .
故障依然。
有些进展。
经尝试,能不能打开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-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 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 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估计有些老了,没这个值。
来源点击这里
下面是我把来源中文章和工具打包的压缩文档
英文教程和新显卡工具
还有一个需要修正,关于转接头。
我的显卡接口自带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 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)替代尝试,小概率。
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 这机子把hd5450拆下来就能正常驱动了。 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,这些都可以做到。
困难只有一个,驱动太老了,不知道是否支持
10.10hd5450info.plistС10.1410.1010.15.6 killwintel 发表于 2021-12-9 22:05 https://bbs.pcbeta.com/static/image/common/back.gif
回头看一年啦哥们。
今天搜索一下,仔细爬楼,终于在外网看到和我一样的68f91002的hd5450通过DSDT的方法 ...
就是不支持 10.15 了咧,哎 https://bbs.pcbeta.com/viewthread-1749679-1-1.html 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 ,它的显卡又不一样, 只能支持到10.13 这……老哥太有恒心了
我也有这张卡,看了老哥费这么大力也没完美,我想我还是放弃了吧
页:
[1]