【黑苹果教程】驱动ATI Radeon HD5450显卡

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wr132/article/details/54837303

通常来说,驱动AMD的显卡要比驱动Intel或者Nvidia的显卡更加容易,因为苹果原生就提供了一整套的驱动程序来支持AMD的显卡,不过,由于使用同一款GPU的显卡可能具有不同的发行版,因此它们的device-id也不相同,而我们需要做的就是注入一个被支持的device-id即可。
本篇文章参考tonymacx86的[Guide] Enabling ATI Radeon HD 5450
如果需要转载,请注明原文地址:http://blog.csdn.net/wr132/article/details/54837303

前言

可能有很多使用AMD显卡的黑苹果玩家会使用AMD RadeonX3000.kext 和 AMD5000Controller.kext来驱动自己的显卡,甚至国内某些黑苹果论坛还需要积分才能下载,对此我非常鄙夷。首先,黑苹果的绝大部分教程来源于国外,而国内很多人既不附加原文链接,还需要付一定的金钱才能获得资源,这本身就与开源相背而驰。其次,这种驱动显卡的方案是极为不推荐的,因为苹果每次更新系统,都会更新这些驱动,也就意味着每次更新系统,你的显卡就会再次失效,如果驱动本身发生变化,那么就无法适应新的系统。下面介绍两种推荐的方案。

方案一:使用Clover注入Device-ID

当你的主板支持UEFI并且你是以UEFI模式安装黑苹果时,你可以直接使用Clover的注入功能。注意这个方法并不支持传统的BIOS+MBR模式。方法非常简单:

  1. 使用Clover Configurator打开Clover的config.plist,找到Devices/FakeID/ATI,输入68E01002,保存。
  2. 找到Graphics,在FB Name中选择或者输入Eulemur,并选中Inject ATI。
  3. 重启电脑。

方案二: 使用DSDT

如果你的主板不支持UEFI,或者使用上述的方法对你无效的时候,DSDT是最好的选择,因为它几乎总是最有效最稳定的方式。另外,如果你使用Chameleon引导系统,那么你也只能使用DSDT。

  • 如果你的DSDT中有存在PEG0,修改如下
Device (P0P1)
            {
                Name (_ADR, 0x00010000)
                Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x0C)
                            {
                                "device-id",
                                Buffer (0x04)
                                {
                                    0xE0, 0x68, 0x00, 0x00
                                },

                                "ATY,DeviceID",
                                Buffer (0x02)
                                {
                                    0xE0, 0x68
                                },

                                "vendor-id",
                                Buffer (0x04)
                                {
                                    0x02, 0x10, 0x00, 0x00
                                },

                                "ATY,VendorID",
                                Buffer (0x02)
                                {
                                    0x02, 0x10
                                },

                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },

                                "@0,AAPL,boot-display",
                                Buffer (Zero) {}
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }
  • 如果你的DSDT中有存在PEGP,修改如下
Device (PEGP)
            {
                Name (_ADR, 0x00010000)
                Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x0C)
                            {
                                "device-id",
                                Buffer (0x04)
                                {
                                    0xE0, 0x68, 0x00, 0x00
                                },

                                "ATY,DeviceID",
                                Buffer (0x02)
                                {
                                    0xE0, 0x68
                                },

                                "vendor-id",
                                Buffer (0x04)
                                {
                                    0x02, 0x10, 0x00, 0x00
                                },

                                "ATY,VendorID",
                                Buffer (0x02)
                                {
                                    0x02, 0x10
                                },

                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },

                                "@0,AAPL,boot-display",
                                Buffer (Zero) {}
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }
  • 如果你的DSDT中有存在P0P1,修改如下
Device (PEG0)
            {
                Name (_ADR, 0x00010000)
                Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x0C)
                            {
                                "device-id",
                                Buffer (0x04)
                                {
                                    0xE0, 0x68, 0x00, 0x00
                                },

                                "ATY,DeviceID",
                                Buffer (0x02)
                                {
                                    0xE0, 0x68
                                },

                                "vendor-id",
                                Buffer (0x04)
                                {
                                    0x02, 0x10, 0x00, 0x00
                                },

                                "ATY,VendorID",
                                Buffer (0x02)
                                {
                                    0x02, 0x10
                                },

                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },

                                "@0,AAPL,boot-display",
                                Buffer (Zero) {}
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
            }

说点闲话

此部分内容已经与教程无关,如果不想阅读可以跳过。
每个安装黑苹果的人都有不同的目的,不管你的目的是什么,如果你想做,那就说明你已经进入了这个圈子。我玩黑苹果的时间也不长,而且都是断断续续的。记得当年第一次接触黑苹果是在远景上,并且跟着教程第一次成功安装了Lion,那时我还是高中,对编程完全不了解。安装完成之后,显卡,声卡,网卡没有一个能用,整个系统卡得不行。

后来,在远景上翻了许多陈年旧帖,好不容易找到一些千人发布的kext,也就是macOS的驱动,当时我对安装windows系统还是有一定了解的,知道有驱动这回事。很幸运地驱动了网卡和显卡,但是声卡死活不行。有的人可能了解过,自制仿冒声卡驱动非常复杂,需要提取自己声卡的codec,然后对原声的AppleHDA进行一系列的修改,所以最后我也就放弃了,因为电脑没声音根本就无法使用。

第二次接触黑苹果是在大三的上学期的寒假,那时候远景还能访问,不过很多帖子都很老了,我也是磕磕绊绊地在自己的笔记上安装的Yosemite,当时是花了将近半个月的时间,第一次解决了DSDT的问题,声卡用的万能驱动,显卡是HD4600,无线网卡无解,只能使用有线网卡。

第三次接触黑苹果是在大四的上学期的寒假,我惊奇地发现,远景居然不能访问了,我一度心灰意冷。然后我在百度搜索到另外一个黑苹果论坛——黑苹果乐园,乍一看这个论坛蛮正规,资源教程都不少,不过当我知道要花钱注册的时候,我觉得很不爽,不是因为那几块钱,而是我觉得这件事情如果与金钱挂上钩就有点变味了,大家是因为共同的兴趣爱好才聚到一起,这种花钱注册的行为明显就是坑新人,而且还会造成误导,哪怕你通过消耗虚拟资产的方式也行啊,只在论坛内流通。
抱着试试看的态度,我通过科学上网,在传说中的Google上搜索了一番,当然你需要搜索Hackintosh,排在前三的答案:

这里写图片描述

其中第一个我也没大搞懂是干嘛的,像是一个聚合搜索;第二个是lifehacker中的一篇文章,介绍了黑苹果的相关消息,里面还附带了几篇教程;第三个就是重点,tonymacx86。到目前为止几乎所有的有关黑苹果的问题都可以在上面找到,是一个相当活跃的论坛。不过由于我的英语比较渣,看起来还是比较费劲,不过当我读了几篇文章之后,发现相见恨晚。

我发现自己以前的安装步骤简直low爆了,实际上已经有很先进的工具,但是我都不知道,根据最新的安装教程,我花了一个小时就安装上了Sierra,当然这跟100M的宽带有关。而且随着继续深入,我不仅了解了很多黑苹果的内在机制,还惊奇地发现:自己以前看到的某些中文文章的原版竟然就在这里!

当然,我也没有闲着,我不断寻找文章,成功解决了内建了无线网卡BCM94352,蓝牙,声卡ALC269VB,显卡HD4600,屏蔽了独显,背光控制,键盘快捷键,ELAN触控板,HDMI输出等等一些列问题。目前驱动程度已经超过90%。

有一天我闲的没事到上面说到的那个论坛看了看,好家伙,很多文章都似曾相识,原来都是参考了tonymacx86里的文章,这本生没有什么,但是你不附加原文链接,还把资源拿出来收费是几个意思。

想到这些,我觉得自己应该做点什么。如果我单纯的写那种解决特定问题的文章,只能发挥很小的作用。于是,我开始翻译一些必要的文章,比如显卡,声卡,网卡等重要部件,以及DSDT修改。并且每篇文章都附加了原文链接,有能力阅读原文是最好的方式,因为我可能会因为理解上的偏差误读了作者的原意。

另外,关于所需的软件资源,如果有资源的原始链接,我肯定会附加上,另外我还会附加一个csdn的下载链接,并需要一个下载积分。有人可能会说,你不是鄙视这种行为吗?的确,我一开始确实考虑过免积分下载,不过玩过csdn的人都知道,首先,下载积分除了下载以外几乎没什么用,也不能兑换现金;其次,csdn的博客等级跟下载资源的等级是单独计算的,而我现在还是1级,最大只能上传单个60M的文件,为了我能够方便的上传更大的资源给大家,我觉得设置1个下载积分,这已经是最低限度。如果你实在没有积分,可以在原链接下载或者留言告诉我,我可以发邮件。

说了这么多,我只想表达一个想法:开源的思想确实极大地促进了计算机的发展,为什么国外的论坛一片繁荣,国内的却充满了利益气息呢?tonymacx86上的一个论坛主至今已经回复了几十万条的留言,而且几乎每条留言都很有建设意义,整个论坛没有人灌水,没有人骂人,更没有卖资源或者有偿安装这种现象。我并不是说别人的劳动成果不值钱,而是要取财有道。比如那个坛主,就提供了一个捐赠的链接,很多人都会去捐赠,这种方式在国外很流行,国内的一些开源贡献者也会采用这种方式,效果也都不错。

希望国内的计算机圈子也能跟国外一样,大家钻研技术,分享技术,共同促进技术进步,这样,我们也不用越过重重障碍去看老外的文章。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页